2013-03-11 8 views
5

のGettextまたは優れているデータベースの翻訳

    1. gettextのカスタムのMySQL +キャッシュベースの機能

    はGettextパッケージは、組み込み機能の一種であるので、私はそれがパフォーマンスのために微調整されますと仮定します。 poeditの使用は苦痛で、どのクライアントにも表示することは不可能です。

    カスタム機能により、簡単な翻訳インターフェイスが可能です。しかし、php/dbの使用には重いかもしれません。

    私は、あなたはどちらを使いますか?

    答えて

    14

    ローカライゼーションが困難です。それは本当に難しいです。 "pairs of words" => "Wortpaare"だけではなく、それよりもはるかに複雑です。ほとんどの人がgettextを見て、"うわー、醜い"と言うときに忘れるのはローカライゼーションプロセスは実装の技術的詳細よりもはるかに重要です。実際の翻訳者は一般的にプログラマーではなく、おそらく社内でさえもないからです。これはあなたが思うかもしれないより多くの頭痛を引き起こします。 gettextは本当に古く、テスト済みで、このプロセスをサポートするためにチューニングされた巨大なツールチェーンを持っています。 i18nとl10nを適切に実行したい場合は、強力なシステムが必要です。 gettextはそれであり、幅広いツールからのサポートを受けています。自家製翻訳システム™はありません。

    まず、堅牢なシステムが翻訳可能な文字列に必要です。ソースコードから翻訳可能な文字列を自動的かつ再現可能に抽出することができなければ、翻訳したい新しい文字列ごとに作業ができます。 gettextでは、xgettextがそれを行います。

    次に、翻訳が失われず、できるだけわずかに変更された翻訳しか保存されないように、既存の翻訳と抽出された文字列を同期させるツールが必要です。 gettextでは、msgmergeはそれを行います。

    次に、余分な情報を文字列に追加する方法が必要です。カテゴリ、 "ドメイン"、およびコンテキストによってそれらをグループ化できるようにするには、翻訳者のコメントをソースコードに追加したい場合があります。また、翻訳者が翻訳にコメントを追加できるようにすることもできます。 gettextはそれをすべてサポートします。

    次に、ファイルを中国に送信してそこに翻訳する可能性があるため、さまざまなツールのサポートが良好なファイル形式が必要です。なぜなら、非常に非同期的なプロセスである可能性があるため、外部のトランスレータにそれらを送信する理由は、変更をマージするための良い同期ツールが必要な理由です。 gettextはとても古いので、POファイルは非常にうまくサポートされています。特定のニーズに応じて、多くのレベルでローカリゼーションプロセスをサポートする多くのオープンソースおよび商用ツールがあります。

    ローカリゼーションのタスクを過小評価しないで、プロセスに適したツールを選択して学習します。 gettextは素晴らしいツールです。

    my gettext extension for Twigは、PHPのgettextをさらに優れたものにします。

    +2

    偉大な答え - 自家製のソリューションで収穫する小さな問題を指摘してくれてありがとう。カスタムソリューションが最初はほとんどの場合は機能しますが、プロジェクトの複雑さや言語の数が増えるにつれて、カスタムソリューションが完全なgettext実装のために放棄されるように思えます。 – rinogo

    2

    多分Memcachedを調べて、それをMySQLと組み合わせて使うことができます。 翻訳のように頻繁に変更されないデータを取得するのに非常に便利です。

    関連する問題