Требуется помощь от знатоков Linux

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18547
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Требуется помощь от знатоков Linux

Сообщение ARV »

вопрос у меня очень простой, но правильно сформулировать его я не могу, чтобы гуру линуха отвечали мне на профильных форумах.

неправильно вопрос формулируется так: ОС поддерживает разные локали (языки), причем их количество может быть различным, как и сами поддерживаемые локали. в API винды есть функция, которой передаешь номер поддерживаемой локали (0 - локаль по умолчанию, а потом просто номера локалей, т.е. для русской локали 0 будет 'RU' и где-то, допустим, 27 тоже будет 'RU'). кроме идентификатора названия локали ('RU', 'EN', 'GB' и т.п.) эта функция может возвращать и "кодировку" или "кодовую страницу" указанной локали, например, для 'RU' возвращает '1251'.

то есть в винде я тупо в цикле передаю этой функции числа от 1 до 400 (с запасом), и полчаю соответствующие строчки наименований локалей или кодовых страниц, если локали кончились, функция возвращает NULL - значит, цикл пора прервать. так я составляю список всех кратких названий локалей с соответствующими кодовыми страницами, котоые поддерживает OS MSWindows. Может, это и не совсем оптимально, но работает.

так вот, очень интересуюсь: каким образом получить такую же информацию в Linux? текущую локаль можно узнать из переменной окружения LANG, но интересует не текущая, а любая поддерживаемая ОС, а так же соответствующая кодировка символов для любой поддерживаемой локали.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Реклама
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Требуется помощь от знатоков Linux

Сообщение Eddy_Em »

cat /etc/locale.gen

Но это редко бывает, чтобы пользователь выбрал недефолтную локаль. Обычно народ как-то хрюникодом довольствуется.
Вот у меня по умолчанию КОИ8-Р…

P.S. С такими названиями темы помощи вряд ли можно дождаться…
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18547
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Требуется помощь от знатоков Linux

Сообщение ARV »

не выходит каменный цветок... нашел в /etc/ файл locale.alias... Linux Mint на виртуалке.
это что ж выходит: системной функции нет, а файлы в разных версиях OS могут называться по-разному?! и как тогда писать программы под это все?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Требуется помощь от знатоков Linux

Сообщение Мурик »

В линуксе много чего делается через файлы или их эмуляции.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18547
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Требуется помощь от знатоков Linux

Сообщение ARV »

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

Мой уютный бложик... заходите!
Реклама
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Требуется помощь от знатоков Linux

Сообщение Мурик »

ARV писал(а):это хня какая-то...
Нет, это линукс!
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18547
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Требуется помощь от знатоков Linux

Сообщение ARV »

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

Мой уютный бложик... заходите!
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Требуется помощь от знатоков Linux

Сообщение Eddy_Em »

А вот нечего вместо линукса говно какое-то ставить! Если вместо инита systemd, можно смело закапывать!
Сравнивать Линукс с бубунтой - как мастдайку с досом!!! Совершенно разные же вещи!
P.s. нет никакого смысла узнавать, какие локали в системе поддерживаются. Нужно лишь знать локаль пользователя. И если правильно пользоваться gettextом, никаких проблем не будет!!!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18547
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Требуется помощь от знатоков Linux

Сообщение ARV »

Eddy_Em писал(а):нет никакого смысла узнавать, какие локали в системе поддерживаются
знаете, когда кто-то решает за другого, есть смысл что-то делать или нет, мы и получаем ситуацию, когда даже апологеты одного семейства OS считают одну её разновидность must die, а другую must have. возможности должны быть предоставлены, а уж пользоваться ими или нет, каждый решит сам.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Требуется помощь от знатоков Linux

Сообщение Eddy_Em »

ARV, можно четко сформулировать задачу?
Я стопудово уверен, что после мастдайки у вас сформировалось несколько искаженное восприятие…
Дело в том, что если у пользователя установлена локаль А, то нет смысла выдавать ему текст в локали Б — он увидит "крякозябры". Вот файлы сохранять можно в любой локали, для этого есть библиотека enca.
Если имеете дело с хрюникодом, не забывайте, что в utf8 полным-полно запрещенных последовательностей и всяких косяков. Поэтому крайне рекомендую этим дерьмом не пользоваться, а если нужен хрюникод, то ставить utf32, где все однозначно.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18547
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Требуется помощь от знатоков Linux

Сообщение ARV »

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

да, моя программа использует в базе utf8, и вряд ли возможно с этим что-то сделать, т.к. вся система разработки заточена именно на этот формат
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Требуется помощь от знатоков Linux

Сообщение Eddy_Em »

Ну так если приложение графическое, то при чем здесь локаль пользователя? Локаль влияет лишь на терминал и имена файлов, а в иксовых приложениях все в юникоде.
Для смены языка нужно всего лишь поменять переменные LC_MESSAGES и LANG, чтобы gettext автоматом выбрал другой перевод из своей базы (если он, конечно, есть).

В общем, текущая локаль пользователя в данном случае не имеет никакого значения (если вы хотите насильно в обход нее сменить язык).

Вот только обычно пользователь не просто так себе локаль назначает. Если у меня локаль ru_RU.koi8r, это означает, что я ожидаю увидеть либо текст по-английски, либо по-русски. Но не на турецком или китайском!

Короче: я не вижу в ваших действиях вообще никакого смысла!!!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18547
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Требуется помощь от знатоков Linux

Сообщение ARV »

если вы не видите смысла, это не означает, что его нет.
знать локаль пользователя мне не нужно (хотя нужно, но не в этом случае). мне нужно предоставить пользователю список "человекочитаемых" названий языков, которые поддерживает моя программа. причем названия этих языков должны быть такими, как их понимает OS, т.е. взяты они должны быть из OS, потому как если OS не поддерживает кодировку какого-то языка, то и моей программе нет смысла предлагать юзеру этот язык включить.
поскольку вывод текста в элементы стандартного интерфейса в винде делаются только функциями самой винды, винда знает, какие языки она может поддержать, и я могу у нее эти языки тоже запростить. мне надо сделать аналог этого запроса в линухе.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Требуется помощь от знатоков Linux

Сообщение Eddy_Em »

ARV, линукс - не мастдайка!
Нет абсолютно никакого смысла выдумывать какую-то чушь!
Если у вас есть в gettext перевод на заданный язык, он автоматом по настройке локали пользователя всплывет. Если нет - будет дефолт (английский).
Кодировка здесь абсолютно лесом, т.к. внутри иксов все в utf8!

В общем, не надо пагубные мастдайские привычки в линукс тащить! И не надо юзеру "предлагать" какие-то языки в обход его локали. Если он захочет другой язык, просто соответствующие переменные locale изменит.

Понятно теперь, почему на профильных форумах вам не могли ответить: потому что вопрос поставлен в корне неверно. Почитайте на SO, например, как правильно вопрос задавать.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18547
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Требуется помощь от знатоков Linux

Сообщение ARV »

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

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

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

Мой уютный бложик... заходите!
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Требуется помощь от знатоков Linux

Сообщение Eddy_Em »

ARV, это в мастдайке невозможно. А в линуксе просто меняете нужные переменные локали, запускаете обновление интерфейса и у вас gettext автоматом меняет перевод. Кстати, в Qt есть кроссплатформенные утилиты для этих вещей. Сам я точно сказать не могу, т.к. презираю GUI и пишу исключительно CLI-утилиты (ну, а если вдруг мне нужен GUI, делаю веб-морду).
Вот в консоли так делать нельзя: там локаль та, которую выбрал пользователь, и смена локали приложения ни к чему хорошему не приведет.

P.S. Кажется, в qt-designer есть возможность просмотра интерфейса с выбранными LANG, чтобы посмотреть, как будут переводы выглядеть на разных языках и не будет ли интерфейс от этого коробить. Но, опять же, интересуйтесь у кутешников. Я не то, что культяпки не люблю, у меня к самому С++ крайне негативное отношение.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18547
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Требуется помощь от знатоков Linux

Сообщение ARV »

Eddy_Em писал(а):это в мастдайке невозможно
как же невозможно, если я это УЖЕ сделал? а вот повторить подоное в линуксе не знаю как.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Требуется помощь от знатоков Linux

Сообщение Eddy_Em »

Я уже сказал, как повторить: просто поменять нужные переменные и обновить интерфейс!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18547
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Требуется помощь от знатоков Linux

Сообщение ARV »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3762518#p3762518"]Я уже сказал, как повторить: просто поменять нужные переменные и обновить интерфейс![/uquote]
вы отвечаете на свой вопрос, а вы ответьте на мой: как узнать список тех локалей, которые поддерживаются (установлены?) в OS? интерфейс рисовать будет же OS, и если я установлю кыргызскую локаль, а её всистеме нет, то будет английская? мне надо не дать установить кыргызскую, если её в системе нет.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Требуется помощь от знатоков Linux

Сообщение Eddy_Em »

ARV, это не нужно. Поддерживается все, что поддерживается в utf8!
Единственное ограничение - какие переводы у вас есть под gettext.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Ответить

Вернуться в «Интеграция с ПК»