Как Вы справляетесь с Процессом Перевода текстовых строк?

Я нашел, что он отлично работает, используя display: block; на изображении и вертикально-выровнять: верх; на текст.

.imagebox {
    width:200px;
    float:left;
    height:88px;
    position:relative;
    background-color: #999;
}
.container {
    width:600px;
    height:176px;
    background-color: #666;
    position:relative;
    overflow:hidden;
}
.text {
    color: #000;
    font-size: 11px;
    font-family: robotomeduim, sans-serif;
    vertical-align:top;
    
}

.imagebox img{ display:block;}
Image title
Image title
Image title
Image title
Image title
Image title

или вы можете отредактировать код a JS FIDDLE

21
задан Mihai Limbășan 11 October 2008 в 16:26
поделиться

11 ответов

Я не уверен, на какой платформе вы интернационализация. Я уже писал ответ о том, как лучше всего проверить приложение. См. Что мне нужно знать для глобализации приложения asp.net?

Тем не менее, управлять самими переводами сложно. Проблема в том, что вы будете использовать один и тот же фрагмент текста на нескольких страницах. Однако ваша структура может не поддерживать только этот фрагмент текста в одном файле (например, файлы ресурсов в asp.net рекомендуют вам иметь один файл ресурсов для каждого языка).

Способ, который мы нашли для работы с Дело было в том, чтобы иметь центральную базу данных переводов. Мы создали небольшой. net приложение для импорта переводов из файлов ресурсов в эту базу данных и для экспорта переводов из этой базы данных в файлы ресурсов. Таким образом, существует дополнительный шаг в процессе сборки для создания файлов ресурсов.

Другая проблема, с которой вы столкнетесь, - это передача переводов вашему поставщику переводов и обратно. Для этого есть несколько способов - посмотрите, готов ли ваш поставщик переводов принимать XML-файлы и возвращать правильно отформатированные XML-файлы. Это действительно один из лучших способов, поскольку он позволяет автоматизировать импорт и экспорт файлов перевода. Другой альтернативой, если это позволяет ваш поставщик, является создание веб-сайта, позволяющего им редактировать переводы.

В конце концов, ваш ответ на переводы будет таким же для любого другого процесса, который требует повторения и ручной работы. Автоматизируйте, автоматизируйте, автоматизируйте. Автоматизируйте все, что вы можете. Копирование и вставка не ваш друг в этом сценарии.

13
ответ дан 29 November 2019 в 21:21
поделиться

При наличии используйте базу данных для этого. Каждая строка получает идентификатор, и существует или таблица для каждого языка или одна таблица для всех с языком в столбце (в зависимости от того, как к сайту получают доступ, производительность диктует, который лучше). Это позволяет обновления от переводчиков, не пытаясь управлять детали управления версиями и файлы кода. Далее, это почти тривиально для работы отчетов, что не переводится, и отслеживайте то, что было автопереводом (механизм) по сравнению с реальным человеческим переводом.

, Если никакая база данных, то я засовываю каждый язык в отдельный файл так проблемы управления версиями, не уменьшается. Но структура является в основном тем же - каждая строка имеет идентификатор.

-Adam

2
ответ дан 29 November 2019 в 21:21
поделиться

Мало того, что мы использовали базу данных вместо превознесенных файлов ресурсов (я никогда не понимал, почему люди используют что-то как этот, который является болью для управления, когда у нас есть такие хорошие инструменты для контакта с базами данных), но мы также избежали потребности отметить вещи в приложении (упущение отметить средства управления с числами в Формах VB6 всегда было проблемой) при помощи отражения для идентификации средств управления для перевода. Тогда мы используем XML-файл, который переводит средства управления в идентификаторы фразы от базы данных словаря.

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

2
ответ дан 29 November 2019 в 21:21
поделиться

Локализованные проекты я продолжил работать, имели 'строковые даты' замораживания. После этого времени единственный способ, которым струнам позволили поменяться, был с разрешением от очень старшего члена команды управления проектами.

Это не точно идеальное решение, но это действительно позволяло нам приостановить дефекты относительно строк до следующего выпуска с допустимой причиной. Как только строковое замораживание произошло, у Вас также есть допустимая причина отрицать добавлять совершенно новые опции к проекту на 'шпоре момента' решения. И прибытие разрешения от высокого означало, что менеджеры среднего звена не будут иметь никакого права изменять спецификации на Вашем:)

2
ответ дан 29 November 2019 в 21:21
поделиться

Решение, к которому мы подошли до сих пор, имеет небольшое приложение в Excel, который читает все файлы свойств и затем показывает матрицу со всеми переводами (языки как заголовки, ключи как строки). Довольно очевидно, что отсутствует тогда. Это, отправляют к переводчикам. Когда это возвращается, тогда лист может быть обработан для генерации тех же пакетов свойства назад снова. До сих пор это упростило боль несколько, но интересно, что еще вокруг.

1
ответ дан 29 November 2019 в 21:21
поделиться

Существует много главных проблем, которые нужно рассмотреть при интернационализации приложения.

  • Не все строки создаются одинаково. В зависимости от языка длина предложения может значительно измениться. На некоторых языках это может быть вдвое менее длинно, и в других это может быть тройным длина. Удостоверьтесь, что разработали свои виджеты GUI с достаточным количеством пространства для обработки строк, которые больше, чем английские строки.
  • Переводчики обычно являются не программистами. Не ожидайте, что переводчики смогут считать и поддержать корректные форматы файлов для файлов ресурсов. Необходимо установить механизм, где можно преобразовать переведенное распространение в прямом и обратном направлениях данных к файлам ресурсов от чего-то как электронная таблица. Одна возможность состоит в том, чтобы использовать фильтры XSL с, Открывают Office, так, чтобы можно было сохранить к Файлам ресурсов непосредственно в приложении для обработки электронных таблиц. Кроме того, переводчики или компании сервиса перевода могут уже иметь свои собственные базы данных, таким образом, хорошо спросить о том, что они используют и пишут некоторые инструменты для автоматизации.
  • Необходимо будет добавить данные к строкам - не притворяются, что Вы никогда не будете иметь к, или Вы будете всегда мочь поместить строку в конец. Удостоверьтесь, что у Вас есть строковая установка средства форматирования для замены заполнителей в строках. Кроме того, удостоверьтесь, что зарегистрировали то, что является типичными значениями, которые будут заменены для переводчиков. Помните, порядок заполнителей может измениться на различных языках.
  • Назовите свои i8n строковые переменные чем-то, что отражает их значение. Сделайте Вас, действительно хотят искать числа в файле ресурсов для обнаружения то, что является содержанием данной строки. Разработчики зависят от способности считать строковый вывод в коде для эффективности намного больше, чем они часто понимают.
  • Не бойтесь генерации кода. В моем текущем проекте я записал маленькую программу Java, которую называет муравей, который анализирует все ключи языка по умолчанию (ведущее устройство) файл ресурсов и затем отображает ключ к константе, определенной в моем классе локализации. Посмотрите ниже. Строки, промежуточные//----комментарии, автоматически генерируются. Я выполняю генератор каждый раз, когда я добавляю строку.


public final class l7d {
...normal junk

/** * Reference to the localized strings resource bundle. */ public static final ResourceBundle l7dBundle = ResourceBundle.getBundle(BUNDLE_PATH);

//---- start l7d fields ----\ public static final String ERROR_AuthenticationException; public static final String ERROR_cannot_find_algorithm; public static final String ERROR_invalid_context; ...many more //---- end l7d fields ----\ static {
//---- start setting l7d fields ----\ ERROR_AuthenticationException = l7dBundle.getString("ERROR_AuthenticationException"); ERROR_cannot_find_algorithm = l7dBundle.getString("ERROR_cannot_find_algorithm"); ERROR_invalid_context = l7dBundle.getString("ERROR_invalid_context"); ...many more //---- end setting l7d fields ----\ }

Подход выше предлагает несколько преимуществ.

  1. Так как Ваш строковый ключ теперь определяется как поле, Ваш IDE должен поддерживать завершение кода для него. Это сохранит Вас много типа. Это get's, действительно разбивающий поиск каждого ключевого имени и фиксацию опечаток каждый раз, Вы хотите распечатать строку.
  2. Кто-то исправьте меня, если я неправ. Путем загрузки всех строк в память при статическом инстанцировании (как в примере) закончится в более быстрое время загрузки за счет дополнительного использования памяти. Я нашел, что дополнительный используемый объем памяти незначителен и стоит компромисса.
4
ответ дан 29 November 2019 в 21:21
поделиться

Эта книга Google - управление файлом ресурсов дает некоторые хорошие советы

Можно использовать программное обеспечение Resource File Management для отслеживания строки, которые изменили и управляют рабочим процессом для переведения их - иначе Вы заканчиваете в путанице замораживаний и властного управления версиями

Некоторые инструменты, которые делают этот вид вещи - никакое соединение я, на самом деле не использовали их, просто исследовав

http://www.sisulizer.com/

http://www.translationzone.com/en/products/

1
ответ дан 29 November 2019 в 21:21
поделиться

В Java интернационализация выполняется путем перемещения строк для выделения ресурсов на пакеты... процесс перевода является все еще долгим и трудным, но по крайней мере это разделяется от процесса создания программного обеспечения, выпуская пакеты обновления и т.д. Одна вещь, которая помогает, состоит в том, чтобы иметь систему CI, которая повторно упаковывает все, что любые изменения времени внесены. Нам можно было протестировать новую версию и в течение минут, является ли это изменением кода, новым пакетом языка или обоими.

0
ответ дан 29 November 2019 в 21:21
поделиться

Для начала, я использовал бы строки по умолчанию в случае, если перевод отсутствует. Например, английское или испанское значение. Во-вторых, Вы могли бы хотеть рассмотреть веб-приложение или что-то подобное, чтобы Ваши переводчики использовали. Это требует некоторых ресурсов заранее, но по крайней мере Вы не должны будете отправлять файлы вокруг, и это будет очевидно для переводчиков, какие строки являются новыми, и т.д.

0
ответ дан 29 November 2019 в 21:21
поделиться

Я вставил цель make-файла, которая находит все .properties файлы и помещает их в zip-файл для отсылки к переводчикам. Я предложил отправлять их просто diffs, но по некоторым причинам они хотят целый пакет файлов каждый раз. Я думаю, что у них есть своя собственная система для отслеживания просто различий, потому что они заряжают нас на основе того, сколько струн поменяло с одного времени к следующему. Когда я возвращаю их доставку, я вручную различный все их файлы с предыдущей доставкой, чтобы видеть, изменилось ли что-либо неожиданное - одно время весь PT_BR (португалец Brazillian) струны, поменявшие, и оказывается, что они использовали PT_PT (португальские португальцы) переводчик для того пакета несмотря на порядок на PT_BR.

1
ответ дан 29 November 2019 в 21:21
поделиться

Pootle - это веб-приложение, которое позволяет управлять процессом перевода через Интернет .

5
ответ дан 29 November 2019 в 21:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: