注:これは、多言語サイトのPHP date()の翻訳と重複していません。読んだよ!
申し訳ありませんが、最初にフレームワークがどのように機能するかを説明する必要があるため、問題がどこにあるかを正確に理解できます。
これが私のPhpコードの仕組みです(大まかな原則)。URLを見たい人の例を使ってみましょうhttp://myweb.com/valid.php:
- ファイル内のコードには適切なクラス定義が含まれており、1つのオブジェクトを作成して、ページを表示する
valid.php関数を呼び出します。display() - ファイル
valid.phpには、オブジェクトが作成されるときにホストが分析され、ホストには言語(、、 ...)があり、デフォルトの言語(見つからない場合)は英語です。http://us.myweb.com/http://cn.myweb.com/http://fr.myweb.com/ - 次に、キャッシュされたPhpファイルをロードします。ここに翻訳があります。これは
translation私が$t略して呼んでいるオブジェクトです - そしてこれからは、翻訳が必要なときはいつでも、のようなことをし
$t->get('my_string')ます。
2つの言語ファイルの例を見てみましょう。
- 2言語ファイル:
cache.us.phpおよびcache.fr.php - あなたには
cache.us.php次のような行があります:$thanks_for_the_fish = "Thanks for the fish"。 - あなたには
cache.fr.php次のような行があります:$thanks_for_the_fish = "Merci pour le poisson"。 - 私は自分のページを作成し、適切な言語ファイルを含めてから呼び出し
$t->get('thanks_for_the_fish')、それを翻訳します。
今、私の問題は日付のフォーマットにあります。短い日付形式では、問題はありません。
- で
cache.us.php:$short_date_format = "m/d/Y, H:i"。 - で
cache.fr.php:$short_date_format = "d/m/Y à H:i"。
しかし、長い日付形式では、私はフランス語に取り組んでおり、次のようなものから始めました。
- で
cache.fr.php:$long_date_format = "%s, %d %s %d"。 - その後、すべての日:
$sunday = "dimanche"、$monday = "lundi"など - それから私の翻訳コードで:
このようなもの(コード内のコメントを注意深く読んでください、私の質問はそれにあります!):
static private $_TabStrDaysOfWeek = array(
0 => 'sunday',
1 => 'monday',
...,
6 => 'saturday'
);
public function translateDate($date_time)
{
$long_day = $this->tr->get(
$this->_TabStrDaysOfWeek[ $date_time->format('w') ]
);
/*
here's where I'm stuck:
what could be the code to be able to display:
- english:
Monday, 1st September 2006
Tuesday, 2nd September 2006
Wednesday, 3rd September 2006
Thursday, 4th September 2006
- french:
Lundi, 1 septembre 2006
Mardi, 2 septembre 2006
Mercredi, 3 septembre 2006
Jeudi, 4 septembre 2006
- arabian!!:
1 - Don't know
2 - Don't know
3 - Don't know
4 - Don't know
*/
}
...北京語でも同じように、遅かれ早かれ必要になるので、アラビア語と言いました。私の他のすべての翻訳の問題は解決されましたが、これは!!
何か案が?