Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
LayerXにおける多言語対応 開発速度を落とさない翻訳情報管理
Search
Yuki Yata
August 23, 2024
2
3.5k
LayerXにおける多言語対応 開発速度を落とさない翻訳情報管理
Yuki Yata
August 23, 2024
Tweet
Share
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
How to Ace a Technical Interview
jacobian
276
23k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
130
Art, The Web, and Tiny UX
lynnandtonic
297
20k
Scaling GitHub
holman
458
140k
How to train your dragon (web standard)
notwaldorf
88
5.7k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
What's in a price? How to price your products and services
michaelherold
243
12k
Transcript
© LayerX Inc. LayerXにおける多言語対応 開発速度を落とさない翻訳情報管理
自己紹介・会社紹介
© LayerX Inc. 3 • 2023年12月 株式会社LayerX入社 ◦ バクラク申請・経費精算 ソフトウェアエンジニア
◦ 25卒として来年入社予定で現在はインターン生 • 横浜国立大学経営学部4年 • 趣味: スマブラ • 好きな北海道の食べ物: 豚丼、わかさいものスイートポテト 矢田悠輝(yata) 自己紹介・会社紹介
4 © LayerX Inc. 「すべての経済活動を、デジタル化する。」をミッションに掲げ、 法人支出管理サービス「バクラク」や企業内業務のデジタル化を支援するサービスを提供しています。 自己紹介・会社紹介 バクラク事業 企業活動のインフラとなる法人支出 管理(BSM)SaaSを開発・提供
Fintech事業 ソフトウェアを駆使したアセットマネジメ ント・証券事業を合弁会社にて展開 AI・LLM事業 文書処理を中心とした、LLMの活用による プロセスのリデザイン
© LayerX Inc. 5 バクラク申請・経費精算 自己紹介・会社紹介
バクラク申請・経費精算での多言語対応 開発速度を落とさない翻訳情報管理
© LayerX Inc. 7 多言語対応以前 なぜ開発速度を落とさないことを重視するのか バクラク申請・経費精算での多言語対応 機能開発 機能開発 多言語対応は一度行うとずっと付き合っていかなければいけないから
A. 多言語対応以後全ての機能開発に影響を与えるから 多言語対応以後 多言語対応
© LayerX Inc. 8 • エンジニア以外とも共有しやすい ◦ コミュニケーションで時間を取らない • 訳語が決定した経緯やメモなど、翻訳情報以外のデータを載せることができる
◦ 文言の確認で手が止まらない 1. スプレッドシートで翻訳情報を管理する バクラク申請・経費精算での多言語対応
© LayerX Inc. 9 • 直感的にコードの内容を理解でき、開発者の認知負荷を下げられる • UI上の文言からコードを直で検索でき、使用箇所の特定が容易 2. 日本語でキーを管理する
バクラク申請・経費精算での多言語対応
© LayerX Inc. 10 • 予測変換やESlintのエラーが効く • 「このキーあったっけ?」「このキーで合ってたっけ?」などのキーの存在確認が不要 3. スプレッドシートから型を生成する
バクラク申請・経費精算での多言語対応
© LayerX Inc. 11 • タグや変数などのひとまとまりをそのままキーとする。 • 文章が分割可能であっても1つにまとめる。 4. ひとまとまりをキーの分割単位とする
バクラク申請・経費精算での多言語対応
© LayerX Inc. 12 • 自然言語は文脈によって意味が変わる場合がある ◦ (=同じ文章、単語を毎回全く同じように翻訳するとは限らない) • 同じキーで別の翻訳結果を出すことは不可能
• 必要な文脈を含んだ状態で翻訳することで、キーと翻訳結果を1対1に対応させられる なぜひとまとまりでキーを分割するのか バクラク申請・経費精算での多言語対応 Apply Request 申請する →
© LayerX Inc. 13 • 文をキーの分割単位にする ◦ 重複した文章があった場合、翻訳の手間が減る、翻訳の一貫性が増すが... • 文をキーの分割単位にする+単語を埋め込む
◦ 同じ単語を必ず同じように翻訳できるので一貫性が高くなる、保守性が高くなるが... 選ばなかった選択肢 バクラク申請・経費精算での多言語対応 → 文脈によって意味が変わる恐れがある(→過度な最適化)
© LayerX Inc. 14 • ()・:などの記号をキーに含めると完全に同じ文言を別のキーとしてしまい保守性と一貫性が低下する ◦ 記号は翻訳に影響を与えないので独立したキーとしても良いと判断した 例外: 文頭や文末の記号は分割する
バクラク申請・経費精算での多言語対応
まとめ
© LayerX Inc. 16 1. スプレッドシートで翻訳情報を管理する ◦ コミュニケーションコストの増加で開発速度を落とさない 2. 日本語でキーを管理する
◦ 開発者体験の低下で開発速度を落とさない 3. スプレッドシートから型を生成する ◦ キーの存在確認コストで開発速度を落とさない 4. ひとまとまりをキーの分割単位とする ◦ 過度な最適化で開発速度を落とさない まとめ まとめ
© LayerX Inc. 17 東京で後夜祭やります! おわりに