Здравствуйте, Евгений Музыченко, Вы писали:
bnk>>Он железный, ему что одну строку перевести что десять
ЕМ>Так это ж и в коде, вместо подстановки нужного слова, придется выбирать нужный вариант полной фразы...
Ну так эта логика же в коде так и так должна быть?
Просто вместо "оптимизированной" когда меняешь части предложений меняешь само сообщение.
Вместо вот этого:
MSG_intput="input"
MSG_output="output"
MSG_problem="there is some problem with %1: %2"
type = problem_with_input
? translate(MSG_input)
: translate(MSG_output)
message = translate(MSG_problem, type, error_message)
Делать вот так:
MSG_problem_input="There is some problem with input: {error}"
MSG_problem_input="There is some problem with output: {error}"
message = problem_with_input
? translate(MSG_problem_input, { error: error_message })
: translate(MSG_problem_output, { error: error_message })
Это работает с языками гораздо лучше — перестановку параметров можно делать по смыслу, в т.ч. через ИИ
IMHO, первый вариант (если я правильно понял) — это экономия на спичках, приводящиая к потенциальным проблемам в локализации