注:これは、多言語サイトの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
*/
}
...北京語でも同じように、遅かれ早かれ必要になるので、アラビア語と言いました。私の他のすべての翻訳の問題は解決されましたが、これは!!
何か案が?