タグ

i18nに関するrikuoのブックマーク (13)

  • タイムゾーン呪いの書 (知識編)

    「タイムゾーン呪いの書」は、もともと 2018年に Qiita に投稿した記事でしたが、大幅な改訂を 2021年におこない、同時にこちらの Zenn に引っ越すことにしました。 この改訂では Software Design 誌の 2018年 12月号に特集の一章として寄稿した内容も取り込みつつ、夏時間をめぐって各地で起きつつある変化について 2021年 6月現在の状況なども追加しました。そんな追記もしていたら記事全体が長大になってしまったため、この「知識編」と、「実装編」・「Java 編」に記事を分けました。「知識編」は、導入にあたる第一部です。 Qiita のほうは、引っ越した旨とこの引っ越し先へのリンクだけ追記して、しばらくそのまま残すつもりです。 はじめに タイムゾーンという概念のことは、ほとんどの人が聞いたことがあると思います。ソフトウェア・エンジニアでも多くの方が、時刻やタイムゾ

    タイムゾーン呪いの書 (知識編)
  • 本名規定違反のトラブルについて

    追記:この記事は2020年2月6日に投稿されたものです。現在、実名制については緩和されておりますのでご注意ください。 ここ数日のあいだに、名を用いてご利用いただいているにもかかわらず、いきなり「名規定違反」を理由にブロックをかけられた方が大量発生しました。 トップライターの皆さんも巻き込んでのお騒がせとなってしまった件ですが、結論から申し上げると、これは当社のミスです。大変申し訳ありません。 すでにブロックは解除されていると思いますが、もしまだ使えないという方がいらっしゃいましたら、以下の手順に沿ってご対応をお願いいたします。 フリーデンバーグ 桃紅 (Momoko Fr...

    本名規定違反のトラブルについて
  • 多言語対応のゲームUI注意点覚え書き - デザイナー脂肪

    こんにちは!ドイツに住んでるUIデザイナーのいまがわ (@i_magawa)です。 この記事は「GameGraphicDesign AdventCalendar 2019」の23日目の記事になります。 自己紹介 現在はフリーでUI仕事をやりつつ、夫婦や育児に関するマンガを描いたりしています。以前は東京でスマホゲームの開発やってました。 こういう記事も書いてます(宣伝)↓ 何の記事書くの…!? スマホゲームUIのローカライズ対応について今回は書きたいと思います。 いくつか案件関わった気がしたりしなかったりするのでまとめてみました。あくまで日っぽいゲーム海外対応するときの注意点です! また今回参考として「ポケモンマスターズ」のUIをよく載せています。 ポケモンマスターズはなんと驚異の8言語対応…!殺す気か!ちなみに私は一切運営と関係ないただのファンです。 海外対応の目標 英語ネイティブの

    多言語対応のゲームUI注意点覚え書き - デザイナー脂肪
    rikuo
    rikuo 2019/12/29
  • アプリの国際化の舞台裏

    アプリの国際化は単に表示されるテキストの翻訳にとどまるものではありません。 このセッションでは、開発者とユーザーの双方の視点から、様々な地域で使われる iOS アプリの開発を通して得られた具体的な事例を踏まえ、アプリの国際化で必要となる技術的な知識、避けては通れない問題とその対策、そして今後のアプリ開発における課題について検討します。 自分のアプリを海外のユーザーにも使ってもらいたい。アプリを翻訳したのにあまり使ってもらえない。あるいは、海外のアプリで日語が使えないのは何故なのか。海外のアプリの挙動がおかしいけれど何故そうなるのかわからない。そんな疑問を持った方を対象とします。 このセッションでは以下のトピックについて扱う予定です - Unicode についての知識と絵文字の貢献 - 日本語入力や複雑な文字の問題 - ユーザーインターフェイスとコンテンツの国際化 - 開発チームの国際化

    アプリの国際化の舞台裏
  • ぼくたちのかんがえたさいきょうのi18n国家

    記事は下記のtweetから始まるスレッドに触発され、@qnighyや@na4zagin3からアイディアを拝借して書いた。 i18n力が最強の国は国内に複数の言語があり、そのうちいくつかは他国でも使われている言語の方言で、1バイト文字での代替表記が困難で、歴史的にISO-2022ベースの文字コードとUnicodeと独自エンコーディングが混在していて、フリガナなどの特殊な組版規則があり、右書き左書き縦書きを併用し、 — Masaki Hara (@qnighy) 2018年8月6日 皆さんのおかげで最強のi18n国家が建設されつつある。一瞬で滅びそう — Masaki Hara (@qnighy) 2018年8月6日 長い前置き ソフトウェアのi18nは難しい。自文化では当たり前と思っていてハードコードしてしまった仮定が崩れて、大幅な再設計を余儀なくされるからだ。気づいて再設計できればまだ良

    ぼくたちのかんがえたさいきょうのi18n国家
  • 千夜一夜かからずに、アラビア語Unicodeをマスターする! - Qiita

    !مرحبا  アラビア語にようこそ! 今では、世界中の様々な国からユーザーが自分のサイトへ訪れます。 アラビア語を話す人は、420,000,000人です。アラビア語は(ヘブライ語とペルシャ語とモルディブ語も)右から左に記述する言語です。なので国際化 (internationalization/i18n) が難しいです。私は、アラビア語のクラスを受講する前は、普通のウェブのプログラマーでした。クラスの受講後、私は、色々なFOSSのプログラムにアラビア語の国際化の為プルリクを送りました。これは私が初めての日語で書いたプログラミングの記事です。 アラビア文字 日語と同じなテクスト/ストリングと、CSSの writing-modeと縦書きか横書きか書くできます。 アラビア語で右から書くのに、ストリングの一番目のchar型が単語の1番目の文字です。 مرحبا「マルハバ(こんにちは)」の中を見

    千夜一夜かからずに、アラビア語Unicodeをマスターする! - Qiita
  • 言語切替のUIデザインについて考えてみる。|灰色ハイジ

    いま、自分のポートフォリオを英語/日語どちらにも対応しようと思っていて、どのように切り替えるべきか、リサーチのためにいろんなサイトを見て回った。その時にこれは良い、これは避けたほうが良さそう、と気付いたことがある。 国旗を使うことによる問題 デザイン上のスペースの節約からか、あるいはグラフィカルに補助したいという理由からか、言語切替のUIで国旗を見かけることがある。 日にいると「日=日語」と、国と言語が対応しているので気付きづらいのだけれど、世界はそういう風には出来ていない。例えば英語を提供する際に、どの国旗が相応しいのか考えてみよう。イギリス?アメリカ英語を第一言語とする国はいくつもある。 決して国旗は言語を代表するものではないのだ。 また、提供する言語が多くなると、ごちゃごちゃして見づらいという問題も含んでいる。 ただし、言語の切り替えではなく、ECサイトなど提供するコンテン

    言語切替のUIデザインについて考えてみる。|灰色ハイジ
    rikuo
    rikuo 2018/04/25
  • ローカライゼイションと複数形 | MDN

    .properties ファイルをローカライズしていて、このページへのリンクがあるので、ここにいる可能性が高いです。このページは、正しい複数形がユーザに表示されるように、これらの文字列をローカライズする方法を説明するのに役立ちます。たとえば、「1ページ」と「2ページ」といった感じです。 もしあなたが拡張機能などのコードを複数形を考慮してローカライズ可能にしたいなら、PluralForm を使った開発の節に飛んでも結構です。ただコードの初期文字列をローカライズする必要があるでしょうから、少なくとも「使用方法」の節は読んでおくと良いでしょう。 このページでは、説明をわかりやすくするために 2 つの用語を使用しています。 複数規則 (plural rule): 言語には、単語を修飾する数字に応じて単語を変更する文法規則があります。言語が違えば規則も異なることがあります。 複数形 (plural

    ローカライゼイションと複数形 | MDN
  • i18nの書き方 from JavaScript - Qiita

    続編と、コード自体ではなく、何をすればいいかを書きましたAmazonに見るi18n -「国際化対応」とは何を変える事か Webサイトを多言語化する 最近多言語化に関する仕事をしている関係でi18n(l10n)用のライブラリを色々と見たので、 i18nライブラリによくある使い方を紹介します。 とは言ってもほとんどのライブラリは同じような書き方をするのでJavaScriptを例にします。 ライブラリ一覧 書き方の紹介として使用するものはawasome-javascriptにあるものと、他に気になったものを選びました。 ただし、この記事の目的は「書き方」を紹介するもので「ライブラリ」を紹介するものではありません。 動くことは確認しましたがどのくらいまともに動くかはチェックしていないのでご注意ください。 Polyglot Airbnbが公開するシンプルなライブラリ i18next 色々な環境やフレ

    i18nの書き方 from JavaScript - Qiita
  • lang属性の効果範囲 - Hail2u

    ウェブサイトの言語セレクトメニューを作る時、英語で一覧させることも多いが、それと同じくらいそれぞれの言語名でそれぞれの言語を表示することもある。母国語で表示されていれば絶対にわかるだろうし、見つけやすいだろうという理屈だ。そのこと自体にはいくつか欠点が考えられるわけだが、HTMLとしてはlang属性を使えばうまくマークアップできるだろう。同時にtitle属性を使って英語でフォローすると完璧……だが、そこそこ面倒くさいことになる。 それぞれの言語名でそれぞれの言語を表示した言語選択メニューは択一しづらい(またはスキャンしづらい)という問題がある。特にアルファベット+αの言語名は混同しやすいし、ソート順が不明確になりやすく、順にたどって見つけなければならない。どこら辺にありそうかアタリをつけることができないわけだ。 ルート要素のlang属性でen-USが指定されているとする。 <span la

    lang属性の効果範囲 - Hail2u
  • 全角半角混在の文章で 1 行に半角何文字分あるか調べる方法

    「ソースコードは 1 行あたり 80 文字以内」とか「コミットログは横幅 72 文字以内」とか、文字数に関するルールはいろいろある。 ルールを徹底するには機械的に判定したい。と思って、簡単なスクリプトを書こうとした瞬間、意外と「1 行あたりの文字数」をカウントするのが難しいことに気付いた。 たとえば、「あA」は「全角 1 文字+半角 1 文字」なので半角 3 文字分としてカウントしたい。 しかし、UTF-8 の世界では「あA」の文字長は 2 だし、バイト数は 4 (あ=0xE38182、a=0x41) である。 EUC-JP や Shift-JIS の時代なら、単純に「あA」は 3 バイトなので「半角 3 つ分」とすぐ分かったのだけども… (逆に文字長を調べるのが面倒だった)。 はて、どうするか? というのがこの記事でいいたいこと。 East Asian Width を見よ いろいろとググ

    全角半角混在の文章で 1 行に半角何文字分あるか調べる方法
  • GitHub - andyearnshaw/Intl.js: Compatibility implementation of the ECMAScript Internationalization API (ECMA-402) for JavaScript -- UNMAINTAINED

    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

    GitHub - andyearnshaw/Intl.js: Compatibility implementation of the ECMAScript Internationalization API (ECMA-402) for JavaScript -- UNMAINTAINED
  • WEB+DB PRESS Vol.78に「フロントエンドの国際化」について書いた! - teppeis blog

    先週発売されたWEB+DB PRESS Vol.78のJavaScript連載にて、「フロントエンドの国際化」をテーマに記事を書きました! 内容はこんな感じです。 国際化の基 I18NとL10N ロケール タイムゾーン フロントエンドにおける国際化 メッセージリソースの管理 数値や日付のフォーマット CLDRとICU JavaScriptにおける文字コードの罠 JavaScriptにおけるタイムゾーンの罠 JavaScript国際化関連ライブラリ i18next Numeral.js Moment.js & Moment Timezone ECMAScript 6 Internationalization API 前半ではソフトウェアの国際化で使われる基概念と、最近のフロントエンド領域で国際化を行うときに課題となるポイントを解説しています。 中盤ではいくつかの定番ライブラリを紹介し、最

    WEB+DB PRESS Vol.78に「フロントエンドの国際化」について書いた! - teppeis blog
  • 1