Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
アプリケーション国際化
Search
Livesense Inc.
PRO
April 21, 2014
Technology
73
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
アプリケーション国際化
アプリケーション国際化
2013/04/25 (水) @ Livesense TechLunch
発表者:徳江 勇樹
Livesense Inc.
PRO
April 21, 2014
More Decks by Livesense Inc.
See All by Livesense Inc.
Rubyはただの⾔語に⾮ず
livesense
PRO
0
530
28新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
120
27新卒_総合職採用_会社説明資料
livesense
PRO
0
7.2k
27新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
12k
株式会社リブセンス・転職会議 採用候補者様向け資料
livesense
PRO
0
540
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
PRO
1
1.8k
データ基盤の負債解消のためのリプレイス
livesense
PRO
0
680
26新卒_総合職採用_会社説明資料
livesense
PRO
0
13k
株式会社リブセンス会社紹介資料 / Invent the next common.
livesense
PRO
2
75k
Other Decks in Technology
See All in Technology
beyond jj: config & tools ecosystem
indirect
0
5.4k
積み重なった技術負債への挑戦 〜初手としての全社ゴト化〜
techtekt
PRO
0
1.4k
アクセスキーこわい やめかたと漏らさない工夫
sassssan68
1
510
Oracle Cloud Network Path Analyzerを試してみた/I Tried Out Oracle Cloud Network Path Analyzer
masakiokuda
1
100
エージェントはローカル、検証はMicroVM — Lambda MicroVMsでつくるServerless CI
fujioka6789
3
520
Vibe Coding で作ったプロダクトをどう安全に動かすか / How to Safely Run Products Built with Vibe Coding
glidenote
0
350
AIを活用するために決めた "やらないこと" - 価値に注目する / Not betting on AI
soudai
PRO
3
560
え、こんなに早く改修できるの?──新人エンジニアとスクラムマスターの2人が語る、AI×アジャイル開発の現場
ysasago
2
550
JSONataとAWS Step Functionsで目指すRuntimelessな世界
mu7889yoon
0
300
AI coding 整合正規方法
philipz
0
380
技術的負債から考える、AI時代のエンジニアリング投資 — ビズリーチの技術的負債と向き合った経験から、変更し続けられるソフトウェアを考える/ technical-debt-con2026
visional_engineering_and_design
4
3.3k
開発投資の期待値を上げるプロダクトロードマップづくり ~プロダクトエンジニアが越境して事業を伸ばす~
kekekenta
1
230
Featured
See All Featured
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
530
Code Reviewing Like a Champion
maltzj
528
40k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
280
Prompt Engineering for Job Search
mfonobong
0
450
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
470
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
700
Navigating Weather and Climate Data
rabernat
0
520
Transcript
2013/4/25 TechLunch アプリケーション国際化 徳江勇樹
COPYRIGHT 2013 2 2013年04月25日 アプリケーション国際化 お題 現在、あなたは日本国内・日本語ユーザー向けにシステムをメンテ ナンスしています。 来年より、国際化が必要になりました。要件は次ページ。
COPYRIGHT 2013 3 2013年04月25日 アプリケーション国際化 要件 •既存製品: Webアプリ 日本国内・日本語ユーザー向け •追加要件 •既存のデータを外国語ユーザーが同時に使用(閲覧・編集)
•追加言語: 英語 できればそのうち、他の言語も…。 •アクセス元: 日本・中国・ドイツ・アメリカ •サーバー: 日本のみに配置
COPYRIGHT 2013 4 2013年04月25日 アプリケーション国際化 さぁ、一緒に考えよう。 ビュー(言語表示) データ インフラ 機能
マニュアル 考えるべき点はいろいろです。 以下、トピックベースで考えていきます。
COPYRIGHT 2013 5 2013年04月25日 アプリケーション国際化 表示:日付・数値(1) ロケールで変える必要あり 参考 Oracle 国際化対応言語環境の利用ガイド(各ロケールでの表示形式)
日付・時刻・数値の一般的な表示形式が、各分化で異なります。 言語 日付 時刻 数値 システム標準 2011-07-16 23-59-00 4294967.00 日本語、日本 2011年07月16日 23時59分00秒 4,294,967.00 ... ヨーロッパ 7/16/11 4.294.967,00 4'294'967.00 4 294 967,00 英語、米国 7/11/16 11:59:00 PM 4,294,967.00 曜日や月名、語順まで加えると、大変なことに。
COPYRIGHT 2013 6 2013年04月25日 アプリケーション国際化 表示:日付・数値(2) 日付:アプリケーション 数値:ムリ 参考 @IT
Java OSとプログラミングの「時間」に関する常識 日付の場合 各システムでユーティリティで、ロケールに自動対応 DB: DateTime PHP: DateTime Symfony: Helper:Date # format_date(...) Java: java.util.Date 数値は…、無理 入力時のValidationとか。 数値と少数点(.)だけ を入力可能にする とか。S
COPYRIGHT 2013 7 2013年04月25日 アプリケーション国際化 時差1 時刻は全部サーバーで取る。ユーザーの時間は信じない •ロケールでの時差 •サマータイム •ユーザーのPCの時計が誤っている可能性がある
→ ユーザーPCの時間は信じちゃいけない ☓ Javascript・クライアントアプリから時刻を取得 ◦ DB上での時刻。 当然、DateTimeなどで管理。
COPYRIGHT 2013 8 2013年04月25日 アプリケーション国際化 時差2 夜がない。定期停止・Cron実行時間がない → 極力、無停止で。 米東海岸 イギリス
日本 11:00 15:00 0:00
COPYRIGHT 2013 9 2013年04月25日 アプリケーション国際化 通信 機能面) パラレルでnon-blockingで、 •回線が細い・不安定 •日本はなんだかんだで、高速大容量の回線で、安定。 •ヨーロッパは結構遅かったり。
•遅延 •1レスポンス毎に、 ユーザ-AP間の転送が過半を占める ⇛ A→B→C という直列な通信はNG。 必須部分: 一発で取得 追加部分: 遅延でnon-blockingにパラレルに。 ⇛ クライアントキャッシュを極力活かす 参考 日経BP いまさら聞けない国際ネットワークの基礎知識
COPYRIGHT 2013 10 2013年04月25日 アプリケーション国際化 通信 回避策+α インフラ) アプリケーション仮想化 参考 Citrix XenApp 機能概要
AP •A画像だけをUDPで飛ばす •APサーバーの側に仮想サーバーを配置 •VNC、XenAppなど •課題・注意点 •ユーザ数分の仮想サーバーパワーが必要 •画像の差分を転送 → UIの時間変化で転送量・回数増加 例: 動画、画面のスクロール •色の要素数が多いと、転送量増加 例: グラデーション 通常 アプリ仮想化 U AP U' U 仮想sv 画像/操作
COPYRIGHT 2013 11 2013年04月25日 アプリケーション国際化 文言>翻訳漏れ 英語マシンでは、表示ができない 英語OS・欧米マシンでは日本語フォントがない → 残存の日本語が全て「□□□」に → 英語OS環境でのテストは必須
•Microsoft Office製品は地元言語依存。utf-8が使えないことも。
COPYRIGHT 2013 12 2013年04月25日 アプリケーション国際化 文言>切り出し I18n & L10n ロケールに応じて、言語・書式などを切り替える
大概、フレームワーク任せですね。 •Symfony テンプレートを切り替える。文言を外部化(XML) •Java 文言を外部化(resourceBundle) 分離作業: ひたすら面倒くさい → ツール・IDEを活用するのが得策 保守: さらに面倒くさい メンテナンス・テスト工数が倍増 → MECEに対応するべく、文言の管理方法が必要
COPYRIGHT 2013 13 2013年04月25日 アプリケーション国際化 文言>翻訳 手動・有料 参考 翻訳料金のめやすと計算方法 •自動翻訳 •まだまだ使い物になりません。
•特に、「専門用語」関連 •確認方法 翻訳機で「日→英」して「英→日」 •翻訳サービス •高い: 相場 7000円/200語 → システムで~1000万円級 •専門用語対応が入ると、更に。 •事前・事後作業がいろいろ •事前 「固有名詞」「専門語」の辞書作成 文面箇所の洗い出し •事後 翻訳内容をシステムに落としこむ
COPYRIGHT 2013 14 2013年04月25日 アプリケーション国際化 文言>翻訳2 学ぶは真似ぶ → 他システムの言い回しをパクるつもりで。 参考 Eclipseの英語ヘルプ 開発者が翻訳 : イミフで、ユーザーに怒られる
•「学校では教えてくれない」英語 •マニュアルの定型(箇条書き・正常系と追加条件) •命令文・態の使いどき •前置詞・冠詞のニュアンス •接続詞の使い方 (ex. andとand then) •省略の仕方 •和製英語 •... •ひたすら慣れる •既存の英語システム・英語マニュアルをひたすら見て模倣する •おすすめ: OS/IDEを英語で使う IDEのヘルプを真似る
COPYRIGHT 2013 15 2013年04月25日 アプリケーション国際化 文言>日本語の特色 英語:宣言型言語 固有名詞 日本語ではなんとなく固有名詞・専門用語だと伝わってしまう。 漢字の連続・カタカナ語・聞きなれない言葉
→ 他言語ではそうはいかない 対策)以下の中から、システム全体で方針を決めておく •明示的に用語定義 冒頭・脚注で付加的に用語説明を行う。 •引用符 •大文字・略語表記
COPYRIGHT 2013 16 2013年04月25日 アプリケーション国際化 文言>文章 メールもマニュアルも最初の3行 で判断されます。 HITしなければ、それ以上は読まれません。 結論を濃縮し
理由・意図・手順は後述… という感じです。 参考 今すぐ使える英語メール文例集
COPYRIGHT 2013 17 2013年04月25日 アプリケーション国際化 通貨 要 仕様相談 鬼です。 •共通通貨を定め、それだけを使用。 •各時点でレートを設定
•自動でレート換算 •過去のデータを表示する際には、該当の時点のレートで算出する 必要あり。 参考 今すぐ使える英語メール文例集
COPYRIGHT 2013 18 2013年04月25日 アプリケーション国際化 データ切り替え1 システム要件次第 マスタ ja en
ch ja en ch マスタ ja en ch 分割方法の例 案1 正規化し、マスタテーブルと言語別テーブルに分割 案2 単一テーブルに言語別で行を保持 案3 単一テーブルに言語別で列を保持
COPYRIGHT 2013 19 2013年04月25日 アプリケーション国際化 データ切り替え2 機能面 多言語で必要な機能改修 機能面で必要な改修 起動時: ・ロケールを認識して、言語切り替え
・言語選択機能 を用意 閲覧画面: ・ロケールから表示・データを自動選択 マスタ・設定画面: ・表示: ロケールから自動選択 ・データ: 各言語データを表示・編集 対訳するために、併記しての比較ビューが必要
COPYRIGHT 2013 20 2013年04月25日 アプリケーション国際化 データ修正 文字列長 日本語は、短い 日本人の氏名 ~漢字10文字
欧米人… ~40文字 日本語と同等の内容の英文は、 文字列長にして3倍。 表示長にして1.3~1.5倍 → DBのカラムサイズ 見直し & コンバート Varidationの検証とか面倒くさい → デザイン崩れ 要確認
COPYRIGHT 2013 21 2013年04月25日 アプリケーション国際化 以上