0

状況
次のクラスがあると仮定します。

<?php
class User {
const STATUS_NEW = 0;
const STATUS_DELETED = 1;

public static $aStatuses = array(
  self::STATUS_NEW     => 'New',
  self::STATUS_DELETED => 'Deleted'
);

// ...
}
?>

質問
文字列を作成してローカライズの準備を整える方法New(Deleted例で gettext を使用)?

可能な解決策?

...
public static function getStatuses() {
  return array(
    self::STATUS_NEW     => _('New'),
    self::STATUS_DELETED => _('Deleted')
  );
}

しかし、どういうわけか、これを行うにはもっとエレガントな方法があると感じています。

4

1 に答える 1

0

私は2つの深刻な方法があると思います:

1) po-edit で簡単に編集できる gettext と po-file を使用する

2) ローカライゼーションに配列を使用する:

// lang.english.php
$text_arr['new'] = "New"; 

// lang.german.php
$text_arr['new'] = "Neu";

そして、ユーザー指定の言語ファイルを含めます。コード自体では、変数のみを使用します

私自身は、配列よりも gettext と po-files を好みます。言語を処理する際にはるかに使いやすいからです。特に翻訳者はソースコードを書く必要はありません。

どちらのバージョンも、パフォーマンスの点ではほぼ同じです。その頃の記事を読みました。明日の夕方家に帰ったら、ブラウザのブックマークを見て、ここに投稿できます。または、ググることもできます。

于 2013-06-08T18:10:56.897 に答える