Комментарии 30
>программистам нужно будет делать каждую правку на четырёх языках
А почему бы не выносить локализацию куда-то, чтобы потом… язычные пользователи могли помочь в переводе?
А почему бы не выносить локализацию куда-то, чтобы потом… язычные пользователи могли помочь в переводе?
Эта работа ведется, но также требует стандартизации подхода, а поскольку разработчики никому ничем не обязаны (т.к. не получают абсолютно никакого профита), но они с чистой совестью могут забить на это дело. Разумеется не лучший подход, но он позволил просуществовать проекту почти 10 лет, в то время как многие другие некоммерческие проекты разваливались.
зачем работа? Что стандартизировать? просто выносить все фразы что может говаривать программа в отдельный фаил который будет подключаться при компилировании.
Вы все же не понимаете ситуации.
вот именно по этому проекту 10 лет и там до сих пор незя нормально посёрфить интернет…
А вы вероятно большой специалист по проектам с нулевыми финансовыми затратами разработки? Много успешных проектов за 10 лет вывели? Я хотел бы видеть конкретные примеры ваших успешных проектов с нулевыми финансовыми затратами разработки.
Я лично вывел ноль проектов. Собственно у меня нету хороших знаний английского языка, тем более технического английского по этому я не могу нормально разрабатывать свой проект. Так всё же что конкретно мешает тем програмистам которые хотят чтобы их программа была мультиязычной содержать все сообщения программы в отдельном фаиле?
Вы читать умеете? Я ведь написал уже! Когда для человека разработка программ хобби, то «строить» его как минимум сложно — он просто забьет и пошлет вас подальше. Разработчик делает в первую очередь для себя любимого и навязывание ему дополнительных условий вызывает лишь раздражение. Впрочем иногда разработчики таки договариваются по некоторым вопросам.
Я бы формализовал: не «дополнительных условий», а «скучных дополнительных условий».
Ну ведь много работы в мире OpenSource ведется именно на волонтерской основе.
Говорю по своему опыту — я сейчас участвую в разработке Ubuntu Phone Core Applications. Это мое первое участие, сразу признаюсь, но я вполне себе доволен тем, что выполняю пожелания менторов с целью сделать действительно хороший продукт, пригодный для интернационализации в том числе. И ничего в этом сложного нет, может быть просто среди разработчиков Kolibri OS другие отношения внутренние, я не берусь сразу обвинять, но оставлять в своей программе возможности для просто интернационализации — это нормально.
UPD: У меня период написания сообщений — раз в час, поэтому сжимаю еще одну мысль сразу в одно сообщение. Ниже я прочитал пояснение про сложности перевода, длину текста и динамический размер контролов. Как же так вышло, что изначально никто из разработчиков не подумал о переводах? Но как же так, ответьте на вопрос наконец — в вашей команде вообще не предусмотрено никаких средств интернационализации? И может быть даже… боюсь произносить вслух… для перевода нужно править исходный код?
Говорю по своему опыту — я сейчас участвую в разработке Ubuntu Phone Core Applications. Это мое первое участие, сразу признаюсь, но я вполне себе доволен тем, что выполняю пожелания менторов с целью сделать действительно хороший продукт, пригодный для интернационализации в том числе. И ничего в этом сложного нет, может быть просто среди разработчиков Kolibri OS другие отношения внутренние, я не берусь сразу обвинять, но оставлять в своей программе возможности для просто интернационализации — это нормально.
UPD: У меня период написания сообщений — раз в час, поэтому сжимаю еще одну мысль сразу в одно сообщение. Ниже я прочитал пояснение про сложности перевода, длину текста и динамический размер контролов. Как же так вышло, что изначально никто из разработчиков не подумал о переводах? Но как же так, ответьте на вопрос наконец — в вашей команде вообще не предусмотрено никаких средств интернационализации? И может быть даже… боюсь произносить вслух… для перевода нужно править исходный код?
Большая часть того, с чем нашей команде приходится иметь дело в области прикладного ПО — это Legacy-код. В этом замечательном Legacy-коде, который был написан задолго до того, как большинство из нас вообще услышало о проекте, никто не думал об интернационализации. Никто не думал о том, что контролы вообще кому-то могут понадобиться. Никто не думал о том, что кто-то когда-то вообще будет это использовать. Ville (автор Menuet) поставил перед собой цель написать ОС с GUI на ассемблере, и эту цель он выполнил.
Legacy жалко выбросить, потому что теряешь функционал. Но и поддерживать всё это — неразумно. Наиболее вероятный вараинт, как мне кажется, такой: однажды большая часть существующего прикладного софта для Колибри будет объявлена устаревшей, и перестанет включаться в дистрибутив, а новые программы будутидеальными, ведь наш мир станет райским садом с разноцветными поняшами и добрыми драконами писаться с учетом всяческих полезных современных технологий.
Legacy жалко выбросить, потому что теряешь функционал. Но и поддерживать всё это — неразумно. Наиболее вероятный вараинт, как мне кажется, такой: однажды большая часть существующего прикладного софта для Колибри будет объявлена устаревшей, и перестанет включаться в дистрибутив, а новые программы будут
У нас действительно, во многих местах, для перевода нужно править исходный код. Ведь для каждого языка, склонение существительных, спряжение глаголов и длина слов разные:
В других местах используется директива препроцессора, которая вставляет нужный файл с переводами, в зависимости от языка:
if lang eq ru
; подождите 5 секунд, 4/3/2 секунды, 1 секунду
cmp al, 5
mov cl, ' '
jae @f
cmp al, 1
mov cl, 0xE3 ; 'у' in cp866
jz @f
mov cl, 0xEB ; 'ы' in cp866
@@:
mov [time_str+9], cl
else if lang eq et
cmp al, 1
ja @f
mov byte [time_str+9], ' '
mov byte [time_str+10], ' '
@@:
else if lang eq sp
; esperar 5/4/3/2 segundos, 1 segundo
cmp al, 1
mov cl, 's'
ja @f
mov cl, ' '
@@:
mov [time_str+10], cl
else
; wait 5/4/3/2 seconds, 1 second
cmp al, 1
mov cl, 's'
ja @f
mov cl, ' '
В других местах используется директива препроцессора, которая вставляет нужный файл с переводами, в зависимости от языка:
if lang eq ge
include "boot/bootge.inc" ; german system boot messages
else if lang eq sp
include "boot/bootsp.inc" ; spanish system boot messages
else if lang eq ru
include "boot/bootru.inc" ; russian system boot messages
include "boot/ru.inc" ; Russian font
else if lang eq et
include "boot/bootet.inc" ; estonian system boot messages
include "boot/et.inc" ; Estonian font
else
include "boot/booten.inc" ; english system boot messages
end if
Вот это действительно крутой комментарий. Почему-то сразу об этой стороне вопроса не вспомнил.
А что насчет использования юникода?
Поддержки Unicode у нас пока нет, но если кто-то согласен нам с этим помочь, то мы будем очень признательны. Мы даже предлагали это как один из проектов на наш Summer of Code, но никто не взялся его делать.
С Unicode у нас пока что бардак.
Unicode может использоваться приложениями при условии, что текст будет выводиться через truetype, или будет конвертироваться в cp866 перед выводом на экран системными функциями. Ввод тоже придется обрабатывать приложению. Зато некоторая часть Unicode поддерживается в именах файлов.
Вообще, unicode — достаточно обширный стандарт, чтобы где-то поддерживать его целиком и полностью. То не все кодовые плоскости поддерживаются, то шрифтов подходящих нет, то модифицирующие символы через пень-колоду сделаны. Чаще всего же проблемы с BiDi. Что характерно, тем людям, которые будут добавлять поддержку Unicode в Колибри, придется решать проблему BiDi одной из первых.
Unicode может использоваться приложениями при условии, что текст будет выводиться через truetype, или будет конвертироваться в cp866 перед выводом на экран системными функциями. Ввод тоже придется обрабатывать приложению. Зато некоторая часть Unicode поддерживается в именах файлов.
Вообще, unicode — достаточно обширный стандарт, чтобы где-то поддерживать его целиком и полностью. То не все кодовые плоскости поддерживаются, то шрифтов подходящих нет, то модифицирующие символы через пень-колоду сделаны. Чаще всего же проблемы с BiDi. Что характерно, тем людям, которые будут добавлять поддержку Unicode в Колибри, придется решать проблему BiDi одной из первых.
По-видимому, вы никогда не занимались локализацией чего бы то ни было. Игры с пиратским переводом помните?

Никогда не задумывались, почему они такие? Понятно, что сам текст переведен через PROMT. Но откуда тогда взялись «Необход.» и другие перлы?

Никогда не задумывались, почему они такие? Понятно, что сам текст переведен через PROMT. Но откуда тогда взялись «Необход.» и другие перлы?
вообще то там как раз проблемам в том что всё было в исполняемом фаиле уже вшито. А у разработчиков есть уникальная возможность вшивать не отходя от кассы. Но есть проблема «программистам нужно будет делать каждую правку на четырёх языках.» и собственно я спрашивал почему необходимо делать какие то глупые стандартизации для создания простых «скучных дополнительных условий», которые я считаю необязательно навязывать. Я писал про тех программистов которые хотят мультиязычность в своих программах… а те кто хотят те могут и без всякой стандартизации. Я всего лишь спрашивал что им мешает…
«Just for fun» им мешает!
Ну, тогда я предлагаю открыть любой exe-файл с помощью ResHacker, и заменить часть надписей в каком-нибудь диалоговом окне переводами. Скажем, на итальянский или испанский. Надеюсь, это поможет вам понять, в чем сложность локализаций.
у разработчиков есть исходный код… они ResHacker не пользуются
Я пытаюсь донести простую мысль: надписи на разных языках имеют разную длину, соответственно, для каждого языка элементы интерфейса должны иметь разные размеры. Простым вынесением строк в отдельный файл проблему можно решить только на уровне «Прим.» вместо «Apply». Даже динамический размер кнопок и окон не поможет решить эту проблему полностью (хотя и допустим в том случае, если требуется поддержка десятков языков в кратчайшие сроки).
Вы первый человек который действительно мне объяснил. Спасибо. Простите что не сразу вас понял. Я думал вы о другой проблеме. Есть такая игра dwarf fortress и она на английском языке. и нашлись смельчаки которые её переводят так вот там была проблема длинных слов в том что они переписывали их прямо в машинном коде и если слово случайно выезжало на занятые биты то игра могла просто испортиться поэтому там слова сокращались.
Зачем 10 лет писать то, что нигде не может быть использовано by design? Вы создали замечательную систему на поиграться. А дальше что? Смысл таких статей на Хабре если никто и никогда систему под реальные задачи использовать не будет. Чего вы хотите добиться? Привлечения внимания к проекту? Кому он нужен? Какие задачи он позволяет решить? Да никаких. Только весело провести время в кругу asm программистов.
Посмотрите на helenos.org или HaikuOS. Системы созданы любителями, но у них есть реальные шансы занять свою нишу, а у вас какая ниша? 1% от читателей wasm.ru?
10 лет назад я даже сам игрался с вашей системой и писал что-то под нее. Сейчас смотрю и понимаю, что изменилось у вас мало. Серьезного софта под систему никогда не будет. Подходы у вас не те в основу заложены.
Хотите что-то концептуальное сделать, что не стыдно было показать, возьмите ядро той же Helen OS. Напишите для нее удобную графическую оболочку, создайте нормальную IDE и увидите, как программисты сами к вам потянутся. А пока этого нет и вы прибили себя к асссемблеру у вас не будет никакого развития десятилетиями.
Посмотрите на helenos.org или HaikuOS. Системы созданы любителями, но у них есть реальные шансы занять свою нишу, а у вас какая ниша? 1% от читателей wasm.ru?
10 лет назад я даже сам игрался с вашей системой и писал что-то под нее. Сейчас смотрю и понимаю, что изменилось у вас мало. Серьезного софта под систему никогда не будет. Подходы у вас не те в основу заложены.
Хотите что-то концептуальное сделать, что не стыдно было показать, возьмите ядро той же Helen OS. Напишите для нее удобную графическую оболочку, создайте нормальную IDE и увидите, как программисты сами к вам потянутся. А пока этого нет и вы прибили себя к асссемблеру у вас не будет никакого развития десятилетиями.
Можно я не буду вам отвечать? Мне надоело спорить со скептиками, которые большие специалисты по всем вопросам и знают что другие должны делать, когда и зачем. Более того скептики даже не запускают дистрибутив — они заранее знают что там.
эх… если б ещё ихний wasm.ru работал бы… да и когда работал как-то толку там было мало. Я считаю что дело не в IDE, программировать можно хоть в блокноте, была бы документация мультиязычная, понятная, и незнаю чтоб в ней был нормальный поиск и чтоб она была написана сложными словами но при этом чтоб про каждое слово можно было бы раскрыть и чтоб прямо там же был рабочийкороткий пример… а также нужны примеры где будут сочетаться возможные комбинации сложных и простых примеров.
Я вот например изучал язык java по учебнику. Там есть массивы,(с примерами) и объекты(тоже). но нет примера массива объектов.
Я вот например изучал язык java по учебнику. Там есть массивы,(с примерами) и объекты(тоже). но нет примера массива объектов.
эх… если б ещё ихний wasm.ru работал бы…wasm.ru не имеет к нам никакого отношения. Толк в нём есть — если задавать вопросы по существу, а не "Как сделать так, чтобы отпустило, пожалуйста :((", то, скорее всего, Вы получите ответ по существу.
Знаете, в ваших словах есть доля истины. Немалая такая доля.
Но «изменилось у вас мало» — это вы что-то напутали, я боюсь.
Но «изменилось у вас мало» — это вы что-то напутали, я боюсь.
1) «Just for fun»
2) Как я понимаю, за столько лет разработчики слишком сроднились с проектом. Для них это как вырастить ребёнка уже. Даже учитывая, что это не коммерческий проект, им всё равно тяжело бросить его, так как немало сил вложено.
2) Как я понимаю, за столько лет разработчики слишком сроднились с проектом. Для них это как вырастить ребёнка уже. Даже учитывая, что это не коммерческий проект, им всё равно тяжело бросить его, так как немало сил вложено.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
На каких языках говорят наши пользователи