2012-02-12 5 views
2

私はすべてのページ(フランス語&英語)に言語セレクタを備えたAgile Toolkitを備えたバイリンガルPHPアプリケーションの開発を計画しています。私はそう思っている..しかし..私のような初心者はATK4でこれについてどうやって行くのだろうか?私は単一のファイル(翻訳を保持する何らかの種類のデータベースファイル)を作成し、さまざまなページビュー(メニュー項目さえ)の変数を通してすべてにアクセスしたいと思います。これに関する助言や手掛かりは非常に高く評価されます。 THXAgile Toolkitのバイリンガルアプリケーションですか?ユーザーの言語セレクタを使用していますか?

ドン

+1

ここには適切な答えがあります:http://stackoverflow.com/questions/13295286/agile-toolkit-localization – romaninsh

答えて

1

PHPはすでにlocalization functionを持っている、とあなたがする必要があるすべては、アジャイルツールキットのすべての内部メッセージがローカライズ機能経由でルーティングされていることを確認しています。アジャイルツールキットのAPI contains a _() method too。あなたは "lib/Frontend.php"の中でそれを再定義し、getテキストかSQLのどちらかを使ってそれをルーティングする必要があります。

実行する必要がある翻訳の他の大きな部分はテンプレート翻訳です。テンプレートには通常、言語によって異なるグラフィックスやテキストが含まれています。 "PathFinder"はこれに最適です。あなたはコンストラクタに3ND引数を渡すように、それはローカライズされたテンプレートに別のディレクトリに見てパスファインダに指示

:アジャイルツールキットウェブサイトは、実際にはポーランド語翻訳のためにその技術を使用していますファイル。そこに見つからない場合は、通常の場所にデフォルト設定されます。

+0

ありがとうございました。私はこのように私に指摘した機能を変更します"function _($ str){return gettext($ str);}"は、アプリケーションに表示されるすべてのテキストの翻訳用です。しかし、テンプレートの翻訳では、 "パスファインダー"が理想的な方法でしょう! 「パスファインダー」メソッドに問題がある場合、私はあなたに叫び声を出します!私はまだそれを把握しようとしています! ..もう一度感謝します。あなたは本当の王子です。 – user1204626

+0

ありがとうRomaninさん..ありがとうございます:英語のほかに、私はあなたが私にこのような "関数_($ str){putenv( ' LC_ALL = fr_CAと '); にsetlocale(LC_ALL、' fr_CAと '); のbindtextdomain( "my_App_mo_file"、」./locale "); TEXTDOMAIN(" my_App_mo_file "); 戻りgettextの($のSTR);}" のアプリケーションに表示されるすべてのテキストの翻訳。それは正しいようですか?もう一度ありがとう – user1204626

+0

私は多言語のアプリケーションを作っていたのでしばらくありましたが、それはよさそうです。途中で提案や問題がある場合は、開発者のメーリングリストを通じて私に連絡してください。 – romaninsh

関連する問題