You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
こんにちは、エンジニアの岡崎(@watermint)です。今回も国際化における標準を実際にどのように選び、使っていくかを紹介していきます。今回は言語コードのお話です。 アラビア語 言語コードのお話に入る前にひとつご紹介です。先日、GREEプラットホーム新規11言語のサポートというエントリでもお知らせした通り11月に入って、GREEプラットホームに新しくアラビア語のサポートを追加しました。 これでGREEプラットホームがサポートしている言語は12言語になりました。アラビア語圏のお友達がいらっしゃる方がいらっしゃればぜひご紹介ください。 言語コードも前回紹介した国コードと同様の基準で選ぶことになります。GREEのようなインターネットサービスを提供する場合には、必然的にインターネット上でよく使われるプロトコルが重要な選択基準になります。 インターネット上の言語コードは、BCP 47がデファクトス
« HTTP::AcceptLanguage - Accept-Language ヘッダを解析して適切な言語を返す君 | Main | zh-hans, zh-hant に対応してない!って怒られた時は » Amon2 で国際化アプリを簡単に書く Amon2::Plugin::L10N を出しました Perl で L10N する方法としてはPerl でつくった web サイトを L10N する方法 - tokuhirom's blog.が有名ですが、昨今はうっかりパンケーキとか唐揚げを食べてたらロンドンとかに海外進出しちゃうようなのが当たり前になった現代においては、 blog のコードをコピペするやつは死んどけば良いので、死なないため殺されない為に実用的に CPANize して殺す側に回りました。 https://metacpan.org/release/Amon2-Plugin-L10N
今更な感じではあるけど紹介。 ソフトウェアを多言語対応させるためにはgettextなどの仕組みを使うのだけど、それらで使われる拡張子がPOの翻訳データのファイルをオンライン上で編集できるサービスです。 https://www.transifex.net/start/ Transifexがオープンしたのは1年以上前なんですが、しばらく触ってなくて久しぶりに見てみたら、UIなどが結構わかりやすくなってました。 Transifexでできること このサービスでできることはこんな感じ。 各種翻訳データファイルの翻訳 翻訳データファイルの内容を翻訳できます。 フォーマットはgettextであればPOファイルですが、それ以外でも多数サポートされています。詳細はドキュメントに書かれています。 Supported File Formats Webでの翻訳の画面はこんな感じ。左が原文で右側に翻訳したテキストを
iPhoneアプリケーションを他言語対応したいとしたら、Apple側がすでに用意してくれている方法を使うのが自然かと思う。 僕も最初はその方法を試した。ドキュメント的には以下がエントリポイントだろうか: iOS Reference Library - Internationalization Programming Topics しかしこの方法にはいろいろな問題があり、大きなアプリケーションを作ろうとするとストレスがかかってくるので現在は使用していない。(小さなプロジェクトでは使うこともある) その問題とは以下のようなものだ: 言語ファイル(Localizable.strings)が独自形式なため、既存の翻訳ツールを使うことが出来ない一つ目と少しかぶるが翻訳抜けや言語一覧などをチェックする機能がないibtool のマイグレーション機能がくそで、バージョンアップのたびにリソースファイル内の文
Compiler Assisted Localization (CAL10N) Compiler Assisted Localization, abbreviated as CAL10N (pronounced as "calion") is a java library for writing localized (internationalized) messages using resource bundles you are already familiar with, but with much greater comfort. Features java compiler verifies message keys used in source code tooling to detect errors in message keys native2ascii tool mad
Ruby on Rails Guides: Rails Internationalization (I18n) APIを読んでのメモ。全部網羅してたりはしてないので、気になった方は原文見てください。 基本 I18n.translate "store.title" I18n.localize Time.now # 短縮形 I18n.t "store.title" I18n.l Time.now config/locales が translation 用のデフォルトロードパス。 I18n.load_path や config/application.rb 内で config.i18n.load_path をいじれば修正できる。 辞書ファイルにはyaml形式かRubyのhash形式が使える。 デフォルトのlocaleは:en I18n.default_localeでデフォルトのlocaleを変
You are viewing an old version (v. 7) of this page. オリジナル: Internationalization 開発者が知っておくべきこと、すべきこと Hudsonのi18nかについて開発者が知っておくべきことが2点あります。 Messages.properties からタイプセーフな Messages クラスを生成する。 Jellyファイルのメッセージを作成する。 Message クラスの生成 Hudsonは、localizerを使用して、タイプセーフな方法でメッセージリソースにアクセスするためのクラスを生成します。各src/main/resources/**/Messages.properties毎に、メッセージクラスが1つ生成されます。このクラスがどのようなものかは、リファレンスページを参照してください。IDEがこれらのクラスを見つけら
メッセージ管理などでプロパティファイルを使っていて、Javaのコード上でプロパティファイルのkeyをタイプミスしてしまったりkeyがどこで使われているか検索するのが面倒くさかったりしませんか?そんなときはEnum Propertyパターンが使えます。 プロパティファイルの場合、多言語表示のためにmessage.propertiesやmessage_ja.propertiesなどとロケールごとにファイルを作成するのが一般的だと思いますが、「Enum Propertyパターン」では、ファイルではなくEnumを作成します。たとえばこのような感じです。 public enum Message implements MessageResource { M001("Hello World"), M002("Hello {0}"); ... } public enum Message_ja implem
BabelとはBabelはedgewallによって開発されているI18N, L10Nのためのライブラリです。Babel http://babel.edgewall.org/ Pythonでは標準ライブラリとしてGNU gettextが組み込まれており、カタログをビルドするためのスクリプト(msgfmt.pyとか)も標準でありますが、これだけでは不便です。例えば、Webアプリケーションを開発していると、テンプレート内の文字列を国際化したいというようなニーズがどうしても出てくるでしょう。Babelはこうした局面で使用することを目的として開発されているライブラリ・ツールのようです。 Djangoを使っていると、make-messages.py, compile-messages.pyで上記のような要求が満たされてしまうので、Babelのようなライブラリは全く必要がないと思います。しかし、「俺フレ
アプリを国際化してAndroid Marketから世界へ発信:Androidで動く携帯Javaアプリ作成入門(8)(1/2 ページ) 本連載で、SDKとEclipseを使ってAndroidの携帯端末で動くJavaアプリを作成し、Android Marketでの配布を目指しましょう Android国際化のススメ 作成したアプリをできるだけたくさんのユーザーに使ってもらうためには、どうすればよいでしょうか。 これまでのケータイアプリでは、“配布する場所”と“方法”が最も重要でした(参考「携帯アプリを無料で公開して使ってもらうには?」)。Androidアプリの場合は、あらゆるユーザーがAndroid Marketからアプリをダウンロードするため、配布場所と方法は確立しています。「あらゆるユーザー」とは、「あらゆる“国”の、あらゆる“端末”を持つユーザー」という意味になるため、アプリがカバーする言
Recent entries Apache2.4のリリース予定は来年(2011年)初め(あくまで予定) inoue 2010-12-23 Herokuの発音 inoue 2010-12-20 雑誌記事「ソフトウェア・テストPRESS Vol.9」の原稿公開 inoue 2010-12-18 IPA未踏のニュース inoue 2010-12-15 労基法とチキンゲーム inoue 2010-12-06 フロントエンドエンジニア inoue 2010-12-03 ASCII.technologies誌にMapReduceの記事を書きました inoue 2010-11-25 技術評論社パーフェクトシリーズ絶賛発売中 inoue 2010-11-24 雑誌連載「Emacsのトラノマキ」の原稿(part8)公開 inoue 2010-11-22 RESTの当惑 inoue 2010-11-22 「プ
国際化 - 指定された言語を判定する I18N::LangTags 前回の話ではLocale::Maketext::Simpleだけでは「どの言語を使うか」までは判定してくれません。そこで登場するのが I18N::LangTagsとI18N::LangTags::Detect。確認してないけど、最初の数行のコードの癖からして作者はLocale::Maketextを書いた人と一緒な気がする。 これの使い方は基本的に以下の通り: use strict; use I18N::LangTag (); # なんかいっぱいエクスポートしちゃうので・・・ use I18N::LangTag::Detect; use Data::Dumper; print Dumper( [ I18N::LangTag::implicate_supers( I18N::LangTag::Detect::detect()
国際化 - Locale::Maketextと Locale::Maketext::Lexiconの場合 さて、今度はLocale::MaketextとLocale::Maketext::Lexicon。 Locale::Maketextは基本操作は以下のようなイメージ。get_handle() というメソッドでローカリゼーション用のオブジェクトを引っ張り出し、それに対してmaketext() を呼び出して変換を行う。 use MyApp::I18N; my $handle = MyApp::I18N->get_handle('ja'); print $handle->maketext("Hello, World!"), "\n"; get_handle() になにげに言語IDが渡されているのもポイント。引数無しでget_handle() を呼び出すと、前出のI18N::LangTag::
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く