0

私が取り組んでいる Django ベースの Web アプリケーションは、いくつかの異なる言語に翻訳されています。これまで、静的ファイル (コード内のテキスト、テンプレート、静的ページ) の翻訳に gettext/PO ファイルを使用してきました。DB に保存されている CMS ページとテキストは、管理インターフェースを介して翻訳されます。

この共通の設定は私たち開発者にとってはうまく機能しますが、管理インターフェースを使用する代わりに常に翻訳ツール (PO ファイルを使用) を使用したい翻訳者には好まれません。

ますます多くのコンテンツがコードからデータベースに移行されたので、DB に格納されたテキストに gettext を使用してみました。アイデアは良さそうですが、ワークフローは非常に面倒です。

  1. エディターが管理インターフェイスの英語のテキストを変更する
  2. 開発者はコマンドを実行して、本番 DB に接続されているホストでメッセージを抽出します
  3. PO ファイルが翻訳者に送信されます
  4. 翻訳者は、翻訳が完了するとファイルを開発者に送り返します
  5. 開発者は mo ファイルをコンパイルし、コード ベースでチェックしてデプロイします

一部の手順はTransifexなどのサービスを使用して自動化できますが、最後の手順を回避する方法がわかりません。データベースの変更の結果として展開しなければならないというのは、間違っているように聞こえます。

デプロイを必要としない、Web アプリケーション用の適切な gettext ベースの翻訳ワークフローを思いついた人はいますか?

4

1 に答える 1

1

私たちはDjango-rosetta (PO エントリがどこから来ているかを気にしないという追加の利点があります) を使用して、ほとんどの i18n ニーズを管理しています。ここであなたが求めていることに関して、私たちが最終的に得たワークフローは次のとおりです。

  1. Translator は独自の管理インターフェースを使用して Rosetta にログインします
  2. Rosetta はすべての po ファイルを解析し、ページをレンダリングして翻訳を編集します
  3. ユーザーが保存を押すたびに、rosetta が django とともに再起動し、すべての変更が有効になり、適用されます。
  4. 翻訳者が django に戻ると、新しい文字列がどのように見えるかがわかります
  5. 翻訳者が独自の PO 編集ソフトウェアを使用することを希望する場合は、使用できますが、新しいバージョンを提供する必要があります。

追加の自動化ステップを支援するためにいくつかのスクリプトを作成しましたが、このセットアップは非常にうまく機能しました. 簡単に翻訳できるように、非 django ベースのシステムを Rosetta に統合しました (rosetta コードにいくつかのカスタム変更を加えた後)。

于 2012-08-03T12:10:35.630 に答える