スペイン語対応でわかった、語順が変わる問題に取り組んだ話

スペイン語対応でわかった、語順が変わる問題に取り組んだ話

このブログは、テクニカルライター/ローカライズ リレーブログの3本目の記事(前編)です。

こんにちは。テクニカルライターチームのpiyo(@_chick_p)です。 私は、サイボウズ製品のユーザー管理やログイン設定などのサービスを提供する、cybozu.com共通管理のUI文言やヘルプ管理を担当しています。

サイボウズでは、2023年12月にkintoneがスペイン語に対応しました。
kintoneが新たにスペイン語に対応し 多言語対応を推進 日本語・英語・中国語(簡体字・繁体字)と合わせて5つの言語に対応 | サイボウズ株式会社
同様に、cybozu.com共通管理の画面でもスペイン語に対応しています。

今回は、スペイン語対応に向けて、製品の画面文言やヘルプサイトを改善した取り組みを、前後編に分けて紹介します。

前編のこの記事は、製品の画面文言をスペイン語に翻訳したときにわかった「言語によって語順が変わる問題」がテーマです。

テクニカルライターの多言語展開への取り組み

もともとkintoneやcybozu.com共通管理では、日本語のほかに、英語や中国語(簡体字)、中国語(繁体字)という4つの言語に対応していました。 そのため、これまでも製品が対応している4言語を意識して、製品文言やヘルプサイトを作ってきました。 しかし、スペイン語に対応する際には、これまで意識できていなかった言語に依存する問題がいくつも見つかりました。

サイボウズではkintoneを全世界で使ってもらうため、今後もさらなる言語の追加を見据えています。 より製品を多言語で展開しやすくなるために、テクニカルライターチームでは、エンジニアチームやローカライズ担当、社内の有識者と協力して、製品の画面文言の見直しやヘルプサイトの見直しを図りました。

言語によって語順が変わる問題

文は、言語によってその語順が変わります。 わかりやすい例でいえば、主語(S)や目的語(O)、動詞(V)の並び順でしょう。 日本語であればS+O+Vと並べるのに対し、英語ではS+V+Oのように並べます。

  • 日本語の例:私は猫を飼っています。
  • 英語の例:I have a cat.

スペイン語の場合、SVOの並び順の違いに加え、修飾語と被修飾語の順番の違いがあります。

スペイン語は修飾語と被修飾語の順番が、日本語や英語とは逆になります。 例えば、「赤い花」は、英語では「red flowers」のように修飾語が被修飾語の前につきますが、スペイン語では「flores rojas」のように修飾語が被修飾語の後につきます。 スペイン語における修飾語と被修飾語の順番は、これまで製品が対応した4つの言語にはない文法の違いでした。

ぶつ切り文言

この「言語によって語順が変わる」という話は、画面文言では厄介です。

サイボウズの製品は歴史が長いこともあり、実装の都合で、画面の文言を複数の文言のキーに分解して実装していた時代がありました。 「可変で出力したい箇所を別のキーにしたい」「適切な位置で折り返し(改行)したい」「文言リソースを別の箇所で再利用したい」といった理由で、文言を複数のキーに分解して実装されている部分が少なからずあります。

このような、ひとまとまりで意味を成す画面文言を実装都合で複数に分割してしまうことを、サイボウズの中では「ぶつ切り文言」と呼んでいます。

ぶつ切りされた文言は、プログラム上では「ぶつ切り文言A → ぶつ切り文言B → ぶつ切り文言C の順で出力する」のように実装されます。 極端な例ですが、「cybozu.com」と「共通管理者」という文言のキーを定義し、さまざまな画面で再利用していることを想定してみましょう。

component.ui.admin.dotcom=cybozu.com
component.ui.admin.administrator=共通管理者

もし「cybozu.com共通管理者」という文言を画面に表示するとき、この2つのキーを結合した文字を使っていたとしたら、どうなるでしょう。 どんな言語でも「cybozu.com」→「共通管理者」の順番で出力されてしまいますね。

{getMessage("component.ui.admin.dotcom") + getMessage("component.ui.admin.administrator")}

ちなみに、スペイン語では、「cybozu.com共通管理者」は、「Los administradores de cybozu.com」です。 語順が違うどころか、「los」や「de」といった前置詞も必要になります。 そのため、ぶつ切り文言を結合するという実装をしていると、言語によっては正しくない文法の文言が画面に表示されることになります。

可変の部分を別の文言のキーに分けた場合

また、可変の部分を別のキーに分けた場合、翻訳者は、可変の部分に何が出力されるのかを意識して翻訳する必要があります。 以下の文は、使用できるkintoneのアプリ数などが上限を超えてしまった時に表示される文言です。 この超過メッセージは、ベースとなる文と{0}の部分がぶつ切りされて登録されています。 {0}の箇所には、kintoneのアプリ数だったり、kintoneのスペース数だったりが出力されます。

admin.licensewarning.kintone.warning={0}が上限を超えています。

# {0}に表示される文言
admin.licensewarning.kintone.app=kintoneのアプリ数
admin.licensewarning.kintone.space=kintoneのスペース数

この例の場合、「{0}には主題に当たる何かが出力される」ことを翻訳者が意識していないと、出力されたテキストの語順がバラバラになってしまうことがあり得ます。 また、文法に誤りのある文言になってしまっていても、その言語に詳しい人が実際に画面を見るまで発覚しないという問題を抱えることになります。

言語によって語順が変わる問題を回避するには

ぶつ切り文言によって語順が変わり、文法的に正しくない文が生成されてしまう問題の解決策は、意味をなす文のまとまりで1つの文言のキーを作成することです。

admin.licensewarning.kintone.app=kintoneのアプリ数が上限を超えています。
admin.licensewarning.kintone.space=kintoneのスペース数が上限を超えています。

解決策はとてもシンプルですが、ぶつ切り文言は、文言を考えるときや実装するときに意識しておかなければ生み出されがちな問題です。 実装を後から変えるのはコストがかかることもあるので、画面文言を考える段階でぶつ切り文言を生み出さないように注意する必要があります。

ちなみに、cybozu.com共通管理では、テクニカルライターはソースコードを編集することはありません。 そのため、どこまでを一つのキーとして定義したいかを、エンジニアに相談しながら決めています。

まとめ

今回は、多言語に展開する際に製品の画面文言で発生した「言語によって語順が変わる問題」とその解決策を紹介しました。 kintoneやcybozu.com共通管理は歴史が長いサービスで、たくさんの画面が存在するため、まだまだ多言語展開に適していない文言が存在しています。 これらの文言は、通常の機能開発と並行して、少しずつ改善を進めています。

後編では、ヘルプサイトに機械翻訳サービスを導入したときにわかった、機械翻訳での困りごとを紹介します。

一緒にサイボウズで働いてみませんか?

サイボウズでは、一緒にUI文言を考えたりヘルプサイトを作ったりする仲間を募集しています!
 色々な分野の技術を学びながら、一緒にサイボウズ製品を盛り上げていきませんか?

詳細はサイボウズの募集要項をご覧ください。 cybozu.co.jp