Какие языки должен поддерживать Splync
Когда Splync только запустили, это было монолингвальное приложение, доступное только на английском, хотя этот блог теперь публикуется на 42 языках. Мой родной язык — японский, и я официально сертифицирован для его преподавания, сдав экзамен по компетенции преподавания японского языка, проводимый Японской организацией образовательных обменов и услуг. Тем не менее, английский, кажется, самый доступный язык в мире сегодня, поэтому я выпустил первую версию Splync на английском как MVP (Минимально жизнеспособный продукт). Как я заметил, многим японцам не очень комфортно использовать английский, поэтому добавление японской поддержки было для меня совершенно естественным. Я также добавил французский, на котором говорил со старшими людьми в Руанде, когда был волонтером в программе Японских добровольцев по сотрудничеству за рубежом в области водоснабжения и санитарии. Кроме того, я включил упрощенный китайский, который я немного читаю, просто чтобы увидеть, как приложение будет выглядеть в другой письменности.
От монолингвальности к четырём языкам
Splync v1.3 поддерживает четыре языка: английский, японский, французский и упрощенный китайский. Расширяя Splync за пределы английского, я хотел сделать поддержку языков максимально эффективной без лишней сложности. Вместо количества я сосредоточился на влиянии каждого языка. Английский естественно охватывает самую широкую международную аудиторию. Японский — мой родной язык и представляет собой большой внутренний рынок, где приложения для совместного бюджета всё ещё появляются. Французский, в свою очередь, расширяет охват на несколько континентов — не только Францию, но также части Африки, Канады и Европы. Наконец, упрощенный китайский открывает доступ к одному из крупнейших в мире онлайн-сообществ. Вместе эти четыре языка обеспечивают сбалансированное глобальное покрытие — Северная Америка, Европа, Азия и Африка — оставаясь при этом управляемыми для одного разработчика. С точки зрения соотношения затрат и выгод, это самая эффективная многоязычная настройка на данный момент. Поскольку это была моя первая попытка локализации приложения, весь процесс стал для меня ценным экспериментом.
Как локализовать приложения через ключи
В Splync я использую встроенную в Apple систему локализации с файлами .strings для каждого поддерживаемого языка, где хранится весь текст, видимый пользователям, в структурированном формате. Каждый текст обозначается ключом — например, "sign_up_button" — и получает фразу для каждого языка в файлах .strings. На английском это может быть "Sign Up", а в других файлах — соответствующие переводы. Таким образом, каждый файл .strings работает как параллельный корпус, объединенный общими ключами. Эти ключи динамически управляют всем отображаемым текстом в интерфейсе приложения на основе выбранного пользователем языка. Хотя сам механизм довольно прост, поддержание высокого качества перевода — гораздо более сложная задача. И, конечно, я не говорю на стольких языках, как C-3PO!
Улучшать качество перевода вместе
Для этой версии я использовал ChatGPT-4o для перевода всего текста по ключам и лично проверил насколько мог. Как разработчик-одиночка, я планирую автоматизировать процесс перевода дальше, используя Python и API OpenAI, как я делаю для этого блога. Локализация — это одновременно лингвистическая и техническая задача. Хороший перевод — это не просто буквально, он должен учитывать тон, фразеологию и культурные особенности. Я ранее работал в международной компании по переводу и редактированию академических текстов, что научило меня ценности человеческой проверки для выявления более глубокого контекста и намерения, которые ИИ может упустить. Ограничения интерфейса — это ещё один фактор — иногда переведенная фраза просто не помещается на кнопку или ярлык. Таким образом, локализация — это не только язык, но и макет и дизайн. Через проб и ошибки я продолжаю улучшать многоязычный опыт Splync, чтобы сделать его более естественным, согласованным и масштабируемым. И это путешествие — не только про код или подсказки — я хотел бы включить отзывы пользователей, чтобы ещё больше повысить качество. Если вы заметите какие-либо неестественные или неудобные переводы, не стесняйтесь сообщать мне. Ваши замечания всегда приветствуются.
Splync ориентирован на сообщество
Раньше я работал менеджером по работе с клиентами в международных компаниях и узнал, как важно слушать пользователей. Это одна из причин, почему я хочу поддерживать больше языков — чтобы Splync мог понимать и расти с большим количеством голосов. В то же время отличные услуги и продукты должны защищать общие интересы своих пользовательских сообществ. Один человек может сказать одно, другой — другое. Некоторые запросы могут быть решены через настройку. Другие могут потребовать компромисса. В конце концов, как мы будем двигаться вперёд, должно соответствовать нашему основному видению. Как я говорил раньше: Splync ориентирован на видение, сфокусирован на пользователях и основан на сообществе. Надеюсь, мы сможем продолжать расти вместе — чтобы сделать Splync самым простым приложением для составления бюджета, которое делает жизнь немного счастливее.