我正在构建一个使用ar和en语言的站点,根据silverstripe 这里,我完成了文本收集过程并取得了成功。但是在我当前主题的lang文件夹中只创建了一个en.yaml文件。应该有另一个ar.yaml文件!
这是我的_config.php文件:
<?php
global $project;
$project = 'mysite';
FulltextSearchable::enable();
global $databaseConfig;
$databaseConfig = array(
'type' => 'MySQLDatabase',
'server' => 'localhost',
'username' => 'dbuser',
'password' => '123',
'database' => 'cont_learning_2',
'path' => ''
);
// Set the site locale
i18n::set_locale('ar_EG');
Director::set_environment_type('dev');
if(!Director::isDev()) {
// log errors and warnings
SS_Log::add_writer(new SS_LogFileWriter('../silverstripe-errors-warnings.log'), SS_Log::WARN, '<=');
// or just errors
SS_Log::add_writer(new SS_LogFileWriter('../silverstripe-errors.log'), SS_Log::ERR);
// or notices (e.g. for Deprecation Notifications)
SS_Log::add_writer(new SS_LogFileWriter('../silverstripe-errors-notices.log'), SS_Log::NOTICE);
}
Security::setDefaultAdmin('admin','admin');
// multi-language configuration - translatable module
Translatable::set_default_locale('ar_EG');
Translatable::set_allowed_locales(array(
'ar_EG',
'en_US',
));
SiteTree::add_extension('Translatable');发布于 2016-11-03 05:12:03
使用https://github.com/Zauberfisch/silverstripe-better-i18n,您可以在一个任务中创建和更新不同的语言。您可以将其与composer一起安装为只用于开发的需求。
我运行它就像
http://localhost/dev/tasks/BetterI18nTextCollectorTask?module=mysite,themes/my-theme&targetlocale=de,en在mysite和themes/mysite中创建德语和英语yml文件。
它将创建一组以双下划线(伪注释)为前缀的项,以及数据库字段的默认键。
发布于 2016-11-01 13:02:45
文本收集器任务不知道安装时可能具有的区域设置。因此,它基本上只是收集所有字符串,并将它们放入默认的yml文件中。
如果您有一个en.yml文件,将其复制为ar.yml,确保它以ar:而不是en:开头,并将所有文本翻译成阿拉伯语。
https://stackoverflow.com/questions/40358655
复制相似问题