gitlocalize / feedback

:mega: We love feedback :sparkles:
20 stars 8 forks source link

Order of keys in translated YAML file is corrupted #25

Closed plinyar closed 6 years ago

plinyar commented 7 years ago

After I translated english yml file into, say, french, and compared the two result files, the order if keys in french version was competely different, and I cannot comprehend (at the level of these two files) what and how is translated. The keys should be in the same positions in the result files, so that we can compare them by, say Beyond Compare We consider this requirement is essential.

chikathreesix commented 7 years ago

Hi @plinyar, thank you for reporting an issue. We acknowledged this and will work on this next week. I will let you know once it's fixed.

sotayamashita commented 7 years ago

@plinyar we are still working. We appreciate your patience

plinyar commented 7 years ago

Thanks for your updates!!!

Kind wishes, Roman Koreshkov

On Tue, Nov 28, 2017 at 10:32 AM, Sam Yamashtia notifications@github.com wrote:

@plinyar https://github.com/plinyar we are still working. We appreciate your patience

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/gitlocalize/feedback/issues/25#issuecomment-347437705, or mute the thread https://github.com/notifications/unsubscribe-auth/AJRCpAvw6QH45NT-nUS2PYf1yErWJDIbks5s67crgaJpZM4Qpote .

ivan-nginx commented 6 years ago

I got same issue here and will try to detail explain it:

  1. My ru.yml was 99% translated and only 1 string was no translated. So, i translate it and make pull request.
  2. After compare changes i see this difference:

Before translate with 1 untranslated string:

title:
  archive: Архив
  category: Категория
  tag: Тэг
  schedule: Календарь

author: Автор

menu:
  home: Главная
  archives: Архив
  categories: Категории
  tags: Тэги
  about: О сайте
  search: Поиск
  schedule: Календарь
  sitemap: Карта сайта

sidebar:
  overview: Обзор
  toc: Содержание

post:
  created: Дата создания записи
  modified: Дата обновления записи
  sticky: Ссылка
  posted: Размещено
  in: в категории
  more: далее
  read_more: Читать полностью
  untitled: Без имени
  toc_empty: Эта запись без оглавления
  visitors: Просмотров
  wordcount: Кол-во слов в статье
  min2read: Время чтения в минутах
  totalcount: Общее кол-во слов в записях
  totaltime: Время чтения всего сайта
  copyright:
    author: Автор записи
    link: Ссылка на запись
    license_title: Информация об авторских правах
    license_content: 'Все записи на этом сайте защищены лицензией
      <a href="%s" rel="external nofollow" target="_blank">%s</a> если не указано дополнительно.'

page:
  totally: Всего
  tags: тэги

footer:
  powered: "Powered by %s"
  theme: Theme

counter:
  tag_cloud:
    zero: Нет тэгов.
    one: 1 тэг.
    two: "%d тэга всего."
    three: "%d тэга всего."
    four: "%d тэга всего."
    other: "%d тэгов всего."

  categories:
    zero: Нет категорий.
    one: 1 категория.
    two: "%d категории всего."
    three: "%d категории всего."
    four: "%d категории всего."
    other: "%d категорий всего."

  archive_posts:
    zero: Нет записей.
    one: 1 запись.
    two: "%d записи всего."
    three: "%d записи всего."
    four: "%d записи всего."
    other: "%d записей всего."

state:
  posts: Архив
  pages: Страницы
  tags: Тэги
  categories: Категории

search:
  placeholder: Поиск...

cheers:
  um: Эм..
  ok: OK
  nice: Неплохо
  good: Хорошо
  great: Замечательно
  excellent: Великолепно

keep_on: Продолжаю писать.

symbol:
  comma: ', '
  period: '. '
  colon: ':'

reward:
  donate: Донат
  wechatpay: WeChat Pay
  alipay: Alipay
  bitcoin: Bitcoin

After translate via GL:

---
author: Автор
cheers:
  excellent: Великолепно
  good: Хорошо
  great: Замечательно
  nice: Неплохо
  ok: OK
  um: Эм..
counter:
  archive_posts:
    four: "%d записи всего."
    one: 1 запись.
    other: "%d записей всего."
    three: "%d записи всего."
    two: "%d записи всего."
    zero: Нет записей.
  categories:
    four: "%d категории всего."
    one: 1 категория.
    other: "%d категорий всего."
    three: "%d категории всего."
    two: "%d категории всего."
    zero: Нет категорий.
  tag_cloud:
    four: "%d тэга всего."
    one: 1 тэг.
    other: "%d тэгов всего."
    three: "%d тэга всего."
    two: "%d тэга всего."
    zero: Нет тэгов.
footer:
  powered: Powered by %s
  theme: Theme
keep_on: Продолжаю писать.
menu:
  about: О сайте
  archives: Архив
  categories: Категории
  home: Главная
  schedule: Календарь
  search: Поиск
  sitemap: Карта сайта
  tags: Тэги
  commonweal: Страница 404
page:
  tags: тэги
  totally: Всего
post:
  copyright:
    author: Автор записи
    license_content: Все записи на этом сайте защищены лицензией <a href="%s" rel="external
      nofollow" target="_blank">%s</a> если не указано дополнительно.
    license_title: Информация об авторских правах
    link: Ссылка на запись
  created: Дата создания записи
  in: в категории
  min2read: Время чтения в минутах
  modified: Дата обновления записи
  more: далее
  posted: Размещено
  read_more: Читать полностью
  sticky: Ссылка
  toc_empty: Эта запись без оглавления
  totalcount: Общее кол-во слов в записях
  totaltime: Время чтения всего сайта
  untitled: Без имени
  visitors: Просмотров
  wordcount: Кол-во слов в статье
reward:
  alipay: Alipay
  bitcoin: Bitcoin
  donate: Донат
  wechatpay: WeChat Pay
search:
  placeholder: Поиск...
sidebar:
  overview: Обзор
  toc: Содержание
state:
  categories: Категории
  pages: Страницы
  posts: Архив
  tags: Тэги
symbol:
  colon: ":"
  comma: ", "
  period: ". "
title:
  archive: Архив
  category: Категория
  schedule: Календарь
  tag: Тэг

So, as u see there are 5 bugs:

  1. At the top of file --- string was added, but in original file this string is not exists.
  2. symbol: comma: ', ' replaced by symbol: comma: ", " (single quotes by double quotes).
  3. license_content: 'Все записи на этом сайте защищены лицензией <a href="%s" rel="external nofollow" target="_blank">%s</a> если не указано дополнительно.' replaced by license_content: Все записи на этом сайте защищены лицензией <a href="%s" rel="external nofollow" target="_blank">%s</a> если не указано дополнительно. (single quotes dissapeared).
  4. All strings sorted by alphabetically and it is hard for future maintenance languages: maintainers will search needed locations where new string will be added.
  5. All spaces cutted out and this is brake all manual formation style.

I suggest at least to add some option in GL account config which will prevent this hard breaking formation from original files. Just something like checkbox: «Stay originlal formatting style» in Path Rules for each rule.

stale[bot] commented 6 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

blablubbabc commented 2 years ago

Sorry for the bump, but this issue seems to still apply (list of problems actually, as pointed out by ivan-nginx above). (Maybe the bot should just keep it open until the issue has actually been resolved, either fixed or manually denied as wontfix)

svasilenkov commented 2 years ago

@blablubbabc The issue described be the author has been successfully fixed and order of keys after translation is correct now. Other differences mentioned in the comments are allowed by YAML specification and can't be completely avoided.