Locales/bg: Difference between revisions
AutoSpider (talk | contribs) (Add "cleanup" tag) |
AutoSpider (talk | contribs) (Remove non-functioning "toc" command) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
[[Category:QtInternals]] | [[Category:QtInternals]] | ||
Написано от : Girish Ramakrishnan, ForwardBias Technologies | Написано от : Girish Ramakrishnan, ForwardBias Technologies | ||
Line 10: | Line 9: | ||
= Основи = | = Основи = | ||
Като за начало може да прочетете | Като за начало може да прочетете [http://developer.qt.nokia.com/wiki/BasicsOfLocales Основи на локализациите] . В Qt, локализациите са реализирани чрез QLocale и QSystemLocale. | ||
= QSystemLocale = | = QSystemLocale = | ||
QSystemLocale е интерфейс за запитване за информация за локализацията на потребителя. | QSystemLocale е интерфейс за запитване за информация за локализацията на потребителя. [http://doc.qt.nokia.com/qsystemlocale.html#query QSystemLocale::query()] може да се използва за да се взема информация като име на месеца, отрицателен знак за числа и т.н. | ||
QSystemLocale предоставя информация за локализацията от операционната система. На Windows, QSystemLocale::query() използва | QSystemLocale предоставя информация за локализацията от операционната система. На Windows, QSystemLocale::query() използва [http://msdn.microsoft.com/en-us/library/dd318101(v=vs.85).aspx GetLocaleInfo] , на Mac OS X - CFLocaleGetValue, а на Линукс, query() връща само информацията, получена от инспектирането на променливите на средата LC_MEASUREMENT, LC_ALL и LANG ( в този ред ). | ||
QSystemLocale::query() може да бъде предефинира от приложението с цел да предостави по-нататъшно персонализиране на потребителската локализация. | QSystemLocale::query() може да бъде предефинира от приложението с цел да предостави по-нататъшно персонализиране на потребителската локализация. | ||
Line 28: | Line 27: | ||
QLocale е "front-end" клас, който помага във форматирането на данните, базирайки се на идентификатора на локализацията. QLocale използва формата <език>_<страна>.<код> за идентификатор. QLocale, който е създаден без параметри (QLocale()) е еквивалентен на този по подразбиране. Когато няма зададен по подразбиране, се използва системният. | QLocale е "front-end" клас, който помага във форматирането на данните, базирайки се на идентификатора на локализацията. QLocale използва формата <език>_<страна>.<код> за идентификатор. QLocale, който е създаден без параметри (QLocale()) е еквивалентен на този по подразбиране. Когато няма зададен по подразбиране, се използва системният. | ||
Има два начина, по които QLocale определя форматирането. Първия начин е, когато няма зададена по подразбиране локализация (QLocale::setDefault) и QLocale обект е създаден с конструктор по подразбиране. В такъв случай, QLocale() събира всичката информация през QSystemLocale::query(). Втория вариант е, когато има зададена по подразбиране локализация или QLocale обект е създаден с език и страна(идентификатор на локализацията). В този случай, Qt се обръща към | Има два начина, по които QLocale определя форматирането. Първия начин е, когато няма зададена по подразбиране локализация (QLocale::setDefault) и QLocale обект е създаден с конструктор по подразбиране. В такъв случай, QLocale() събира всичката информация през QSystemLocale::query(). Втория вариант е, когато има зададена по подразбиране локализация или QLocale обект е създаден с език и страна(идентификатор на локализацията). В този случай, Qt се обръща към [http://qt.gitorious.org/+qt-developers/qt/releases/blobs/0d00798f6bdd098dbb59c6f1da5be5efd6c283fa/src/corelib/tools/qlocale_data_p.h qlocale_data_p.h] за да определи как да форматира данните. qlocale_data_p.h е генериран от [http://cldr.unicode.org/index/downloads CLDR] като се използват скриптовете cldr2qlocalexml.py и qlocalexml2cpp.py от [http://qt.gitorious.org/qt/qt/trees/169099b5e9c77c6633deb3c7bb949800a5f80ec2/util/local_database local_database]. | ||
Нека да повторим: | Нека да повторим: | ||
Line 36: | Line 35: | ||
= Резервна локализация = | = Резервна локализация = | ||
Резервната локализация ( | Резервната локализация ([http://doc.qt.nokia.com/qsystemlocale.html#fallbackLocale QSystemLocale::fallbackLocale]) е QLocale създаден като се използва идентификатор, намерен в променливите на средата (LC_ALL и LANG). Ако тези променливи не са настроени, GetUserDefaultLCID се използва на Windows и CFLocaleGetIdentifier на Mac OS X. | ||
= Графични елементи и локализации = | = Графични елементи и локализации = |
Latest revision as of 12:25, 17 April 2015
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine. Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean. |
Български English
Написано от : Girish Ramakrishnan, ForwardBias Technologies
Основи
Като за начало може да прочетете Основи на локализациите . В Qt, локализациите са реализирани чрез QLocale и QSystemLocale.
QSystemLocale
QSystemLocale е интерфейс за запитване за информация за локализацията на потребителя. QSystemLocale::query() може да се използва за да се взема информация като име на месеца, отрицателен знак за числа и т.н.
QSystemLocale предоставя информация за локализацията от операционната система. На Windows, QSystemLocale::query() използва GetLocaleInfo , на Mac OS X - CFLocaleGetValue, а на Линукс, query() връща само информацията, получена от инспектирането на променливите на средата LC_MEASUREMENT, LC_ALL и LANG ( в този ред ).
QSystemLocale::query() може да бъде предефинира от приложението с цел да предостави по-нататъшно персонализиране на потребителската локализация.
Локализация по подразбиране
Qt програмите мога да се пускат с всякаква локализация като се посочи такава по подразбиране с QLocale::setDefault(). Когато не е зададена локализация по подразбиране, Qt използва информацията от QSystemLocale, т.е тази от операционната система.
QLocale
QLocale е "front-end" клас, който помага във форматирането на данните, базирайки се на идентификатора на локализацията. QLocale използва формата <език>_<страна>.<код> за идентификатор. QLocale, който е създаден без параметри (QLocale()) е еквивалентен на този по подразбиране. Когато няма зададен по подразбиране, се използва системният.
Има два начина, по които QLocale определя форматирането. Първия начин е, когато няма зададена по подразбиране локализация (QLocale::setDefault) и QLocale обект е създаден с конструктор по подразбиране. В такъв случай, QLocale() събира всичката информация през QSystemLocale::query(). Втория вариант е, когато има зададена по подразбиране локализация или QLocale обект е създаден с език и страна(идентификатор на локализацията). В този случай, Qt се обръща към qlocale_data_p.h за да определи как да форматира данните. qlocale_data_p.h е генериран от CLDR като се използват скриптовете cldr2qlocalexml.py и qlocalexml2cpp.py от local_database.
Нека да повторим:
- Когато използваме системна локализация, информацията за форматирането идва от ОС-а, а не от CLDR данните.
- Когато има зададена локализация по подразбиране или QLocale обект е създаден с идентификатор, информацията за форматирането идва от CLDR данните.
Резервна локализация
Резервната локализация (QSystemLocale::fallbackLocale) е QLocale създаден като се използва идентификатор, намерен в променливите на средата (LC_ALL и LANG). Ако тези променливи не са настроени, GetUserDefaultLCID се използва на Windows и CFLocaleGetIdentifier на Mac OS X.
Графични елементи и локализации
На всеки графичен елемент може да се зададе индивидуална локализация чрез QWidget::setLocale(). Локализацията се предава от родител на децата, когато не е зададена. Qt изпраща събитието QEvent::LocaleChange към графичен елемент, когато неговата локализация се смени.