2016-11-01 5 views
1

私はarとenの言語を使用するサイトを構築しており、silverstripeのドキュメントhereによれば、私はテキスト収集プロセスを行い成功しました。現在のテーマのlangフォルダにはen.yamlファイルが1つだけ作成されています。別のar.yamlファイルがあるはずです!Silverstripe i18nテンプレート内の翻訳を収集すると、en.yamlが作成されますか?

<?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'); 

答えて

1

https://github.com/Zauberfisch/silverstripe-better-i18nを使用すると、1つのタスクで異なる言語を作成して更新することができます。開発専用の要件として、コンポーザーにインストールすることができます。

私は個人用サイトテーマ/私のテーマにドイツ語と英語YMLファイルを作成するために

http://localhost/dev/tasks/BetterI18nTextCollectorTask?module=mysite,themes/my-theme&targetlocale=de,en 

のようにそれを実行します。

これは、二重アンダースコア(疑似コメントとして)とデータベースフィールドのデフォルトキーの接頭辞が付いた一連の項目を作成します。

+0

それは素晴らしい、私はそれらの二重の下線を削除する必要が動作します。あなたが私に多くの時間を節約してくれてありがとう:) – osama7901

2

テキスト・コレクタタスクは、あなたのインストールは/ことができます可能性ロケールを認識しません。

は、ここに私の_config.phpファイルです。したがって、基本的にはすべての文字列を収集し、デフォルトのymlファイルに配置します。

あなたは、en.ymlファイルを持っているar.ymlとしてそれをコピーする場合は、必ずそれがar:の代わりen:から始まり、アラビア語へのすべてのテキストを翻訳します。

+0

ar.yamlとしてコピーし、最初の行を 'ar:'に変更しました。今、サイトは両方のロケール(アラビア語の両方のバージョン)でアラビア語の翻訳を受け取ります。 – osama7901

+0

'en.yml'ファイルは' en: 'で始まり、英語の翻訳を含む必要があります。あなたの 'ar.yml'ファイルは' ar: 'で始まり、アラビア語の翻訳を含んでいなければなりません...これが事実であることを確認しましたか? – bummzack

+0

はい、私はそれを確認して、今、働いています、ありがとう@ bummzack – osama7901