5

私はGOでAPIサーバーを開発しており、サーバー(現時点で)はクライアントのすべての翻訳を処理しています。APIクライアントが特定のデータを取得すると、指定されたセクションで利用可能な翻訳も要求します。

理想的には、次のフォルダー構造が必要です。

/messages
  /home.en
  /home.fr
  /home.sv
  /news.en
  /news.fr
  /news.sv

newsとは別個homeのモジュールです。

今、私がRevelに持っている質問は、特定のモジュールと与えられたロケールのすべての言語文字列を取得することが可能ですか?たとえば、en-usのすべてのホームストリングを引っ張ります。

編集:

出力 (クライアントに返すことができるもの) を、翻訳の key:value 文字列にしたいと思います。

任意のガイダンスをいただければ幸いです。

4

1 に答える 1

3

revel は (gettext と同じように) メッセージベースの翻訳を使用しているように思われるため、翻訳を取得するには元の文字列が必要です。これらの文字列は Config オブジェクトに保存され、それ自体messagesi18n.goに保存され、言語別にソートされます。

ご覧のとおり、このマッピングはエクスポートされていないため、アクセスできません。これを修正する最善の方法は、必要な関数を作成する (言語を指定して構成を取得する) 、既存の関数の 1 つをエクスポートして revel のプル リクエストを作成することです。

のコードをコピーするloadMessageFileか、バージョンの revel を fork してloadMessageFileorをエクスポートすることで、これを回避できますparseMessagesFile。これは、プル リクエストを作成する絶好の機会でもあります。

ローカリゼーションは によって解析される INI ファイル形式で保存されるrobfig/configため、手動で解析することもできます (ただし、推奨されません)。

于 2013-09-10T11:56:01.987 に答える