Solar内置了基于PHP数组的本地化系统,数组的键是标识符,值是替换字符串。Solar中的每一个类都有一个Locale/ 子目录;里面是以语言和国家命名的翻译文件,默认的是en_US.php。本地化文件是按需加载的。
Solar中的每个类都有一个locale()方法,该方法用于把本地数组的键翻译成相应替换字符串。和Solar中的其他事物一样,本地化文件也是可继承的。因此,如果你查找一个存在于父类中的本地化数组的键,Solar会启用继承机制,直到找到为止。
在视图中,你可以使用getText()辅助函数获取本地化字符串。(在视图中的其他对象中,你可以使用locale()方法获取本地化字符串。译者注:这里尚未测试,故可能表达不准确。)
为博客应用修改本地化文件,查找并打开Blog/Locale/en_US.php文件。
$ vim Blog/Locale/en_US.php
把文件内容修改成下面这个样子:
<?php return array(
'ERR_NO_ID_SPECIFIED' => 'No ID was specified',
'ERR_NO_RECORDS' => 'No records found.',
'ERR_NO_SUCH_ITEM' => 'That item does not exist.',
'HEADING_ADD' => 'Add New Article',
'HEADING_DELETE' => 'Delete This Article?',
'HEADING_DRAFTS' => 'Draft Articles',
'HEADING_EDIT' => 'Edit Article',
'HEADING_INDEX' => 'Published Articles',
'TEXT_DELETED' => 'Deleted the article.',
'TITLE_ADD' => 'Blog : Add New Article',
'TITLE_DELETE' => 'Blog : Delete Article',
'TITLE_DRAFTS' => 'Blog : Draft Articles',
'TITLE_EDIT' => 'Blog : Edit Article',
'TITLE_INDEX' => 'Blog : Published Articles',
);
现在,你再次浏览博客应用,你将会看到翻译过的本地化字符串。