TGViewer
DocOps DocOps @docops · 4.27K subscribers
Post #78 927
​​Как правильно закодить локализуемые строки

В прошлую субботу был на митапе про Python от сообщества PyNSK. После докладов обсуждали, как закодить строки в интерфейсе, чтобы хорошо переводить их на другие языки. В каждом языке есть свои инструменты, расскажу про общие принципы.

Общий принцип номер один: предложения переводятся целиком, поэтому и в коде они должны быть целиком.

Например, в интерфейсе есть такая строка:

Nick's account is suspended

Здесь есть имя пользователя, его нужно подставить в шаблон. Наивный программист напишет так:

user + "'s account was suspended"

Переводчик получит только строку в кавычках и перведёт, как сможет:

Nick учётная запись заблокирована

Это звучит ужасно, поэтому переводчик может поменять смысл в угоду грамматике:

Nick, ваша учётная запись заблокирована

Это ещё хуже, потому что текст адресован не владельцу учётной записи.

Как правильно

В коде всё предложение должно быть одной строкой-шаблоном:

"{name}'s account is suspended".format(name=user)

Теперь переводчик сможет поставить переменную в нужное место:

— "Учётная запись {name} заблокирована"
— "Cuirtear cuntas {name} ar fionraí"
— "គណនីរបស់ {name} ត្រូវបានផ្អាក"


Одно предложение = одна строка-шаблон

#l10n_docops

---

Если вы давно это знали или просто хорошо разбираетесь в локализации — заходите в чат @docsascode, поделитесь опытом и болью.

На фото — доска после обсуждения на митапе. На ней есть кусочки двух ещё не опубликованных постов. 😉
More from @docops
  1. Nov 12, 2024Чему я научился: софт-скиллы, пост 2/N. Прошел первый модуль курса по софт-скиллам и у мен…
  2. Nov 5, 2024Встретил замечательную фразу. Человек спрашивает, можно ли использовать OneDrive в качеств…
  3. Sep 26, 2024Чему я научился: софт-скиллы, пост 1/N. Есть такое довольно универсальное правило: чтобы ч…
  4. Sep 26, 2024Чему я научился в этом году Год выдался очень насыщенным: я делал совершенно новые для мен…
  5. Aug 19, 2024Как я выгорел У меня долгое время было ощущение, что надо сжать булки, ещё немного поработ…
  6. Jun 26, 2024Ну и где бездушная машина неправа?
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →