0

Web サイトのテキストの言語を、PHP で事前に定義されたフレーズに変更するオプションをユーザーに提供するにはどうすればよいでしょうか?

この例は facebook です。言語を英語 (Pirate) に変更すると、翻訳は行われず、別の場所で定義された多くの異なるフレーズが取得されます。

私は自分の Web サイトに Pirate 言語を追加して、ユーザーが自分で変更できるようにすることで、同じようなことをしたいと考えています。

私が考えることができる最善の方法は、変数でいっぱいの各言語用のファイルです。これらの変数は、必要に応じて呼び出され、これらのファイル間で変更する何らかの方法があります。そのアイデアは粘着性があり実用的ではないように思えますが、これを行う方法について他のアイデアがあるかどうか疑問に思っています.

ありがとうございます!

4

1 に答える 1

0

あなたのアイデアは、gettext ファイルを使用した国際化サポートを含む CakePHP を使用して私が経験したことと似ています。アイデアはとてもシンプルです。トランスレータ関数を使用して、翻訳が必要なすべての文字列を出力します。Cakephp 1.X では __() でした。文字列 "hello world" を翻訳したい場合は、

<?php 
__('hello world');

?>

どの言語に翻訳する必要があるかを知る秘訣は、セッションの言語またはロケールの設定にあります。Cakephpでは、「Config.language」を翻訳したい言語のショートコードに設定しています(フランス語の場合は「fre」に設定します)。次に、アプリケーションはそのロケール フォルダで「fre」ディレクトリを探し、そこからファイルを読み取り、「hello world」に一致する文字列を探し、そこから対応する翻訳文字列を取得します (これは 100% 正確ではない可能性があります)。これは、ファイルから配列を返し、キーを使用して翻訳を一致させるものと考えることができます。

<?php
return array(
'hello world' => '123456',
);

?>

それを行う別の方法は、文字列とその翻訳を次のようにデータベースに保存することです。

文字列、翻訳、言語ID

次に、翻訳する文字列と言語 ID または短いコードを使用して db をクエリします。

于 2012-10-28T10:04:11.907 に答える