From 978af864269a739e77d9431c8465435e3f8f7407 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Mon, 4 Sep 2006 13:35:13 +0000 Subject: [PATCH] merge of RTL changes (with many modifications) from SOC2006_RTL branch git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40994 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/changes.txt | 1 + include/wx/app.h | 4 + include/wx/gtk/menu.h | 10 + include/wx/gtk/window.h | 7 + include/wx/intl.h | 8 + include/wx/msw/toplevel.h | 2 + include/wx/msw/window.h | 6 + include/wx/window.h | 21 +- misc/languages/genlang.py | 17 +- misc/languages/langtabl.txt | 454 +++++++++++++++---------------- samples/internat/ar/internat.mo | Bin 0 -> 2902 bytes samples/internat/ar/internat.po | 160 +++++++++++ samples/internat/internat.bkl | 1 + samples/internat/internat.cpp | 16 +- src/common/appbase.cpp | 18 ++ src/common/intl.cpp | 458 ++++++++++++++++---------------- src/common/sizer.cpp | 10 + src/common/wincmn.cpp | 18 ++ src/gtk/menu.cpp | 65 +++++ src/gtk/window.cpp | 49 ++++ src/msw/msgdlg.cpp | 3 + src/msw/tooltip.cpp | 23 +- src/msw/toplevel.cpp | 17 ++ src/msw/window.cpp | 53 ++++ 24 files changed, 946 insertions(+), 475 deletions(-) create mode 100755 samples/internat/ar/internat.mo create mode 100755 samples/internat/ar/internat.po diff --git a/docs/changes.txt b/docs/changes.txt index e1c9b38d65..d754d33a8a 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -57,6 +57,7 @@ All: All (GUI): +- Support for right-to-left text layout (Diaa Sami during Google Summer of Code) - Added wxID_PAGE_SETUP standard id wxMac: diff --git a/include/wx/app.h b/include/wx/app.h index c3f299f265..029e3534a5 100644 --- a/include/wx/app.h +++ b/include/wx/app.h @@ -27,6 +27,7 @@ #include "wx/build.h" #include "wx/init.h" // we must declare wxEntry() +#include "wx/intl.h" class WXDLLIMPEXP_BASE wxAppConsole; class WXDLLIMPEXP_BASE wxAppTraits; @@ -112,6 +113,9 @@ public: // Called from wxExit() function, should terminate the application a.s.a.p. virtual void Exit(); + + // Return the layout direction for the current locale + virtual wxLayoutDirection GetLayoutDirection() const; // application info: name, description, vendor diff --git a/include/wx/gtk/menu.h b/include/wx/gtk/menu.h index c72c8ff60d..8d5db66d12 100644 --- a/include/wx/gtk/menu.h +++ b/include/wx/gtk/menu.h @@ -37,6 +37,11 @@ public: virtual void SetLabelTop( size_t pos, const wxString& label ); virtual wxString GetLabelTop( size_t pos ) const; + void SetLayoutDirection(wxLayoutDirection dir); + wxLayoutDirection GetLayoutDirection() const; + + void Attach(wxFrame *frame); + // implementation only from now on void SetInvokingWindow( wxWindow *win ); void UnsetInvokingWindow( wxWindow *win ); @@ -69,6 +74,11 @@ public: virtual ~wxMenu(); + void Attach(wxMenuBarBase *menubar); + + void SetLayoutDirection(const wxLayoutDirection dir); + wxLayoutDirection GetLayoutDirection() const; + // TODO: virtual void SetTitle(const wxString& title); // implementation diff --git a/include/wx/gtk/window.h b/include/wx/gtk/window.h index 5a11d736ac..e6cd98d908 100644 --- a/include/wx/gtk/window.h +++ b/include/wx/gtk/window.h @@ -113,6 +113,9 @@ public: virtual void AddChild( wxWindowBase *child ); virtual void RemoveChild( wxWindowBase *child ); + virtual void SetLayoutDirection(wxLayoutDirection dir); + virtual wxLayoutDirection GetLayoutDirection() const; + // currently wxGTK2-only void SetDoubleBuffered(bool on); @@ -172,6 +175,10 @@ public: // base version just does GetEventHandler()->ProcessEvent() virtual bool GTKProcessEvent(wxEvent& event) const; + // Map GTK widget direction of the given widget to/from wxLayoutDirection + static wxLayoutDirection GTKGetLayout(GtkWidget *widget); + static void GTKSetLayout(GtkWidget *widget, wxLayoutDirection dir); + protected: // Override GTKWidgetNeedsMnemonic and return true if your // needs to set its mnemonic widget, such as for a diff --git a/include/wx/intl.h b/include/wx/intl.h index 1518905484..4a1b2b4ab8 100644 --- a/include/wx/intl.h +++ b/include/wx/intl.h @@ -302,6 +302,13 @@ enum wxLanguage // --- --- --- generated code ends here --- --- --- +enum wxLayoutDirection +{ + wxLayout_Default, + wxLayout_LeftToRight, + wxLayout_RightToLeft +}; + // ---------------------------------------------------------------------------- // wxLanguageInfo: encapsulates wxLanguage to OS native lang.desc. // translation information @@ -316,6 +323,7 @@ struct WXDLLIMPEXP_BASE wxLanguageInfo WinSublang; #endif // __WIN32__ wxString Description; // human-readable name of the language + wxLayoutDirection LayoutDirection; }; // ---------------------------------------------------------------------------- diff --git a/include/wx/msw/toplevel.h b/include/wx/msw/toplevel.h index 64359f658d..b7a4aee882 100644 --- a/include/wx/msw/toplevel.h +++ b/include/wx/msw/toplevel.h @@ -55,6 +55,8 @@ public: virtual void SetIcon(const wxIcon& icon); virtual void SetIcons(const wxIconBundle& icons ); virtual void Restore(); + + virtual void SetLayoutDirection(wxLayoutDirection dir); #ifndef __WXWINCE__ virtual bool SetShape(const wxRegion& region); diff --git a/include/wx/msw/window.h b/include/wx/msw/window.h index 2d5ecab159..a081beb211 100644 --- a/include/wx/msw/window.h +++ b/include/wx/msw/window.h @@ -110,6 +110,12 @@ public: virtual bool ScrollLines(int lines); virtual bool ScrollPages(int pages); + virtual void SetLayoutDirection(wxLayoutDirection dir); + virtual wxLayoutDirection GetLayoutDirection() const; + virtual wxCoord AdjustForLayoutDirection(wxCoord x, + wxCoord width, + wxCoord widthTotal) const; + #if wxUSE_DRAG_AND_DROP virtual void SetDropTarget( wxDropTarget *dropTarget ); #endif // wxUSE_DRAG_AND_DROP diff --git a/include/wx/window.h b/include/wx/window.h index ad27c0c68e..739309ac03 100644 --- a/include/wx/window.h +++ b/include/wx/window.h @@ -25,6 +25,7 @@ #include "wx/colour.h" #include "wx/region.h" #include "wx/utils.h" +#include "wx/intl.h" #include "wx/validate.h" // for wxDefaultValidator (always include it) @@ -180,15 +181,29 @@ public: virtual void SetName( const wxString &name ) { m_windowName = name; } virtual wxString GetName() const { return m_windowName; } - // sets the window variant, calls internally DoSetVariant if variant has changed - void SetWindowVariant( wxWindowVariant variant ) ; - wxWindowVariant GetWindowVariant() const { return m_windowVariant ; } + // sets the window variant, calls internally DoSetVariant if variant + // has changed + void SetWindowVariant(wxWindowVariant variant); + wxWindowVariant GetWindowVariant() const { return m_windowVariant; } // window id uniquely identifies the window among its siblings unless // it is wxID_ANY which means "don't care" void SetId( wxWindowID winid ) { m_windowId = winid; } wxWindowID GetId() const { return m_windowId; } + + // get or change the layout direction (LTR or RTL) for this window, + // wxLayout_Default is returned if layout direction is not supported + virtual wxLayoutDirection GetLayoutDirection() const + { return wxLayout_Default; } + virtual void SetLayoutDirection(wxLayoutDirection WXUNUSED(dir)) + { } + + // mirror coordinates for RTL layout if this window uses it and if the + // mirroring is not done automatically like Win32 + virtual wxCoord AdjustForLayoutDirection(wxCoord x, + wxCoord width, + wxCoord widthTotal) const; // generate a control id for the controls which were not given one by // user diff --git a/misc/languages/genlang.py b/misc/languages/genlang.py index e6b15875f8..c2765d10d2 100755 --- a/misc/languages/genlang.py +++ b/misc/languages/genlang.py @@ -12,7 +12,7 @@ def ReadTable(): f = open('langtabl.txt') for i in f.readlines(): ispl = i.split() - table.append((ispl[0], ispl[1], ispl[2], ispl[3], string.join(ispl[4:]))) + table.append((ispl[0], ispl[1], ispl[2], ispl[3], ispl[4], string.join(ispl[5:]))) f.close() return table @@ -87,8 +87,14 @@ def GenTable(table): if ilang == '-': ilang = '0' isublang = i[3] if isublang == '-': isublang = '0' - lngtable += ' LNG(%-38s %-7s, %-15s, %-34s, %s)\n' % \ - ((i[0]+','), ican, ilang, isublang, i[4]) + if (i[4] == "LTR") : + ilayout = "wxLayout_LeftToRight" + elif (i[4] == "RTL"): + ilayout = "wxLayout_RightToLeft" + else: + print "ERROR: Invalid value for the layout direction"; + lngtable += ' LNG(%-38s %-7s, %-15s, %-34s, %s, %s)\n' % \ + ((i[0]+','), ican, ilang, isublang, ilayout, i[5]) if ilang not in all_langs: all_langs.append(ilang) if isublang not in all_sublangs: all_sublangs.append(isublang) @@ -119,10 +125,11 @@ def GenTable(table): #endif // __WIN32__ -#define LNG(wxlang, canonical, winlang, winsublang, desc) \\ +#define LNG(wxlang, canonical, winlang, winsublang, layout, desc) \\ info.Language = wxlang; \\ info.CanonicalName = wxT(canonical); \\ - info.Description = desc; \\ + info.LayoutDirection = layout; \\ + info.Description = wxT(desc); \\ SETWINLANG(info, winlang, winsublang) \\ AddLanguage(info); diff --git a/misc/languages/langtabl.txt b/misc/languages/langtabl.txt index b3225c626b..21224fc0d4 100644 --- a/misc/languages/langtabl.txt +++ b/misc/languages/langtabl.txt @@ -1,227 +1,227 @@ -wxLANGUAGE_ABKHAZIAN ab - - "Abkhazian" -wxLANGUAGE_AFAR aa - - "Afar" -wxLANGUAGE_AFRIKAANS af_ZA LANG_AFRIKAANS SUBLANG_DEFAULT "Afrikaans" -wxLANGUAGE_ALBANIAN sq_AL LANG_ALBANIAN SUBLANG_DEFAULT "Albanian" -wxLANGUAGE_AMHARIC am - - "Amharic" -wxLANGUAGE_ARABIC ar LANG_ARABIC SUBLANG_DEFAULT "Arabic" -wxLANGUAGE_ARABIC_ALGERIA ar_DZ LANG_ARABIC SUBLANG_ARABIC_ALGERIA "Arabic (Algeria)" -wxLANGUAGE_ARABIC_BAHRAIN ar_BH LANG_ARABIC SUBLANG_ARABIC_BAHRAIN "Arabic (Bahrain)" -wxLANGUAGE_ARABIC_EGYPT ar_EG LANG_ARABIC SUBLANG_ARABIC_EGYPT "Arabic (Egypt)" -wxLANGUAGE_ARABIC_IRAQ ar_IQ LANG_ARABIC SUBLANG_ARABIC_IRAQ "Arabic (Iraq)" -wxLANGUAGE_ARABIC_JORDAN ar_JO LANG_ARABIC SUBLANG_ARABIC_JORDAN "Arabic (Jordan)" -wxLANGUAGE_ARABIC_KUWAIT ar_KW LANG_ARABIC SUBLANG_ARABIC_KUWAIT "Arabic (Kuwait)" -wxLANGUAGE_ARABIC_LEBANON ar_LB LANG_ARABIC SUBLANG_ARABIC_LEBANON "Arabic (Lebanon)" -wxLANGUAGE_ARABIC_LIBYA ar_LY LANG_ARABIC SUBLANG_ARABIC_LIBYA "Arabic (Libya)" -wxLANGUAGE_ARABIC_MOROCCO ar_MA LANG_ARABIC SUBLANG_ARABIC_MOROCCO "Arabic (Morocco)" -wxLANGUAGE_ARABIC_OMAN ar_OM LANG_ARABIC SUBLANG_ARABIC_OMAN "Arabic (Oman)" -wxLANGUAGE_ARABIC_QATAR ar_QA LANG_ARABIC SUBLANG_ARABIC_QATAR "Arabic (Qatar)" -wxLANGUAGE_ARABIC_SAUDI_ARABIA ar_SA LANG_ARABIC SUBLANG_ARABIC_SAUDI_ARABIA "Arabic (Saudi Arabia)" -wxLANGUAGE_ARABIC_SUDAN ar_SD - - "Arabic (Sudan)" -wxLANGUAGE_ARABIC_SYRIA ar_SY LANG_ARABIC SUBLANG_ARABIC_SYRIA "Arabic (Syria)" -wxLANGUAGE_ARABIC_TUNISIA ar_TN LANG_ARABIC SUBLANG_ARABIC_TUNISIA "Arabic (Tunisia)" -wxLANGUAGE_ARABIC_UAE ar_AE LANG_ARABIC SUBLANG_ARABIC_UAE "Arabic (Uae)" -wxLANGUAGE_ARABIC_YEMEN ar_YE LANG_ARABIC SUBLANG_ARABIC_YEMEN "Arabic (Yemen)" -wxLANGUAGE_ARMENIAN hy LANG_ARMENIAN SUBLANG_DEFAULT "Armenian" -wxLANGUAGE_ASSAMESE as LANG_ASSAMESE SUBLANG_DEFAULT "Assamese" -wxLANGUAGE_AYMARA ay - - "Aymara" -wxLANGUAGE_AZERI az LANG_AZERI SUBLANG_DEFAULT "Azeri" -wxLANGUAGE_AZERI_CYRILLIC az LANG_AZERI SUBLANG_AZERI_CYRILLIC "Azeri (Cyrillic)" -wxLANGUAGE_AZERI_LATIN az LANG_AZERI SUBLANG_AZERI_LATIN "Azeri (Latin)" -wxLANGUAGE_BASHKIR ba - - "Bashkir" -wxLANGUAGE_BASQUE eu_ES LANG_BASQUE SUBLANG_DEFAULT "Basque" -wxLANGUAGE_BELARUSIAN be_BY LANG_BELARUSIAN SUBLANG_DEFAULT "Belarusian" -wxLANGUAGE_BENGALI bn LANG_BENGALI SUBLANG_DEFAULT "Bengali" -wxLANGUAGE_BHUTANI dz - - "Bhutani" -wxLANGUAGE_BIHARI bh - - "Bihari" -wxLANGUAGE_BISLAMA bi - - "Bislama" -wxLANGUAGE_BRETON br - - "Breton" -wxLANGUAGE_BULGARIAN bg_BG LANG_BULGARIAN SUBLANG_DEFAULT "Bulgarian" -wxLANGUAGE_BURMESE my - - "Burmese" -wxLANGUAGE_CAMBODIAN km - - "Cambodian" -wxLANGUAGE_CATALAN ca_ES LANG_CATALAN SUBLANG_DEFAULT "Catalan" -wxLANGUAGE_CHINESE zh_TW LANG_CHINESE SUBLANG_DEFAULT "Chinese" -wxLANGUAGE_CHINESE_SIMPLIFIED zh_CN LANG_CHINESE SUBLANG_CHINESE_SIMPLIFIED "Chinese (Simplified)" -wxLANGUAGE_CHINESE_TRADITIONAL zh_TW LANG_CHINESE SUBLANG_CHINESE_TRADITIONAL "Chinese (Traditional)" -wxLANGUAGE_CHINESE_HONGKONG zh_HK LANG_CHINESE SUBLANG_CHINESE_HONGKONG "Chinese (Hongkong)" -wxLANGUAGE_CHINESE_MACAU zh_MO LANG_CHINESE SUBLANG_CHINESE_MACAU "Chinese (Macau)" -wxLANGUAGE_CHINESE_SINGAPORE zh_SG LANG_CHINESE SUBLANG_CHINESE_SINGAPORE "Chinese (Singapore)" -wxLANGUAGE_CHINESE_TAIWAN zh_TW LANG_CHINESE SUBLANG_CHINESE_TRADITIONAL "Chinese (Taiwan)" -wxLANGUAGE_CORSICAN co - - "Corsican" -wxLANGUAGE_CROATIAN hr_HR LANG_CROATIAN SUBLANG_DEFAULT "Croatian" -wxLANGUAGE_CZECH cs_CZ LANG_CZECH SUBLANG_DEFAULT "Czech" -wxLANGUAGE_DANISH da_DK LANG_DANISH SUBLANG_DEFAULT "Danish" -wxLANGUAGE_DUTCH nl_NL LANG_DUTCH SUBLANG_DUTCH "Dutch" -wxLANGUAGE_DUTCH_BELGIAN nl_BE LANG_DUTCH SUBLANG_DUTCH_BELGIAN "Dutch (Belgian)" -wxLANGUAGE_ENGLISH en_GB LANG_ENGLISH SUBLANG_ENGLISH_UK "English" -wxLANGUAGE_ENGLISH_UK en_GB LANG_ENGLISH SUBLANG_ENGLISH_UK "English (U.K.)" -wxLANGUAGE_ENGLISH_US en_US LANG_ENGLISH SUBLANG_ENGLISH_US "English (U.S.)" -wxLANGUAGE_ENGLISH_AUSTRALIA en_AU LANG_ENGLISH SUBLANG_ENGLISH_AUS "English (Australia)" -wxLANGUAGE_ENGLISH_BELIZE en_BZ LANG_ENGLISH SUBLANG_ENGLISH_BELIZE "English (Belize)" -wxLANGUAGE_ENGLISH_BOTSWANA en_BW - - "English (Botswana)" -wxLANGUAGE_ENGLISH_CANADA en_CA LANG_ENGLISH SUBLANG_ENGLISH_CAN "English (Canada)" -wxLANGUAGE_ENGLISH_CARIBBEAN en_CB LANG_ENGLISH SUBLANG_ENGLISH_CARIBBEAN "English (Caribbean)" -wxLANGUAGE_ENGLISH_DENMARK en_DK - - "English (Denmark)" -wxLANGUAGE_ENGLISH_EIRE en_IE LANG_ENGLISH SUBLANG_ENGLISH_EIRE "English (Eire)" -wxLANGUAGE_ENGLISH_JAMAICA en_JM LANG_ENGLISH SUBLANG_ENGLISH_JAMAICA "English (Jamaica)" -wxLANGUAGE_ENGLISH_NEW_ZEALAND en_NZ LANG_ENGLISH SUBLANG_ENGLISH_NZ "English (New Zealand)" -wxLANGUAGE_ENGLISH_PHILIPPINES en_PH LANG_ENGLISH SUBLANG_ENGLISH_PHILIPPINES "English (Philippines)" -wxLANGUAGE_ENGLISH_SOUTH_AFRICA en_ZA LANG_ENGLISH SUBLANG_ENGLISH_SOUTH_AFRICA "English (South Africa)" -wxLANGUAGE_ENGLISH_TRINIDAD en_TT LANG_ENGLISH SUBLANG_ENGLISH_TRINIDAD "English (Trinidad)" -wxLANGUAGE_ENGLISH_ZIMBABWE en_ZW LANG_ENGLISH SUBLANG_ENGLISH_ZIMBABWE "English (Zimbabwe)" -wxLANGUAGE_ESPERANTO eo - - "Esperanto" -wxLANGUAGE_ESTONIAN et_EE LANG_ESTONIAN SUBLANG_DEFAULT "Estonian" -wxLANGUAGE_FAEROESE fo_FO LANG_FAEROESE SUBLANG_DEFAULT "Faeroese" -wxLANGUAGE_FARSI fa_IR LANG_FARSI SUBLANG_DEFAULT "Farsi" -wxLANGUAGE_FIJI fj - - "Fiji" -wxLANGUAGE_FINNISH fi_FI LANG_FINNISH SUBLANG_DEFAULT "Finnish" -wxLANGUAGE_FRENCH fr_FR LANG_FRENCH SUBLANG_FRENCH "French" -wxLANGUAGE_FRENCH_BELGIAN fr_BE LANG_FRENCH SUBLANG_FRENCH_BELGIAN "French (Belgian)" -wxLANGUAGE_FRENCH_CANADIAN fr_CA LANG_FRENCH SUBLANG_FRENCH_CANADIAN "French (Canadian)" -wxLANGUAGE_FRENCH_LUXEMBOURG fr_LU LANG_FRENCH SUBLANG_FRENCH_LUXEMBOURG "French (Luxembourg)" -wxLANGUAGE_FRENCH_MONACO fr_MC LANG_FRENCH SUBLANG_FRENCH_MONACO "French (Monaco)" -wxLANGUAGE_FRENCH_SWISS fr_CH LANG_FRENCH SUBLANG_FRENCH_SWISS "French (Swiss)" -wxLANGUAGE_FRISIAN fy - - "Frisian" -wxLANGUAGE_GALICIAN gl_ES - - "Galician" -wxLANGUAGE_GEORGIAN ka LANG_GEORGIAN SUBLANG_DEFAULT "Georgian" -wxLANGUAGE_GERMAN de_DE LANG_GERMAN SUBLANG_GERMAN "German" -wxLANGUAGE_GERMAN_AUSTRIAN de_AT LANG_GERMAN SUBLANG_GERMAN_AUSTRIAN "German (Austrian)" -wxLANGUAGE_GERMAN_BELGIUM de_BE - - "German (Belgium)" -wxLANGUAGE_GERMAN_LIECHTENSTEIN de_LI LANG_GERMAN SUBLANG_GERMAN_LIECHTENSTEIN "German (Liechtenstein)" -wxLANGUAGE_GERMAN_LUXEMBOURG de_LU LANG_GERMAN SUBLANG_GERMAN_LUXEMBOURG "German (Luxembourg)" -wxLANGUAGE_GERMAN_SWISS de_CH LANG_GERMAN SUBLANG_GERMAN_SWISS "German (Swiss)" -wxLANGUAGE_GREEK el_GR LANG_GREEK SUBLANG_DEFAULT "Greek" -wxLANGUAGE_GREENLANDIC kl_GL - - "Greenlandic" -wxLANGUAGE_GUARANI gn - - "Guarani" -wxLANGUAGE_GUJARATI gu LANG_GUJARATI SUBLANG_DEFAULT "Gujarati" -wxLANGUAGE_HAUSA ha - - "Hausa" -wxLANGUAGE_HEBREW he_IL LANG_HEBREW SUBLANG_DEFAULT "Hebrew" -wxLANGUAGE_HINDI hi_IN LANG_HINDI SUBLANG_DEFAULT "Hindi" -wxLANGUAGE_HUNGARIAN hu_HU LANG_HUNGARIAN SUBLANG_DEFAULT "Hungarian" -wxLANGUAGE_ICELANDIC is_IS LANG_ICELANDIC SUBLANG_DEFAULT "Icelandic" -wxLANGUAGE_INDONESIAN id_ID LANG_INDONESIAN SUBLANG_DEFAULT "Indonesian" -wxLANGUAGE_INTERLINGUA ia - - "Interlingua" -wxLANGUAGE_INTERLINGUE ie - - "Interlingue" -wxLANGUAGE_INUKTITUT iu - - "Inuktitut" -wxLANGUAGE_INUPIAK ik - - "Inupiak" -wxLANGUAGE_IRISH ga_IE - - "Irish" -wxLANGUAGE_ITALIAN it_IT LANG_ITALIAN SUBLANG_ITALIAN "Italian" -wxLANGUAGE_ITALIAN_SWISS it_CH LANG_ITALIAN SUBLANG_ITALIAN_SWISS "Italian (Swiss)" -wxLANGUAGE_JAPANESE ja_JP LANG_JAPANESE SUBLANG_DEFAULT "Japanese" -wxLANGUAGE_JAVANESE jw - - "Javanese" -wxLANGUAGE_KANNADA kn LANG_KANNADA SUBLANG_DEFAULT "Kannada" -wxLANGUAGE_KASHMIRI ks LANG_KASHMIRI SUBLANG_DEFAULT "Kashmiri" -wxLANGUAGE_KASHMIRI_INDIA ks_IN LANG_KASHMIRI SUBLANG_KASHMIRI_INDIA "Kashmiri (India)" -wxLANGUAGE_KAZAKH kk LANG_KAZAK SUBLANG_DEFAULT "Kazakh" -wxLANGUAGE_KERNEWEK kw_GB - - "Kernewek" -wxLANGUAGE_KINYARWANDA rw - - "Kinyarwanda" -wxLANGUAGE_KIRGHIZ ky - - "Kirghiz" -wxLANGUAGE_KIRUNDI rn - - "Kirundi" -wxLANGUAGE_KONKANI - LANG_KONKANI SUBLANG_DEFAULT "Konkani" -wxLANGUAGE_KOREAN ko_KR LANG_KOREAN SUBLANG_KOREAN "Korean" -wxLANGUAGE_KURDISH ku - - "Kurdish" -wxLANGUAGE_LAOTHIAN lo - - "Laothian" -wxLANGUAGE_LATIN la - - "Latin" -wxLANGUAGE_LATVIAN lv_LV LANG_LATVIAN SUBLANG_DEFAULT "Latvian" -wxLANGUAGE_LINGALA ln - - "Lingala" -wxLANGUAGE_LITHUANIAN lt_LT LANG_LITHUANIAN SUBLANG_LITHUANIAN "Lithuanian" -wxLANGUAGE_MACEDONIAN mk_MK LANG_MACEDONIAN SUBLANG_DEFAULT "Macedonian" -wxLANGUAGE_MALAGASY mg - - "Malagasy" -wxLANGUAGE_MALAY ms_MY LANG_MALAY SUBLANG_DEFAULT "Malay" -wxLANGUAGE_MALAYALAM ml LANG_MALAYALAM SUBLANG_DEFAULT "Malayalam" -wxLANGUAGE_MALAY_BRUNEI_DARUSSALAM ms_BN LANG_MALAY SUBLANG_MALAY_BRUNEI_DARUSSALAM "Malay (Brunei Darussalam)" -wxLANGUAGE_MALAY_MALAYSIA ms_MY LANG_MALAY SUBLANG_MALAY_MALAYSIA "Malay (Malaysia)" -wxLANGUAGE_MALTESE mt_MT - - "Maltese" -wxLANGUAGE_MANIPURI - LANG_MANIPURI SUBLANG_DEFAULT "Manipuri" -wxLANGUAGE_MAORI mi - - "Maori" -wxLANGUAGE_MARATHI mr_IN LANG_MARATHI SUBLANG_DEFAULT "Marathi" -wxLANGUAGE_MOLDAVIAN mo - - "Moldavian" -wxLANGUAGE_MONGOLIAN mn - - "Mongolian" -wxLANGUAGE_NAURU na - - "Nauru" -wxLANGUAGE_NEPALI ne LANG_NEPALI SUBLANG_DEFAULT "Nepali" -wxLANGUAGE_NEPALI_INDIA ne_IN LANG_NEPALI SUBLANG_NEPALI_INDIA "Nepali (India)" -wxLANGUAGE_NORWEGIAN_BOKMAL nb_NO LANG_NORWEGIAN SUBLANG_NORWEGIAN_BOKMAL "Norwegian (Bokmal)" -wxLANGUAGE_NORWEGIAN_NYNORSK nn_NO LANG_NORWEGIAN SUBLANG_NORWEGIAN_NYNORSK "Norwegian (Nynorsk)" -wxLANGUAGE_OCCITAN oc - - "Occitan" -wxLANGUAGE_ORIYA or LANG_ORIYA SUBLANG_DEFAULT "Oriya" -wxLANGUAGE_OROMO om - - "(Afan) Oromo" -wxLANGUAGE_PASHTO ps - - "Pashto, Pushto" -wxLANGUAGE_POLISH pl_PL LANG_POLISH SUBLANG_DEFAULT "Polish" -wxLANGUAGE_PORTUGUESE pt_PT LANG_PORTUGUESE SUBLANG_PORTUGUESE "Portuguese" -wxLANGUAGE_PORTUGUESE_BRAZILIAN pt_BR LANG_PORTUGUESE SUBLANG_PORTUGUESE_BRAZILIAN "Portuguese (Brazilian)" -wxLANGUAGE_PUNJABI pa LANG_PUNJABI SUBLANG_DEFAULT "Punjabi" -wxLANGUAGE_QUECHUA qu - - "Quechua" -wxLANGUAGE_RHAETO_ROMANCE rm - - "Rhaeto-Romance" -wxLANGUAGE_ROMANIAN ro_RO LANG_ROMANIAN SUBLANG_DEFAULT "Romanian" -wxLANGUAGE_RUSSIAN ru_RU LANG_RUSSIAN SUBLANG_DEFAULT "Russian" -wxLANGUAGE_RUSSIAN_UKRAINE ru_UA - - "Russian (Ukraine)" -wxLANGUAGE_SAMOAN sm - - "Samoan" -wxLANGUAGE_SANGHO sg - - "Sangho" -wxLANGUAGE_SANSKRIT sa LANG_SANSKRIT SUBLANG_DEFAULT "Sanskrit" -wxLANGUAGE_SCOTS_GAELIC gd - - "Scots Gaelic" -wxLANGUAGE_SERBIAN_CYRILLIC sr_YU LANG_SERBIAN SUBLANG_SERBIAN_CYRILLIC "Serbian (Cyrillic)" -wxLANGUAGE_SERBIAN_LATIN sr_YU LANG_SERBIAN SUBLANG_SERBIAN_LATIN "Serbian (Latin)" -wxLANGUAGE_SERBO_CROATIAN sh - - "Serbo-Croatian" -wxLANGUAGE_SESOTHO st - - "Sesotho" -wxLANGUAGE_SETSWANA tn - - "Setswana" -wxLANGUAGE_SHONA sn - - "Shona" -wxLANGUAGE_SINDHI sd LANG_SINDHI SUBLANG_DEFAULT "Sindhi" -wxLANGUAGE_SINHALESE si - - "Sinhalese" -wxLANGUAGE_SISWATI ss - - "Siswati" -wxLANGUAGE_SLOVAK sk_SK LANG_SLOVAK SUBLANG_DEFAULT "Slovak" -wxLANGUAGE_SLOVENIAN sl_SI LANG_SLOVENIAN SUBLANG_DEFAULT "Slovenian" -wxLANGUAGE_SOMALI so - - "Somali" -wxLANGUAGE_SPANISH es_ES LANG_SPANISH SUBLANG_SPANISH "Spanish" -wxLANGUAGE_SPANISH_ARGENTINA es_AR LANG_SPANISH SUBLANG_SPANISH_ARGENTINA "Spanish (Argentina)" -wxLANGUAGE_SPANISH_BOLIVIA es_BO LANG_SPANISH SUBLANG_SPANISH_BOLIVIA "Spanish (Bolivia)" -wxLANGUAGE_SPANISH_CHILE es_CL LANG_SPANISH SUBLANG_SPANISH_CHILE "Spanish (Chile)" -wxLANGUAGE_SPANISH_COLOMBIA es_CO LANG_SPANISH SUBLANG_SPANISH_COLOMBIA "Spanish (Colombia)" -wxLANGUAGE_SPANISH_COSTA_RICA es_CR LANG_SPANISH SUBLANG_SPANISH_COSTA_RICA "Spanish (Costa Rica)" -wxLANGUAGE_SPANISH_DOMINICAN_REPUBLIC es_DO LANG_SPANISH SUBLANG_SPANISH_DOMINICAN_REPUBLIC "Spanish (Dominican republic)" -wxLANGUAGE_SPANISH_ECUADOR es_EC LANG_SPANISH SUBLANG_SPANISH_ECUADOR "Spanish (Ecuador)" -wxLANGUAGE_SPANISH_EL_SALVADOR es_SV LANG_SPANISH SUBLANG_SPANISH_EL_SALVADOR "Spanish (El Salvador)" -wxLANGUAGE_SPANISH_GUATEMALA es_GT LANG_SPANISH SUBLANG_SPANISH_GUATEMALA "Spanish (Guatemala)" -wxLANGUAGE_SPANISH_HONDURAS es_HN LANG_SPANISH SUBLANG_SPANISH_HONDURAS "Spanish (Honduras)" -wxLANGUAGE_SPANISH_MEXICAN es_MX LANG_SPANISH SUBLANG_SPANISH_MEXICAN "Spanish (Mexican)" -wxLANGUAGE_SPANISH_MODERN es_ES LANG_SPANISH SUBLANG_SPANISH_MODERN "Spanish (Modern)" -wxLANGUAGE_SPANISH_NICARAGUA es_NI LANG_SPANISH SUBLANG_SPANISH_NICARAGUA "Spanish (Nicaragua)" -wxLANGUAGE_SPANISH_PANAMA es_PA LANG_SPANISH SUBLANG_SPANISH_PANAMA "Spanish (Panama)" -wxLANGUAGE_SPANISH_PARAGUAY es_PY LANG_SPANISH SUBLANG_SPANISH_PARAGUAY "Spanish (Paraguay)" -wxLANGUAGE_SPANISH_PERU es_PE LANG_SPANISH SUBLANG_SPANISH_PERU "Spanish (Peru)" -wxLANGUAGE_SPANISH_PUERTO_RICO es_PR LANG_SPANISH SUBLANG_SPANISH_PUERTO_RICO "Spanish (Puerto Rico)" -wxLANGUAGE_SPANISH_URUGUAY es_UY LANG_SPANISH SUBLANG_SPANISH_URUGUAY "Spanish (Uruguay)" -wxLANGUAGE_SPANISH_US es_US - - "Spanish (U.S.)" -wxLANGUAGE_SPANISH_VENEZUELA es_VE LANG_SPANISH SUBLANG_SPANISH_VENEZUELA "Spanish (Venezuela)" -wxLANGUAGE_SUNDANESE su - - "Sundanese" -wxLANGUAGE_SWAHILI sw_KE LANG_SWAHILI SUBLANG_DEFAULT "Swahili" -wxLANGUAGE_SWEDISH sv_SE LANG_SWEDISH SUBLANG_SWEDISH "Swedish" -wxLANGUAGE_SWEDISH_FINLAND sv_FI LANG_SWEDISH SUBLANG_SWEDISH_FINLAND "Swedish (Finland)" -wxLANGUAGE_TAGALOG tl_PH - - "Tagalog" -wxLANGUAGE_TAJIK tg - - "Tajik" -wxLANGUAGE_TAMIL ta LANG_TAMIL SUBLANG_DEFAULT "Tamil" -wxLANGUAGE_TATAR tt LANG_TATAR SUBLANG_DEFAULT "Tatar" -wxLANGUAGE_TELUGU te LANG_TELUGU SUBLANG_DEFAULT "Telugu" -wxLANGUAGE_THAI th_TH LANG_THAI SUBLANG_DEFAULT "Thai" -wxLANGUAGE_TIBETAN bo - - "Tibetan" -wxLANGUAGE_TIGRINYA ti - - "Tigrinya" -wxLANGUAGE_TONGA to - - "Tonga" -wxLANGUAGE_TSONGA ts - - "Tsonga" -wxLANGUAGE_TURKISH tr_TR LANG_TURKISH SUBLANG_DEFAULT "Turkish" -wxLANGUAGE_TURKMEN tk - - "Turkmen" -wxLANGUAGE_TWI tw - - "Twi" -wxLANGUAGE_UIGHUR ug - - "Uighur" -wxLANGUAGE_UKRAINIAN uk_UA LANG_UKRAINIAN SUBLANG_DEFAULT "Ukrainian" -wxLANGUAGE_URDU ur LANG_URDU SUBLANG_DEFAULT "Urdu" -wxLANGUAGE_URDU_INDIA ur_IN LANG_URDU SUBLANG_URDU_INDIA "Urdu (India)" -wxLANGUAGE_URDU_PAKISTAN ur_PK LANG_URDU SUBLANG_URDU_PAKISTAN "Urdu (Pakistan)" -wxLANGUAGE_UZBEK uz LANG_UZBEK SUBLANG_DEFAULT "Uzbek" -wxLANGUAGE_UZBEK_CYRILLIC uz LANG_UZBEK SUBLANG_UZBEK_CYRILLIC "Uzbek (Cyrillic)" -wxLANGUAGE_UZBEK_LATIN uz LANG_UZBEK SUBLANG_UZBEK_LATIN "Uzbek (Latin)" -wxLANGUAGE_VIETNAMESE vi_VN LANG_VIETNAMESE SUBLANG_DEFAULT "Vietnamese" -wxLANGUAGE_VOLAPUK vo - - "Volapuk" -wxLANGUAGE_WELSH cy - - "Welsh" -wxLANGUAGE_WOLOF wo - - "Wolof" -wxLANGUAGE_XHOSA xh - - "Xhosa" -wxLANGUAGE_YIDDISH yi - - "Yiddish" -wxLANGUAGE_YORUBA yo - - "Yoruba" -wxLANGUAGE_ZHUANG za - - "Zhuang" -wxLANGUAGE_ZULU zu - - "Zulu" +wxLANGUAGE_ABKHAZIAN ab - - LTR "Abkhazian" +wxLANGUAGE_AFAR aa - - LTR "Afar" +wxLANGUAGE_AFRIKAANS af_ZA LANG_AFRIKAANS SUBLANG_DEFAULT LTR "Afrikaans" +wxLANGUAGE_ALBANIAN sq_AL LANG_ALBANIAN SUBLANG_DEFAULT LTR "Albanian" +wxLANGUAGE_AMHARIC am - - LTR "Amharic" +wxLANGUAGE_ARABIC ar LANG_ARABIC SUBLANG_DEFAULT RTL "Arabic" +wxLANGUAGE_ARABIC_ALGERIA ar_DZ LANG_ARABIC SUBLANG_ARABIC_ALGERIA RTL "Arabic (Algeria)" +wxLANGUAGE_ARABIC_BAHRAIN ar_BH LANG_ARABIC SUBLANG_ARABIC_BAHRAIN RTL "Arabic (Bahrain)" +wxLANGUAGE_ARABIC_EGYPT ar_EG LANG_ARABIC SUBLANG_ARABIC_EGYPT RTL "Arabic (Egypt)" +wxLANGUAGE_ARABIC_IRAQ ar_IQ LANG_ARABIC SUBLANG_ARABIC_IRAQ RTL "Arabic (Iraq)" +wxLANGUAGE_ARABIC_JORDAN ar_JO LANG_ARABIC SUBLANG_ARABIC_JORDAN RTL "Arabic (Jordan)" +wxLANGUAGE_ARABIC_KUWAIT ar_KW LANG_ARABIC SUBLANG_ARABIC_KUWAIT RTL "Arabic (Kuwait)" +wxLANGUAGE_ARABIC_LEBANON ar_LB LANG_ARABIC SUBLANG_ARABIC_LEBANON RTL "Arabic (Lebanon)" +wxLANGUAGE_ARABIC_LIBYA ar_LY LANG_ARABIC SUBLANG_ARABIC_LIBYA RTL "Arabic (Libya)" +wxLANGUAGE_ARABIC_MOROCCO ar_MA LANG_ARABIC SUBLANG_ARABIC_MOROCCO RTL "Arabic (Morocco)" +wxLANGUAGE_ARABIC_OMAN ar_OM LANG_ARABIC SUBLANG_ARABIC_OMAN RTL "Arabic (Oman)" +wxLANGUAGE_ARABIC_QATAR ar_QA LANG_ARABIC SUBLANG_ARABIC_QATAR RTL "Arabic (Qatar)" +wxLANGUAGE_ARABIC_SAUDI_ARABIA ar_SA LANG_ARABIC SUBLANG_ARABIC_SAUDI_ARABIA RTL "Arabic (Saudi Arabia)" +wxLANGUAGE_ARABIC_SUDAN ar_SD - - RTL "Arabic (Sudan)" +wxLANGUAGE_ARABIC_SYRIA ar_SY LANG_ARABIC SUBLANG_ARABIC_SYRIA RTL "Arabic (Syria)" +wxLANGUAGE_ARABIC_TUNISIA ar_TN LANG_ARABIC SUBLANG_ARABIC_TUNISIA RTL "Arabic (Tunisia)" +wxLANGUAGE_ARABIC_UAE ar_AE LANG_ARABIC SUBLANG_ARABIC_UAE RTL "Arabic (Uae)" +wxLANGUAGE_ARABIC_YEMEN ar_YE LANG_ARABIC SUBLANG_ARABIC_YEMEN RTL "Arabic (Yemen)" +wxLANGUAGE_ARMENIAN hy LANG_ARMENIAN SUBLANG_DEFAULT LTR "Armenian" +wxLANGUAGE_ASSAMESE as LANG_ASSAMESE SUBLANG_DEFAULT LTR "Assamese" +wxLANGUAGE_AYMARA ay - - LTR "Aymara" +wxLANGUAGE_AZERI az LANG_AZERI SUBLANG_DEFAULT LTR "Azeri" +wxLANGUAGE_AZERI_CYRILLIC az LANG_AZERI SUBLANG_AZERI_CYRILLIC LTR "Azeri (Cyrillic)" +wxLANGUAGE_AZERI_LATIN az LANG_AZERI SUBLANG_AZERI_LATIN LTR "Azeri (Latin)" +wxLANGUAGE_BASHKIR ba - - LTR "Bashkir" +wxLANGUAGE_BASQUE eu_ES LANG_BASQUE SUBLANG_DEFAULT LTR "Basque" +wxLANGUAGE_BELARUSIAN be_BY LANG_BELARUSIAN SUBLANG_DEFAULT LTR "Belarusian" +wxLANGUAGE_BENGALI bn LANG_BENGALI SUBLANG_DEFAULT LTR "Bengali" +wxLANGUAGE_BHUTANI dz - - LTR "Bhutani" +wxLANGUAGE_BIHARI bh - - LTR "Bihari" +wxLANGUAGE_BISLAMA bi - - LTR "Bislama" +wxLANGUAGE_BRETON br - - LTR "Breton" +wxLANGUAGE_BULGARIAN bg_BG LANG_BULGARIAN SUBLANG_DEFAULT LTR "Bulgarian" +wxLANGUAGE_BURMESE my - - LTR "Burmese" +wxLANGUAGE_CAMBODIAN km - - LTR "Cambodian" +wxLANGUAGE_CATALAN ca_ES LANG_CATALAN SUBLANG_DEFAULT LTR "Catalan" +wxLANGUAGE_CHINESE zh_TW LANG_CHINESE SUBLANG_DEFAULT LTR "Chinese" +wxLANGUAGE_CHINESE_SIMPLIFIED zh_CN LANG_CHINESE SUBLANG_CHINESE_SIMPLIFIED LTR "Chinese (Simplified)" +wxLANGUAGE_CHINESE_TRADITIONAL zh_TW LANG_CHINESE SUBLANG_CHINESE_TRADITIONAL LTR "Chinese (Traditional)" +wxLANGUAGE_CHINESE_HONGKONG zh_HK LANG_CHINESE SUBLANG_CHINESE_HONGKONG LTR "Chinese (Hongkong)" +wxLANGUAGE_CHINESE_MACAU zh_MO LANG_CHINESE SUBLANG_CHINESE_MACAU LTR "Chinese (Macau)" +wxLANGUAGE_CHINESE_SINGAPORE zh_SG LANG_CHINESE SUBLANG_CHINESE_SINGAPORE LTR "Chinese (Singapore)" +wxLANGUAGE_CHINESE_TAIWAN zh_TW LANG_CHINESE SUBLANG_CHINESE_TRADITIONAL LTR "Chinese (Taiwan)" +wxLANGUAGE_CORSICAN co - - LTR "Corsican" +wxLANGUAGE_CROATIAN hr_HR LANG_CROATIAN SUBLANG_DEFAULT LTR "Croatian" +wxLANGUAGE_CZECH cs_CZ LANG_CZECH SUBLANG_DEFAULT LTR "Czech" +wxLANGUAGE_DANISH da_DK LANG_DANISH SUBLANG_DEFAULT LTR "Danish" +wxLANGUAGE_DUTCH nl_NL LANG_DUTCH SUBLANG_DUTCH LTR "Dutch" +wxLANGUAGE_DUTCH_BELGIAN nl_BE LANG_DUTCH SUBLANG_DUTCH_BELGIAN LTR "Dutch (Belgian)" +wxLANGUAGE_ENGLISH en_GB LANG_ENGLISH SUBLANG_ENGLISH_UK LTR "English" +wxLANGUAGE_ENGLISH_UK en_GB LANG_ENGLISH SUBLANG_ENGLISH_UK LTR "English (U.K.)" +wxLANGUAGE_ENGLISH_US en_US LANG_ENGLISH SUBLANG_ENGLISH_US LTR "English (U.S.)" +wxLANGUAGE_ENGLISH_AUSTRALIA en_AU LANG_ENGLISH SUBLANG_ENGLISH_AUS LTR "English (Australia)" +wxLANGUAGE_ENGLISH_BELIZE en_BZ LANG_ENGLISH SUBLANG_ENGLISH_BELIZE LTR "English (Belize)" +wxLANGUAGE_ENGLISH_BOTSWANA en_BW - - LTR "English (Botswana)" +wxLANGUAGE_ENGLISH_CANADA en_CA LANG_ENGLISH SUBLANG_ENGLISH_CAN LTR "English (Canada)" +wxLANGUAGE_ENGLISH_CARIBBEAN en_CB LANG_ENGLISH SUBLANG_ENGLISH_CARIBBEAN LTR "English (Caribbean)" +wxLANGUAGE_ENGLISH_DENMARK en_DK - - LTR "English (Denmark)" +wxLANGUAGE_ENGLISH_EIRE en_IE LANG_ENGLISH SUBLANG_ENGLISH_EIRE LTR "English (Eire)" +wxLANGUAGE_ENGLISH_JAMAICA en_JM LANG_ENGLISH SUBLANG_ENGLISH_JAMAICA LTR "English (Jamaica)" +wxLANGUAGE_ENGLISH_NEW_ZEALAND en_NZ LANG_ENGLISH SUBLANG_ENGLISH_NZ LTR "English (New Zealand)" +wxLANGUAGE_ENGLISH_PHILIPPINES en_PH LANG_ENGLISH SUBLANG_ENGLISH_PHILIPPINES LTR "English (Philippines)" +wxLANGUAGE_ENGLISH_SOUTH_AFRICA en_ZA LANG_ENGLISH SUBLANG_ENGLISH_SOUTH_AFRICA LTR "English (South Africa)" +wxLANGUAGE_ENGLISH_TRINIDAD en_TT LANG_ENGLISH SUBLANG_ENGLISH_TRINIDAD LTR "English (Trinidad)" +wxLANGUAGE_ENGLISH_ZIMBABWE en_ZW LANG_ENGLISH SUBLANG_ENGLISH_ZIMBABWE LTR "English (Zimbabwe)" +wxLANGUAGE_ESPERANTO eo - - LTR "Esperanto" +wxLANGUAGE_ESTONIAN et_EE LANG_ESTONIAN SUBLANG_DEFAULT LTR "Estonian" +wxLANGUAGE_FAEROESE fo_FO LANG_FAEROESE SUBLANG_DEFAULT LTR "Faeroese" +wxLANGUAGE_FARSI fa_IR LANG_FARSI SUBLANG_DEFAULT LTR "Farsi" +wxLANGUAGE_FIJI fj - - LTR "Fiji" +wxLANGUAGE_FINNISH fi_FI LANG_FINNISH SUBLANG_DEFAULT LTR "Finnish" +wxLANGUAGE_FRENCH fr_FR LANG_FRENCH SUBLANG_FRENCH LTR "French" +wxLANGUAGE_FRENCH_BELGIAN fr_BE LANG_FRENCH SUBLANG_FRENCH_BELGIAN LTR "French (Belgian)" +wxLANGUAGE_FRENCH_CANADIAN fr_CA LANG_FRENCH SUBLANG_FRENCH_CANADIAN LTR "French (Canadian)" +wxLANGUAGE_FRENCH_LUXEMBOURG fr_LU LANG_FRENCH SUBLANG_FRENCH_LUXEMBOURG LTR "French (Luxembourg)" +wxLANGUAGE_FRENCH_MONACO fr_MC LANG_FRENCH SUBLANG_FRENCH_MONACO LTR "French (Monaco)" +wxLANGUAGE_FRENCH_SWISS fr_CH LANG_FRENCH SUBLANG_FRENCH_SWISS LTR "French (Swiss)" +wxLANGUAGE_FRISIAN fy - - LTR "Frisian" +wxLANGUAGE_GALICIAN gl_ES - - LTR "Galician" +wxLANGUAGE_GEORGIAN ka LANG_GEORGIAN SUBLANG_DEFAULT LTR "Georgian" +wxLANGUAGE_GERMAN de_DE LANG_GERMAN SUBLANG_GERMAN LTR "German" +wxLANGUAGE_GERMAN_AUSTRIAN de_AT LANG_GERMAN SUBLANG_GERMAN_AUSTRIAN LTR "German (Austrian)" +wxLANGUAGE_GERMAN_BELGIUM de_BE - - LTR "German (Belgium)" +wxLANGUAGE_GERMAN_LIECHTENSTEIN de_LI LANG_GERMAN SUBLANG_GERMAN_LIECHTENSTEIN LTR "German (Liechtenstein)" +wxLANGUAGE_GERMAN_LUXEMBOURG de_LU LANG_GERMAN SUBLANG_GERMAN_LUXEMBOURG LTR "German (Luxembourg)" +wxLANGUAGE_GERMAN_SWISS de_CH LANG_GERMAN SUBLANG_GERMAN_SWISS LTR "German (Swiss)" +wxLANGUAGE_GREEK el_GR LANG_GREEK SUBLANG_DEFAULT LTR "Greek" +wxLANGUAGE_GREENLANDIC kl_GL - - LTR "Greenlandic" +wxLANGUAGE_GUARANI gn - - LTR "Guarani" +wxLANGUAGE_GUJARATI gu LANG_GUJARATI SUBLANG_DEFAULT LTR "Gujarati" +wxLANGUAGE_HAUSA ha - - LTR "Hausa" +wxLANGUAGE_HEBREW he_IL LANG_HEBREW SUBLANG_DEFAULT RTL "Hebrew" +wxLANGUAGE_HINDI hi_IN LANG_HINDI SUBLANG_DEFAULT LTR "Hindi" +wxLANGUAGE_HUNGARIAN hu_HU LANG_HUNGARIAN SUBLANG_DEFAULT LTR "Hungarian" +wxLANGUAGE_ICELANDIC is_IS LANG_ICELANDIC SUBLANG_DEFAULT LTR "Icelandic" +wxLANGUAGE_INDONESIAN id_ID LANG_INDONESIAN SUBLANG_DEFAULT LTR "Indonesian" +wxLANGUAGE_INTERLINGUA ia - - LTR "Interlingua" +wxLANGUAGE_INTERLINGUE ie - - LTR "Interlingue" +wxLANGUAGE_INUKTITUT iu - - LTR "Inuktitut" +wxLANGUAGE_INUPIAK ik - - LTR "Inupiak" +wxLANGUAGE_IRISH ga_IE - - LTR "Irish" +wxLANGUAGE_ITALIAN it_IT LANG_ITALIAN SUBLANG_ITALIAN LTR "Italian" +wxLANGUAGE_ITALIAN_SWISS it_CH LANG_ITALIAN SUBLANG_ITALIAN_SWISS LTR "Italian (Swiss)" +wxLANGUAGE_JAPANESE ja_JP LANG_JAPANESE SUBLANG_DEFAULT LTR "Japanese" +wxLANGUAGE_JAVANESE jw - - LTR "Javanese" +wxLANGUAGE_KANNADA kn LANG_KANNADA SUBLANG_DEFAULT LTR "Kannada" +wxLANGUAGE_KASHMIRI ks LANG_KASHMIRI SUBLANG_DEFAULT LTR "Kashmiri" +wxLANGUAGE_KASHMIRI_INDIA ks_IN LANG_KASHMIRI SUBLANG_KASHMIRI_INDIA LTR "Kashmiri (India)" +wxLANGUAGE_KAZAKH kk LANG_KAZAK SUBLANG_DEFAULT LTR "Kazakh" +wxLANGUAGE_KERNEWEK kw_GB - - LTR "Kernewek" +wxLANGUAGE_KINYARWANDA rw - - LTR "Kinyarwanda" +wxLANGUAGE_KIRGHIZ ky - - LTR "Kirghiz" +wxLANGUAGE_KIRUNDI rn - - LTR "Kirundi" +wxLANGUAGE_KONKANI - LANG_KONKANI SUBLANG_DEFAULT LTR "Konkani" +wxLANGUAGE_KOREAN ko_KR LANG_KOREAN SUBLANG_KOREAN LTR "Korean" +wxLANGUAGE_KURDISH ku - - LTR "Kurdish" +wxLANGUAGE_LAOTHIAN lo - - LTR "Laothian" +wxLANGUAGE_LATIN la - - LTR "Latin" +wxLANGUAGE_LATVIAN lv_LV LANG_LATVIAN SUBLANG_DEFAULT LTR "Latvian" +wxLANGUAGE_LINGALA ln - - LTR "Lingala" +wxLANGUAGE_LITHUANIAN lt_LT LANG_LITHUANIAN SUBLANG_LITHUANIAN LTR "Lithuanian" +wxLANGUAGE_MACEDONIAN mk_MK LANG_MACEDONIAN SUBLANG_DEFAULT LTR "Macedonian" +wxLANGUAGE_MALAGASY mg - - LTR "Malagasy" +wxLANGUAGE_MALAY ms_MY LANG_MALAY SUBLANG_DEFAULT LTR "Malay" +wxLANGUAGE_MALAYALAM ml LANG_MALAYALAM SUBLANG_DEFAULT LTR "Malayalam" +wxLANGUAGE_MALAY_BRUNEI_DARUSSALAM ms_BN LANG_MALAY SUBLANG_MALAY_BRUNEI_DARUSSALAM LTR "Malay (Brunei Darussalam)" +wxLANGUAGE_MALAY_MALAYSIA ms_MY LANG_MALAY SUBLANG_MALAY_MALAYSIA LTR "Malay (Malaysia)" +wxLANGUAGE_MALTESE mt_MT - - LTR "Maltese" +wxLANGUAGE_MANIPURI - LANG_MANIPURI SUBLANG_DEFAULT LTR "Manipuri" +wxLANGUAGE_MAORI mi - - LTR "Maori" +wxLANGUAGE_MARATHI mr_IN LANG_MARATHI SUBLANG_DEFAULT LTR "Marathi" +wxLANGUAGE_MOLDAVIAN mo - - LTR "Moldavian" +wxLANGUAGE_MONGOLIAN mn - - LTR "Mongolian" +wxLANGUAGE_NAURU na - - LTR "Nauru" +wxLANGUAGE_NEPALI ne LANG_NEPALI SUBLANG_DEFAULT LTR "Nepali" +wxLANGUAGE_NEPALI_INDIA ne_IN LANG_NEPALI SUBLANG_NEPALI_INDIA LTR "Nepali (India)" +wxLANGUAGE_NORWEGIAN_BOKMAL nb_NO LANG_NORWEGIAN SUBLANG_NORWEGIAN_BOKMAL LTR "Norwegian (Bokmal)" +wxLANGUAGE_NORWEGIAN_NYNORSK nn_NO LANG_NORWEGIAN SUBLANG_NORWEGIAN_NYNORSK LTR "Norwegian (Nynorsk)" +wxLANGUAGE_OCCITAN oc - - LTR "Occitan" +wxLANGUAGE_ORIYA or LANG_ORIYA SUBLANG_DEFAULT LTR "Oriya" +wxLANGUAGE_OROMO om - - LTR "(Afan) Oromo" +wxLANGUAGE_PASHTO ps - - LTR "Pashto, Pushto" +wxLANGUAGE_POLISH pl_PL LANG_POLISH SUBLANG_DEFAULT LTR "Polish" +wxLANGUAGE_PORTUGUESE pt_PT LANG_PORTUGUESE SUBLANG_PORTUGUESE LTR "Portuguese" +wxLANGUAGE_PORTUGUESE_BRAZILIAN pt_BR LANG_PORTUGUESE SUBLANG_PORTUGUESE_BRAZILIAN LTR "Portuguese (Brazilian)" +wxLANGUAGE_PUNJABI pa LANG_PUNJABI SUBLANG_DEFAULT LTR "Punjabi" +wxLANGUAGE_QUECHUA qu - - LTR "Quechua" +wxLANGUAGE_RHAETO_ROMANCE rm - - LTR "Rhaeto-Romance" +wxLANGUAGE_ROMANIAN ro_RO LANG_ROMANIAN SUBLANG_DEFAULT LTR "Romanian" +wxLANGUAGE_RUSSIAN ru_RU LANG_RUSSIAN SUBLANG_DEFAULT LTR "Russian" +wxLANGUAGE_RUSSIAN_UKRAINE ru_UA - - LTR "Russian (Ukraine)" +wxLANGUAGE_SAMOAN sm - - LTR "Samoan" +wxLANGUAGE_SANGHO sg - - LTR "Sangho" +wxLANGUAGE_SANSKRIT sa LANG_SANSKRIT SUBLANG_DEFAULT LTR "Sanskrit" +wxLANGUAGE_SCOTS_GAELIC gd - - LTR "Scots Gaelic" +wxLANGUAGE_SERBIAN_CYRILLIC sr_YU LANG_SERBIAN SUBLANG_SERBIAN_CYRILLIC LTR "Serbian (Cyrillic)" +wxLANGUAGE_SERBIAN_LATIN sr_YU LANG_SERBIAN SUBLANG_SERBIAN_LATIN LTR "Serbian (Latin)" +wxLANGUAGE_SERBO_CROATIAN sh - - LTR "Serbo-Croatian" +wxLANGUAGE_SESOTHO st - - LTR "Sesotho" +wxLANGUAGE_SETSWANA tn - - LTR "Setswana" +wxLANGUAGE_SHONA sn - - LTR "Shona" +wxLANGUAGE_SINDHI sd LANG_SINDHI SUBLANG_DEFAULT LTR "Sindhi" +wxLANGUAGE_SINHALESE si - - LTR "Sinhalese" +wxLANGUAGE_SISWATI ss - - LTR "Siswati" +wxLANGUAGE_SLOVAK sk_SK LANG_SLOVAK SUBLANG_DEFAULT LTR "Slovak" +wxLANGUAGE_SLOVENIAN sl_SI LANG_SLOVENIAN SUBLANG_DEFAULT LTR "Slovenian" +wxLANGUAGE_SOMALI so - - LTR "Somali" +wxLANGUAGE_SPANISH es_ES LANG_SPANISH SUBLANG_SPANISH LTR "Spanish" +wxLANGUAGE_SPANISH_ARGENTINA es_AR LANG_SPANISH SUBLANG_SPANISH_ARGENTINA LTR "Spanish (Argentina)" +wxLANGUAGE_SPANISH_BOLIVIA es_BO LANG_SPANISH SUBLANG_SPANISH_BOLIVIA LTR "Spanish (Bolivia)" +wxLANGUAGE_SPANISH_CHILE es_CL LANG_SPANISH SUBLANG_SPANISH_CHILE LTR "Spanish (Chile)" +wxLANGUAGE_SPANISH_COLOMBIA es_CO LANG_SPANISH SUBLANG_SPANISH_COLOMBIA LTR "Spanish (Colombia)" +wxLANGUAGE_SPANISH_COSTA_RICA es_CR LANG_SPANISH SUBLANG_SPANISH_COSTA_RICA LTR "Spanish (Costa Rica)" +wxLANGUAGE_SPANISH_DOMINICAN_REPUBLIC es_DO LANG_SPANISH SUBLANG_SPANISH_DOMINICAN_REPUBLIC LTR "Spanish (Dominican republic)" +wxLANGUAGE_SPANISH_ECUADOR es_EC LANG_SPANISH SUBLANG_SPANISH_ECUADOR LTR "Spanish (Ecuador)" +wxLANGUAGE_SPANISH_EL_SALVADOR es_SV LANG_SPANISH SUBLANG_SPANISH_EL_SALVADOR LTR "Spanish (El Salvador)" +wxLANGUAGE_SPANISH_GUATEMALA es_GT LANG_SPANISH SUBLANG_SPANISH_GUATEMALA LTR "Spanish (Guatemala)" +wxLANGUAGE_SPANISH_HONDURAS es_HN LANG_SPANISH SUBLANG_SPANISH_HONDURAS LTR "Spanish (Honduras)" +wxLANGUAGE_SPANISH_MEXICAN es_MX LANG_SPANISH SUBLANG_SPANISH_MEXICAN LTR "Spanish (Mexican)" +wxLANGUAGE_SPANISH_MODERN es_ES LANG_SPANISH SUBLANG_SPANISH_MODERN LTR "Spanish (Modern)" +wxLANGUAGE_SPANISH_NICARAGUA es_NI LANG_SPANISH SUBLANG_SPANISH_NICARAGUA LTR "Spanish (Nicaragua)" +wxLANGUAGE_SPANISH_PANAMA es_PA LANG_SPANISH SUBLANG_SPANISH_PANAMA LTR "Spanish (Panama)" +wxLANGUAGE_SPANISH_PARAGUAY es_PY LANG_SPANISH SUBLANG_SPANISH_PARAGUAY LTR "Spanish (Paraguay)" +wxLANGUAGE_SPANISH_PERU es_PE LANG_SPANISH SUBLANG_SPANISH_PERU LTR "Spanish (Peru)" +wxLANGUAGE_SPANISH_PUERTO_RICO es_PR LANG_SPANISH SUBLANG_SPANISH_PUERTO_RICO LTR "Spanish (Puerto Rico)" +wxLANGUAGE_SPANISH_URUGUAY es_UY LANG_SPANISH SUBLANG_SPANISH_URUGUAY LTR "Spanish (Uruguay)" +wxLANGUAGE_SPANISH_US es_US - - LTR "Spanish (U.S.)" +wxLANGUAGE_SPANISH_VENEZUELA es_VE LANG_SPANISH SUBLANG_SPANISH_VENEZUELA LTR "Spanish (Venezuela)" +wxLANGUAGE_SUNDANESE su - - LTR "Sundanese" +wxLANGUAGE_SWAHILI sw_KE LANG_SWAHILI SUBLANG_DEFAULT LTR "Swahili" +wxLANGUAGE_SWEDISH sv_SE LANG_SWEDISH SUBLANG_SWEDISH LTR "Swedish" +wxLANGUAGE_SWEDISH_FINLAND sv_FI LANG_SWEDISH SUBLANG_SWEDISH_FINLAND LTR "Swedish (Finland)" +wxLANGUAGE_TAGALOG tl_PH - - LTR "Tagalog" +wxLANGUAGE_TAJIK tg - - LTR "Tajik" +wxLANGUAGE_TAMIL ta LANG_TAMIL SUBLANG_DEFAULT LTR "Tamil" +wxLANGUAGE_TATAR tt LANG_TATAR SUBLANG_DEFAULT LTR "Tatar" +wxLANGUAGE_TELUGU te LANG_TELUGU SUBLANG_DEFAULT LTR "Telugu" +wxLANGUAGE_THAI th_TH LANG_THAI SUBLANG_DEFAULT LTR "Thai" +wxLANGUAGE_TIBETAN bo - - LTR "Tibetan" +wxLANGUAGE_TIGRINYA ti - - LTR "Tigrinya" +wxLANGUAGE_TONGA to - - LTR "Tonga" +wxLANGUAGE_TSONGA ts - - LTR "Tsonga" +wxLANGUAGE_TURKISH tr_TR LANG_TURKISH SUBLANG_DEFAULT LTR "Turkish" +wxLANGUAGE_TURKMEN tk - - LTR "Turkmen" +wxLANGUAGE_TWI tw - - LTR "Twi" +wxLANGUAGE_UIGHUR ug - - LTR "Uighur" +wxLANGUAGE_UKRAINIAN uk_UA LANG_UKRAINIAN SUBLANG_DEFAULT LTR "Ukrainian" +wxLANGUAGE_URDU ur LANG_URDU SUBLANG_DEFAULT LTR "Urdu" +wxLANGUAGE_URDU_INDIA ur_IN LANG_URDU SUBLANG_URDU_INDIA LTR "Urdu (India)" +wxLANGUAGE_URDU_PAKISTAN ur_PK LANG_URDU SUBLANG_URDU_PAKISTAN LTR "Urdu (Pakistan)" +wxLANGUAGE_UZBEK uz LANG_UZBEK SUBLANG_DEFAULT LTR "Uzbek" +wxLANGUAGE_UZBEK_CYRILLIC uz LANG_UZBEK SUBLANG_UZBEK_CYRILLIC LTR "Uzbek (Cyrillic)" +wxLANGUAGE_UZBEK_LATIN uz LANG_UZBEK SUBLANG_UZBEK_LATIN LTR "Uzbek (Latin)" +wxLANGUAGE_VIETNAMESE vi_VN LANG_VIETNAMESE SUBLANG_DEFAULT LTR "Vietnamese" +wxLANGUAGE_VOLAPUK vo - - LTR "Volapuk" +wxLANGUAGE_WELSH cy - - LTR "Welsh" +wxLANGUAGE_WOLOF wo - - LTR "Wolof" +wxLANGUAGE_XHOSA xh - - LTR "Xhosa" +wxLANGUAGE_YIDDISH yi - - LTR "Yiddish" +wxLANGUAGE_YORUBA yo - - LTR "Yoruba" +wxLANGUAGE_ZHUANG za - - LTR "Zhuang" +wxLANGUAGE_ZULU zu - - LTR "Zulu" diff --git a/samples/internat/ar/internat.mo b/samples/internat/ar/internat.mo new file mode 100755 index 0000000000000000000000000000000000000000..1beced98cf89933fbef6a0fd83415ddccac68217 GIT binary patch literal 2902 zcmaKsO>h)N6vtZxKh|$V{6t@(SrTQJ-3^7wLcjo_h($<>Y=L^g&TeNjIyu_@2K>Xb1U?T|z|G*#Alu#rp9JrNo4|iSw%hb5_JUhMo_`yB z7Hk8zf*s&)us>X%0@?3nuoL_Nd>!<`ec*j?Ke%h75O0DW_!xKvdd>LE<-vNIO z$A5wEV!R1K@OlD#20Q}32A%-f&le#_Lw*H*2Mwk`j(6MRLc9X*0-M1;@Kvw~;!jM6 z^WTCmV7vnIIlqLw3q~>i6FdM$o~Y{92eSQ1kn=P^j(-*$0`Gu1FaeR@2d{#x;~kK| z-$9P&Z*T`lk!oG~z!r=PU=w&HnrSDvRvy*3d|(WzrRW35iL)0xrC@$O@TN4qmU4c4bD+b&{D_mExk z;_(U6@lxilP14486^B;{oRs~P2bBG^K`mZuy`dg6f0ky*-q-b9`Q z%e*u!_IJ>>@{aUMrt}Qka+_$(E^R-p=!|W}>4{ZItZn?AXEoJL!bX83p=88J=laB&{5MSTYT1 z(O^M3o~T8NFr*1NP8vDr<5G9AD2_@iUy^y1rWQ9cIOck)K&G9QrXmX&rz4m?C@tGE zFt=ufH;4gKA!<@VxDI?N8nzuOnk5J3_$;_&4^y)hi0M*JnaWeS<}ls0`?-kZ*^p6M zE@V^UxN=LTCs=jE%0E!;`s@QGug$Mp_Y6vfqw*!?x>OhoRc;a=SBq41>>)X1j#V>L zIfzPzby}K6E;Nmcth6lKqpYJ4D)Jk)>C+Z>yU3|wiKq$IB_+6tYH0_9x(EWrQk1MB zRYkiPaO}@i){FJ#Vkea2qGsuOs|5u#z6=_wp^jlw4D`p2tJ4N=i5)^nX-Xv$yJLxt zSTaeeWIC02FM*lJQR#ZIOsKK#r0I|$B@N1gL3?xfggfJdF*#z}@vL3g2m5M^#4<`2 z(iG|I?dw^MEg4Tl(CQvqAeI>`;#4l<&Z3E*!5+$vNXJ!PSIHZWb*$R);ls*_^;lUu zhsvg@W61C#13}xw4s+Y2$*Ojd+qG*?*ic=qR!cIGpnYA0l%i3p4)=CZXJ;Gjr*^`w zuC5e5llW}4*s?t^Bp4+VSV&QRhnCM&n6zLg%LeJ`oKZUPJJs(^}{-i(QpA(olr^|YQ zqSXn~xBY2dA&f5SdAy5kGNEtjS*k+MiKw2@*RX3Atcc)@+65r=g1$+58BTuGmkFa8 z|Drzuf4ZXQ5DGR{{I7*B`xme@qUamEcTS+)u87&s9+ngjD-sP&XIq? zpH3qRc7-SrpjPkJWpmrk6sEl*x(G>7p?}`6xs_wg-1Xi, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: Internationalization wxWidgets sample\n" +"PO-Revision-Date: 2006-08-11 21:20+0200\n" +"Last-Translator: Diaa Sami \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%100 >= 11 && n%100 <= 99) ? 3 : n==2 ? 1 : (n >= 3 && n <= 10 ? 2 : 0);\n" +"X-Poedit-Language: Arabic\n" +"POT-Creation-Date: \n" + +#: ../internat.cpp:200 +msgid "&About..." +msgstr "&عن البرنامج..." + +#: ../internat.cpp:202 +msgid "E&xit" +msgstr "&خروج" + +#: ../internat.cpp:205 +msgid "&Open bogus file" +msgstr "افتح &ملف غير موجود" + +#: ../internat.cpp:206 +msgid "&Play a game" +msgstr "العب لعبة" + +#: ../internat.cpp:208 +msgid "&1 _() (gettext)" +msgstr "&1 ‎_() (gettext)‎" + +#: ../internat.cpp:209 +msgid "&2 _N() (ngettext)" +msgstr "&2 ‎_N() (ngettext)‎" + +#: ../internat.cpp:210 +msgid "&3 wxTRANSLATE() (gettext_noop)" +msgstr "&3 wxTRANSLATE() (gettext_noop)‎" + +#: ../internat.cpp:213 +msgid "&File" +msgstr "&ملف" + +#: ../internat.cpp:214 +msgid "&Test" +msgstr "&اختبار" + +#: ../internat.cpp:232 +msgid "International wxWidgets App" +msgstr "‎تطبيق wxWidgets الدولي" + +#: ../internat.cpp:252 +msgid "" +"Language: %s\n" +"System locale name:\n" +"%s\n" +"Canonical locale name: %s\n" +msgstr "" +"اللغة: %s\n" +"اسم المحل الخاص بالنظام: %s\n" +"اسم المحل الرسمي: %s\n" + +#: ../internat.cpp:258 +msgid "" +"I18n sample\n" +"(c) 1998, 1999 Vadim Zeitlin and Julian Smart" +msgstr "" +"نموذج I18n\n" +"‪(c) 1998, 1999 Vadim Zeitlin i Julian Smart" + +#: ../internat.cpp:261 +msgid "About Internat" +msgstr "عن Internat" + +#: ../internat.cpp:270 +msgid "Enter your number:" +msgstr "ادخل رقما" + +#: ../internat.cpp:271 +msgid "Try to guess my number!" +msgstr "حاول ان تحزر رقما" + +#: ../internat.cpp:285 +msgid "You've probably entered an invalid number." +msgstr "لقد ادخلت رقما خاطئا" + +#: ../internat.cpp:299 +msgid "Congratulations! you've won. Here is the magic phrase:" +msgstr "تهانينا! لقد ربحت. الجملة السحرية هي:" + +#: ../internat.cpp:300 +#, c-format +msgid "cannot create fifo `%s'" +msgstr "لم يمكن خلق fifo `%s'‎" + +#: ../internat.cpp:311 +msgid "Result" +msgstr "النتيجة" + +#: ../internat.cpp:323 +msgid "Testing _() (gettext)" +msgstr "اختبار ‎_() (gettext)‎" + +#: ../internat.cpp:324 +msgid "Please enter text to translate" +msgstr "من فضلك ادخل جملة لتتم ترجمتها" + +#: ../internat.cpp:338 +msgid "Testing _N() (ngettext)" +msgstr "اختبار ‎_N() (ngettext)‎" + +#: ../internat.cpp:340 +msgid "Please enter range for plural forms of \"n files deleted\" phrase" +msgstr "من فضلك ادخل مدي رقميا لصيغ الجمع لجملة \"س ملفات محذوفة\"" + +#: ../internat.cpp:366 +msgid "Testing wxTRANSLATE() (gettext_noop)" +msgstr "اختبار wxTRANSLATE() (gettext_noop)‎" + +#: ../internat.cpp:310 +msgid "Bad luck! try again..." +msgstr "حظ سيئ، حاول مرة اخرى" + +#: ../internat.cpp:327 +msgid "default value" +msgstr "القيمة الافتراضية" + +#: ../internat.cpp:364 +msgid "line 1" +msgstr "السطر 1" + +#: ../internat.cpp:365 +msgid "line 2" +msgstr "السطر 2" + +#: ../internat.cpp:366 +msgid "line 3" +msgstr "السطر 3" + +# Four plural forms in arabic: +# 1st: anything that doesn't fit below (like 0 1 100 1000 2000 3000 ...) +# 2nd: 2 +# 3rd: 3-10 +# 4th: ends with 11-99(like 11, 125, 1055, etc ...) + +#: ../internat.cpp:353 +msgid "file deleted" +msgid_plural "files deleted" +msgstr[0] "ملف محذوف" +msgstr[1] "ملفين محذوف" +msgstr[2] "ملفات محذوف" +msgstr[3] "ملفاً محذوفاً" + diff --git a/samples/internat/internat.bkl b/samples/internat/internat.bkl index d94ce65b82..1ffb60b67c 100644 --- a/samples/internat/internat.bkl +++ b/samples/internat/internat.bkl @@ -16,6 +16,7 @@ internat.po internat.mo + diff --git a/samples/internat/internat.cpp b/samples/internat/internat.cpp index 661a990669..089ed4b3d0 100644 --- a/samples/internat/internat.cpp +++ b/samples/internat/internat.cpp @@ -102,7 +102,9 @@ static const wxLanguage langIds[] = #if wxUSE_UNICODE wxLANGUAGE_GEORGIAN, wxLANGUAGE_ENGLISH, - wxLANGUAGE_ENGLISH_US + wxLANGUAGE_ENGLISH_US, + wxLANGUAGE_ARABIC, + wxLANGUAGE_ARABIC_EGYPT #endif }; @@ -124,7 +126,9 @@ const wxString langNames[] = #if wxUSE_UNICODE _T("Georgian"), _T("English"), - _T("English (U.S.)") + _T("English (U.S.)"), + _T("Arabic"), + _T("Arabic (Egypt)") #endif }; @@ -253,7 +257,13 @@ MyFrame::MyFrame(wxLocale& locale) _("International wxWidgets App")), m_locale(locale) { - // Empty + // this demonstrates RTL layout mirroring for Arabic locales + wxSizer *sizer = new wxBoxSizer(wxHORIZONTAL); + sizer->Add(new wxStaticText(this, wxID_ANY, _("First")), + wxSizerFlags().Border()); + sizer->Add(new wxStaticText(this, wxID_ANY, _("Second")), + wxSizerFlags().Border()); + SetSizer(sizer); } void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event) ) diff --git a/src/common/appbase.cpp b/src/common/appbase.cpp index b16ea3d837..fed2b7aab3 100644 --- a/src/common/appbase.cpp +++ b/src/common/appbase.cpp @@ -216,6 +216,24 @@ void wxAppConsole::Exit() exit(-1); } +wxLayoutDirection wxAppConsole::GetLayoutDirection() const +{ +#if wxUSE_INTL + const wxLocale *const locale = wxGetLocale(); + if ( locale ) + { + const wxLanguageInfo *const + info = wxLocale::GetLanguageInfo(locale->GetLanguage()); + + if ( info ) + return info->LayoutDirection; + } +#endif // wxUSE_INTL + + // we don't know + return wxLayout_Default; +} + // ---------------------------------------------------------------------------- // traits stuff // ---------------------------------------------------------------------------- diff --git a/src/common/intl.cpp b/src/common/intl.cpp index 903769fc59..ccc1418e29 100644 --- a/src/common/intl.cpp +++ b/src/common/intl.cpp @@ -3388,9 +3388,10 @@ IMPLEMENT_DYNAMIC_CLASS(wxLocaleModule, wxModule) #endif // __WIN32__ -#define LNG(wxlang, canonical, winlang, winsublang, desc) \ +#define LNG(wxlang, canonical, winlang, winsublang, layout, desc) \ info.Language = wxlang; \ info.CanonicalName = wxT(canonical); \ + info.LayoutDirection = layout; \ info.Description = wxT(desc); \ SETWINLANG(info, winlang, winsublang) \ AddLanguage(info); @@ -3400,234 +3401,233 @@ void wxLocale::InitLanguagesDB() wxLanguageInfo info; wxStringTokenizer tkn; - LNG(wxLANGUAGE_ABKHAZIAN, "ab" , 0 , 0 , "Abkhazian") - LNG(wxLANGUAGE_AFAR, "aa" , 0 , 0 , "Afar") - LNG(wxLANGUAGE_AFRIKAANS, "af_ZA", LANG_AFRIKAANS , SUBLANG_DEFAULT , "Afrikaans") - LNG(wxLANGUAGE_ALBANIAN, "sq_AL", LANG_ALBANIAN , SUBLANG_DEFAULT , "Albanian") - LNG(wxLANGUAGE_AMHARIC, "am" , 0 , 0 , "Amharic") - LNG(wxLANGUAGE_ARABIC, "ar" , LANG_ARABIC , SUBLANG_DEFAULT , "Arabic") - LNG(wxLANGUAGE_ARABIC_ALGERIA, "ar_DZ", LANG_ARABIC , SUBLANG_ARABIC_ALGERIA , "Arabic (Algeria)") - LNG(wxLANGUAGE_ARABIC_BAHRAIN, "ar_BH", LANG_ARABIC , SUBLANG_ARABIC_BAHRAIN , "Arabic (Bahrain)") - LNG(wxLANGUAGE_ARABIC_EGYPT, "ar_EG", LANG_ARABIC , SUBLANG_ARABIC_EGYPT , "Arabic (Egypt)") - LNG(wxLANGUAGE_ARABIC_IRAQ, "ar_IQ", LANG_ARABIC , SUBLANG_ARABIC_IRAQ , "Arabic (Iraq)") - LNG(wxLANGUAGE_ARABIC_JORDAN, "ar_JO", LANG_ARABIC , SUBLANG_ARABIC_JORDAN , "Arabic (Jordan)") - LNG(wxLANGUAGE_ARABIC_KUWAIT, "ar_KW", LANG_ARABIC , SUBLANG_ARABIC_KUWAIT , "Arabic (Kuwait)") - LNG(wxLANGUAGE_ARABIC_LEBANON, "ar_LB", LANG_ARABIC , SUBLANG_ARABIC_LEBANON , "Arabic (Lebanon)") - LNG(wxLANGUAGE_ARABIC_LIBYA, "ar_LY", LANG_ARABIC , SUBLANG_ARABIC_LIBYA , "Arabic (Libya)") - LNG(wxLANGUAGE_ARABIC_MOROCCO, "ar_MA", LANG_ARABIC , SUBLANG_ARABIC_MOROCCO , "Arabic (Morocco)") - LNG(wxLANGUAGE_ARABIC_OMAN, "ar_OM", LANG_ARABIC , SUBLANG_ARABIC_OMAN , "Arabic (Oman)") - LNG(wxLANGUAGE_ARABIC_QATAR, "ar_QA", LANG_ARABIC , SUBLANG_ARABIC_QATAR , "Arabic (Qatar)") - LNG(wxLANGUAGE_ARABIC_SAUDI_ARABIA, "ar_SA", LANG_ARABIC , SUBLANG_ARABIC_SAUDI_ARABIA , "Arabic (Saudi Arabia)") - LNG(wxLANGUAGE_ARABIC_SUDAN, "ar_SD", 0 , 0 , "Arabic (Sudan)") - LNG(wxLANGUAGE_ARABIC_SYRIA, "ar_SY", LANG_ARABIC , SUBLANG_ARABIC_SYRIA , "Arabic (Syria)") - LNG(wxLANGUAGE_ARABIC_TUNISIA, "ar_TN", LANG_ARABIC , SUBLANG_ARABIC_TUNISIA , "Arabic (Tunisia)") - LNG(wxLANGUAGE_ARABIC_UAE, "ar_AE", LANG_ARABIC , SUBLANG_ARABIC_UAE , "Arabic (Uae)") - LNG(wxLANGUAGE_ARABIC_YEMEN, "ar_YE", LANG_ARABIC , SUBLANG_ARABIC_YEMEN , "Arabic (Yemen)") - LNG(wxLANGUAGE_ARMENIAN, "hy" , LANG_ARMENIAN , SUBLANG_DEFAULT , "Armenian") - LNG(wxLANGUAGE_ASSAMESE, "as" , LANG_ASSAMESE , SUBLANG_DEFAULT , "Assamese") - LNG(wxLANGUAGE_AYMARA, "ay" , 0 , 0 , "Aymara") - LNG(wxLANGUAGE_AZERI, "az" , LANG_AZERI , SUBLANG_DEFAULT , "Azeri") - LNG(wxLANGUAGE_AZERI_CYRILLIC, "az" , LANG_AZERI , SUBLANG_AZERI_CYRILLIC , "Azeri (Cyrillic)") - LNG(wxLANGUAGE_AZERI_LATIN, "az" , LANG_AZERI , SUBLANG_AZERI_LATIN , "Azeri (Latin)") - LNG(wxLANGUAGE_BASHKIR, "ba" , 0 , 0 , "Bashkir") - LNG(wxLANGUAGE_BASQUE, "eu_ES", LANG_BASQUE , SUBLANG_DEFAULT , "Basque") - LNG(wxLANGUAGE_BELARUSIAN, "be_BY", LANG_BELARUSIAN, SUBLANG_DEFAULT , "Belarusian") - LNG(wxLANGUAGE_BENGALI, "bn" , LANG_BENGALI , SUBLANG_DEFAULT , "Bengali") - LNG(wxLANGUAGE_BHUTANI, "dz" , 0 , 0 , "Bhutani") - LNG(wxLANGUAGE_BIHARI, "bh" , 0 , 0 , "Bihari") - LNG(wxLANGUAGE_BISLAMA, "bi" , 0 , 0 , "Bislama") - LNG(wxLANGUAGE_BRETON, "br" , 0 , 0 , "Breton") - LNG(wxLANGUAGE_BULGARIAN, "bg_BG", LANG_BULGARIAN , SUBLANG_DEFAULT , "Bulgarian") - LNG(wxLANGUAGE_BURMESE, "my" , 0 , 0 , "Burmese") - LNG(wxLANGUAGE_CAMBODIAN, "km" , 0 , 0 , "Cambodian") - LNG(wxLANGUAGE_CATALAN, "ca_ES", LANG_CATALAN , SUBLANG_DEFAULT , "Catalan") - LNG(wxLANGUAGE_CHINESE, "zh_TW", LANG_CHINESE , SUBLANG_DEFAULT , "Chinese") - LNG(wxLANGUAGE_CHINESE_SIMPLIFIED, "zh_CN", LANG_CHINESE , SUBLANG_CHINESE_SIMPLIFIED , "Chinese (Simplified)") - LNG(wxLANGUAGE_CHINESE_TRADITIONAL, "zh_TW", LANG_CHINESE , SUBLANG_CHINESE_TRADITIONAL , "Chinese (Traditional)") - LNG(wxLANGUAGE_CHINESE_HONGKONG, "zh_HK", LANG_CHINESE , SUBLANG_CHINESE_HONGKONG , "Chinese (Hongkong)") - LNG(wxLANGUAGE_CHINESE_MACAU, "zh_MO", LANG_CHINESE , SUBLANG_CHINESE_MACAU , "Chinese (Macau)") - LNG(wxLANGUAGE_CHINESE_SINGAPORE, "zh_SG", LANG_CHINESE , SUBLANG_CHINESE_SINGAPORE , "Chinese (Singapore)") - LNG(wxLANGUAGE_CHINESE_TAIWAN, "zh_TW", LANG_CHINESE , SUBLANG_CHINESE_TRADITIONAL , "Chinese (Taiwan)") - LNG(wxLANGUAGE_CORSICAN, "co" , 0 , 0 , "Corsican") - LNG(wxLANGUAGE_CROATIAN, "hr_HR", LANG_CROATIAN , SUBLANG_DEFAULT , "Croatian") - LNG(wxLANGUAGE_CZECH, "cs_CZ", LANG_CZECH , SUBLANG_DEFAULT , "Czech") - LNG(wxLANGUAGE_DANISH, "da_DK", LANG_DANISH , SUBLANG_DEFAULT , "Danish") - LNG(wxLANGUAGE_DUTCH, "nl_NL", LANG_DUTCH , SUBLANG_DUTCH , "Dutch") - LNG(wxLANGUAGE_DUTCH_BELGIAN, "nl_BE", LANG_DUTCH , SUBLANG_DUTCH_BELGIAN , "Dutch (Belgian)") - LNG(wxLANGUAGE_ENGLISH, "en_GB", LANG_ENGLISH , SUBLANG_ENGLISH_UK , "English") - LNG(wxLANGUAGE_ENGLISH_UK, "en_GB", LANG_ENGLISH , SUBLANG_ENGLISH_UK , "English (U.K.)") - LNG(wxLANGUAGE_ENGLISH_US, "en_US", LANG_ENGLISH , SUBLANG_ENGLISH_US , "English (U.S.)") - LNG(wxLANGUAGE_ENGLISH_AUSTRALIA, "en_AU", LANG_ENGLISH , SUBLANG_ENGLISH_AUS , "English (Australia)") - LNG(wxLANGUAGE_ENGLISH_BELIZE, "en_BZ", LANG_ENGLISH , SUBLANG_ENGLISH_BELIZE , "English (Belize)") - LNG(wxLANGUAGE_ENGLISH_BOTSWANA, "en_BW", 0 , 0 , "English (Botswana)") - LNG(wxLANGUAGE_ENGLISH_CANADA, "en_CA", LANG_ENGLISH , SUBLANG_ENGLISH_CAN , "English (Canada)") - LNG(wxLANGUAGE_ENGLISH_CARIBBEAN, "en_CB", LANG_ENGLISH , SUBLANG_ENGLISH_CARIBBEAN , "English (Caribbean)") - LNG(wxLANGUAGE_ENGLISH_DENMARK, "en_DK", 0 , 0 , "English (Denmark)") - LNG(wxLANGUAGE_ENGLISH_EIRE, "en_IE", LANG_ENGLISH , SUBLANG_ENGLISH_EIRE , "English (Eire)") - LNG(wxLANGUAGE_ENGLISH_JAMAICA, "en_JM", LANG_ENGLISH , SUBLANG_ENGLISH_JAMAICA , "English (Jamaica)") - LNG(wxLANGUAGE_ENGLISH_NEW_ZEALAND, "en_NZ", LANG_ENGLISH , SUBLANG_ENGLISH_NZ , "English (New Zealand)") - LNG(wxLANGUAGE_ENGLISH_PHILIPPINES, "en_PH", LANG_ENGLISH , SUBLANG_ENGLISH_PHILIPPINES , "English (Philippines)") - LNG(wxLANGUAGE_ENGLISH_SOUTH_AFRICA, "en_ZA", LANG_ENGLISH , SUBLANG_ENGLISH_SOUTH_AFRICA , "English (South Africa)") - LNG(wxLANGUAGE_ENGLISH_TRINIDAD, "en_TT", LANG_ENGLISH , SUBLANG_ENGLISH_TRINIDAD , "English (Trinidad)") - LNG(wxLANGUAGE_ENGLISH_ZIMBABWE, "en_ZW", LANG_ENGLISH , SUBLANG_ENGLISH_ZIMBABWE , "English (Zimbabwe)") - LNG(wxLANGUAGE_ESPERANTO, "eo" , 0 , 0 , "Esperanto") - LNG(wxLANGUAGE_ESTONIAN, "et_EE", LANG_ESTONIAN , SUBLANG_DEFAULT , "Estonian") - LNG(wxLANGUAGE_FAEROESE, "fo_FO", LANG_FAEROESE , SUBLANG_DEFAULT , "Faeroese") - LNG(wxLANGUAGE_FARSI, "fa_IR", LANG_FARSI , SUBLANG_DEFAULT , "Farsi") - LNG(wxLANGUAGE_FIJI, "fj" , 0 , 0 , "Fiji") - LNG(wxLANGUAGE_FINNISH, "fi_FI", LANG_FINNISH , SUBLANG_DEFAULT , "Finnish") - LNG(wxLANGUAGE_FRENCH, "fr_FR", LANG_FRENCH , SUBLANG_FRENCH , "French") - LNG(wxLANGUAGE_FRENCH_BELGIAN, "fr_BE", LANG_FRENCH , SUBLANG_FRENCH_BELGIAN , "French (Belgian)") - LNG(wxLANGUAGE_FRENCH_CANADIAN, "fr_CA", LANG_FRENCH , SUBLANG_FRENCH_CANADIAN , "French (Canadian)") - LNG(wxLANGUAGE_FRENCH_LUXEMBOURG, "fr_LU", LANG_FRENCH , SUBLANG_FRENCH_LUXEMBOURG , "French (Luxembourg)") - LNG(wxLANGUAGE_FRENCH_MONACO, "fr_MC", LANG_FRENCH , SUBLANG_FRENCH_MONACO , "French (Monaco)") - LNG(wxLANGUAGE_FRENCH_SWISS, "fr_CH", LANG_FRENCH , SUBLANG_FRENCH_SWISS , "French (Swiss)") - LNG(wxLANGUAGE_FRISIAN, "fy" , 0 , 0 , "Frisian") - LNG(wxLANGUAGE_GALICIAN, "gl_ES", 0 , 0 , "Galician") - LNG(wxLANGUAGE_GEORGIAN, "ka" , LANG_GEORGIAN , SUBLANG_DEFAULT , "Georgian") - LNG(wxLANGUAGE_GERMAN, "de_DE", LANG_GERMAN , SUBLANG_GERMAN , "German") - LNG(wxLANGUAGE_GERMAN_AUSTRIAN, "de_AT", LANG_GERMAN , SUBLANG_GERMAN_AUSTRIAN , "German (Austrian)") - LNG(wxLANGUAGE_GERMAN_BELGIUM, "de_BE", 0 , 0 , "German (Belgium)") - LNG(wxLANGUAGE_GERMAN_LIECHTENSTEIN, "de_LI", LANG_GERMAN , SUBLANG_GERMAN_LIECHTENSTEIN , "German (Liechtenstein)") - LNG(wxLANGUAGE_GERMAN_LUXEMBOURG, "de_LU", LANG_GERMAN , SUBLANG_GERMAN_LUXEMBOURG , "German (Luxembourg)") - LNG(wxLANGUAGE_GERMAN_SWISS, "de_CH", LANG_GERMAN , SUBLANG_GERMAN_SWISS , "German (Swiss)") - LNG(wxLANGUAGE_GREEK, "el_GR", LANG_GREEK , SUBLANG_DEFAULT , "Greek") - LNG(wxLANGUAGE_GREENLANDIC, "kl_GL", 0 , 0 , "Greenlandic") - LNG(wxLANGUAGE_GUARANI, "gn" , 0 , 0 , "Guarani") - LNG(wxLANGUAGE_GUJARATI, "gu" , LANG_GUJARATI , SUBLANG_DEFAULT , "Gujarati") - LNG(wxLANGUAGE_HAUSA, "ha" , 0 , 0 , "Hausa") - LNG(wxLANGUAGE_HEBREW, "he_IL", LANG_HEBREW , SUBLANG_DEFAULT , "Hebrew") - LNG(wxLANGUAGE_HINDI, "hi_IN", LANG_HINDI , SUBLANG_DEFAULT , "Hindi") - LNG(wxLANGUAGE_HUNGARIAN, "hu_HU", LANG_HUNGARIAN , SUBLANG_DEFAULT , "Hungarian") - LNG(wxLANGUAGE_ICELANDIC, "is_IS", LANG_ICELANDIC , SUBLANG_DEFAULT , "Icelandic") - LNG(wxLANGUAGE_INDONESIAN, "id_ID", LANG_INDONESIAN, SUBLANG_DEFAULT , "Indonesian") - LNG(wxLANGUAGE_INTERLINGUA, "ia" , 0 , 0 , "Interlingua") - LNG(wxLANGUAGE_INTERLINGUE, "ie" , 0 , 0 , "Interlingue") - LNG(wxLANGUAGE_INUKTITUT, "iu" , 0 , 0 , "Inuktitut") - LNG(wxLANGUAGE_INUPIAK, "ik" , 0 , 0 , "Inupiak") - LNG(wxLANGUAGE_IRISH, "ga_IE", 0 , 0 , "Irish") - LNG(wxLANGUAGE_ITALIAN, "it_IT", LANG_ITALIAN , SUBLANG_ITALIAN , "Italian") - LNG(wxLANGUAGE_ITALIAN_SWISS, "it_CH", LANG_ITALIAN , SUBLANG_ITALIAN_SWISS , "Italian (Swiss)") - LNG(wxLANGUAGE_JAPANESE, "ja_JP", LANG_JAPANESE , SUBLANG_DEFAULT , "Japanese") - LNG(wxLANGUAGE_JAVANESE, "jw" , 0 , 0 , "Javanese") - LNG(wxLANGUAGE_KANNADA, "kn" , LANG_KANNADA , SUBLANG_DEFAULT , "Kannada") - LNG(wxLANGUAGE_KASHMIRI, "ks" , LANG_KASHMIRI , SUBLANG_DEFAULT , "Kashmiri") - LNG(wxLANGUAGE_KASHMIRI_INDIA, "ks_IN", LANG_KASHMIRI , SUBLANG_KASHMIRI_INDIA , "Kashmiri (India)") - LNG(wxLANGUAGE_KAZAKH, "kk" , LANG_KAZAK , SUBLANG_DEFAULT , "Kazakh") - LNG(wxLANGUAGE_KERNEWEK, "kw_GB", 0 , 0 , "Kernewek") - LNG(wxLANGUAGE_KINYARWANDA, "rw" , 0 , 0 , "Kinyarwanda") - LNG(wxLANGUAGE_KIRGHIZ, "ky" , 0 , 0 , "Kirghiz") - LNG(wxLANGUAGE_KIRUNDI, "rn" , 0 , 0 , "Kirundi") - LNG(wxLANGUAGE_KONKANI, "" , LANG_KONKANI , SUBLANG_DEFAULT , "Konkani") - LNG(wxLANGUAGE_KOREAN, "ko_KR", LANG_KOREAN , SUBLANG_KOREAN , "Korean") - LNG(wxLANGUAGE_KURDISH, "ku" , 0 , 0 , "Kurdish") - LNG(wxLANGUAGE_LAOTHIAN, "lo" , 0 , 0 , "Laothian") - LNG(wxLANGUAGE_LATIN, "la" , 0 , 0 , "Latin") - LNG(wxLANGUAGE_LATVIAN, "lv_LV", LANG_LATVIAN , SUBLANG_DEFAULT , "Latvian") - LNG(wxLANGUAGE_LINGALA, "ln" , 0 , 0 , "Lingala") - LNG(wxLANGUAGE_LITHUANIAN, "lt_LT", LANG_LITHUANIAN, SUBLANG_LITHUANIAN , "Lithuanian") - LNG(wxLANGUAGE_MACEDONIAN, "mk_MK", LANG_MACEDONIAN, SUBLANG_DEFAULT , "Macedonian") - LNG(wxLANGUAGE_MALAGASY, "mg" , 0 , 0 , "Malagasy") - LNG(wxLANGUAGE_MALAY, "ms_MY", LANG_MALAY , SUBLANG_DEFAULT , "Malay") - LNG(wxLANGUAGE_MALAYALAM, "ml" , LANG_MALAYALAM , SUBLANG_DEFAULT , "Malayalam") - LNG(wxLANGUAGE_MALAY_BRUNEI_DARUSSALAM, "ms_BN", LANG_MALAY , SUBLANG_MALAY_BRUNEI_DARUSSALAM , "Malay (Brunei Darussalam)") - LNG(wxLANGUAGE_MALAY_MALAYSIA, "ms_MY", LANG_MALAY , SUBLANG_MALAY_MALAYSIA , "Malay (Malaysia)") - LNG(wxLANGUAGE_MALTESE, "mt_MT", 0 , 0 , "Maltese") - LNG(wxLANGUAGE_MANIPURI, "" , LANG_MANIPURI , SUBLANG_DEFAULT , "Manipuri") - LNG(wxLANGUAGE_MAORI, "mi" , 0 , 0 , "Maori") - LNG(wxLANGUAGE_MARATHI, "mr_IN", LANG_MARATHI , SUBLANG_DEFAULT , "Marathi") - LNG(wxLANGUAGE_MOLDAVIAN, "mo" , 0 , 0 , "Moldavian") - LNG(wxLANGUAGE_MONGOLIAN, "mn" , 0 , 0 , "Mongolian") - LNG(wxLANGUAGE_NAURU, "na" , 0 , 0 , "Nauru") - LNG(wxLANGUAGE_NEPALI, "ne" , LANG_NEPALI , SUBLANG_DEFAULT , "Nepali") - LNG(wxLANGUAGE_NEPALI_INDIA, "ne_IN", LANG_NEPALI , SUBLANG_NEPALI_INDIA , "Nepali (India)") - LNG(wxLANGUAGE_NORWEGIAN_BOKMAL, "nb_NO", LANG_NORWEGIAN , SUBLANG_NORWEGIAN_BOKMAL , "Norwegian (Bokmal)") - LNG(wxLANGUAGE_NORWEGIAN_NYNORSK, "nn_NO", LANG_NORWEGIAN , SUBLANG_NORWEGIAN_NYNORSK , "Norwegian (Nynorsk)") - LNG(wxLANGUAGE_OCCITAN, "oc" , 0 , 0 , "Occitan") - LNG(wxLANGUAGE_ORIYA, "or" , LANG_ORIYA , SUBLANG_DEFAULT , "Oriya") - LNG(wxLANGUAGE_OROMO, "om" , 0 , 0 , "(Afan) Oromo") - LNG(wxLANGUAGE_PASHTO, "ps" , 0 , 0 , "Pashto, Pushto") - LNG(wxLANGUAGE_POLISH, "pl_PL", LANG_POLISH , SUBLANG_DEFAULT , "Polish") - LNG(wxLANGUAGE_PORTUGUESE, "pt_PT", LANG_PORTUGUESE, SUBLANG_PORTUGUESE , "Portuguese") - LNG(wxLANGUAGE_PORTUGUESE_BRAZILIAN, "pt_BR", LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN , "Portuguese (Brazilian)") - LNG(wxLANGUAGE_PUNJABI, "pa" , LANG_PUNJABI , SUBLANG_DEFAULT , "Punjabi") - LNG(wxLANGUAGE_QUECHUA, "qu" , 0 , 0 , "Quechua") - LNG(wxLANGUAGE_RHAETO_ROMANCE, "rm" , 0 , 0 , "Rhaeto-Romance") - LNG(wxLANGUAGE_ROMANIAN, "ro_RO", LANG_ROMANIAN , SUBLANG_DEFAULT , "Romanian") - LNG(wxLANGUAGE_RUSSIAN, "ru_RU", LANG_RUSSIAN , SUBLANG_DEFAULT , "Russian") - LNG(wxLANGUAGE_RUSSIAN_UKRAINE, "ru_UA", 0 , 0 , "Russian (Ukraine)") - LNG(wxLANGUAGE_SAMOAN, "sm" , 0 , 0 , "Samoan") - LNG(wxLANGUAGE_SANGHO, "sg" , 0 , 0 , "Sangho") - LNG(wxLANGUAGE_SANSKRIT, "sa" , LANG_SANSKRIT , SUBLANG_DEFAULT , "Sanskrit") - LNG(wxLANGUAGE_SCOTS_GAELIC, "gd" , 0 , 0 , "Scots Gaelic") - LNG(wxLANGUAGE_SERBIAN_CYRILLIC, "sr_YU", LANG_SERBIAN , SUBLANG_SERBIAN_CYRILLIC , "Serbian (Cyrillic)") - LNG(wxLANGUAGE_SERBIAN_LATIN, "sr_YU", LANG_SERBIAN , SUBLANG_SERBIAN_LATIN , "Serbian (Latin)") - LNG(wxLANGUAGE_SERBO_CROATIAN, "sh" , 0 , 0 , "Serbo-Croatian") - LNG(wxLANGUAGE_SESOTHO, "st" , 0 , 0 , "Sesotho") - LNG(wxLANGUAGE_SETSWANA, "tn" , 0 , 0 , "Setswana") - LNG(wxLANGUAGE_SHONA, "sn" , 0 , 0 , "Shona") - LNG(wxLANGUAGE_SINDHI, "sd" , LANG_SINDHI , SUBLANG_DEFAULT , "Sindhi") - LNG(wxLANGUAGE_SINHALESE, "si" , 0 , 0 , "Sinhalese") - LNG(wxLANGUAGE_SISWATI, "ss" , 0 , 0 , "Siswati") - LNG(wxLANGUAGE_SLOVAK, "sk_SK", LANG_SLOVAK , SUBLANG_DEFAULT , "Slovak") - LNG(wxLANGUAGE_SLOVENIAN, "sl_SI", LANG_SLOVENIAN , SUBLANG_DEFAULT , "Slovenian") - LNG(wxLANGUAGE_SOMALI, "so" , 0 , 0 , "Somali") - LNG(wxLANGUAGE_SPANISH, "es_ES", LANG_SPANISH , SUBLANG_SPANISH , "Spanish") - LNG(wxLANGUAGE_SPANISH_ARGENTINA, "es_AR", LANG_SPANISH , SUBLANG_SPANISH_ARGENTINA , "Spanish (Argentina)") - LNG(wxLANGUAGE_SPANISH_BOLIVIA, "es_BO", LANG_SPANISH , SUBLANG_SPANISH_BOLIVIA , "Spanish (Bolivia)") - LNG(wxLANGUAGE_SPANISH_CHILE, "es_CL", LANG_SPANISH , SUBLANG_SPANISH_CHILE , "Spanish (Chile)") - LNG(wxLANGUAGE_SPANISH_COLOMBIA, "es_CO", LANG_SPANISH , SUBLANG_SPANISH_COLOMBIA , "Spanish (Colombia)") - LNG(wxLANGUAGE_SPANISH_COSTA_RICA, "es_CR", LANG_SPANISH , SUBLANG_SPANISH_COSTA_RICA , "Spanish (Costa Rica)") - LNG(wxLANGUAGE_SPANISH_DOMINICAN_REPUBLIC, "es_DO", LANG_SPANISH , SUBLANG_SPANISH_DOMINICAN_REPUBLIC, "Spanish (Dominican republic)") - LNG(wxLANGUAGE_SPANISH_ECUADOR, "es_EC", LANG_SPANISH , SUBLANG_SPANISH_ECUADOR , "Spanish (Ecuador)") - LNG(wxLANGUAGE_SPANISH_EL_SALVADOR, "es_SV", LANG_SPANISH , SUBLANG_SPANISH_EL_SALVADOR , "Spanish (El Salvador)") - LNG(wxLANGUAGE_SPANISH_GUATEMALA, "es_GT", LANG_SPANISH , SUBLANG_SPANISH_GUATEMALA , "Spanish (Guatemala)") - LNG(wxLANGUAGE_SPANISH_HONDURAS, "es_HN", LANG_SPANISH , SUBLANG_SPANISH_HONDURAS , "Spanish (Honduras)") - LNG(wxLANGUAGE_SPANISH_MEXICAN, "es_MX", LANG_SPANISH , SUBLANG_SPANISH_MEXICAN , "Spanish (Mexican)") - LNG(wxLANGUAGE_SPANISH_MODERN, "es_ES", LANG_SPANISH , SUBLANG_SPANISH_MODERN , "Spanish (Modern)") - LNG(wxLANGUAGE_SPANISH_NICARAGUA, "es_NI", LANG_SPANISH , SUBLANG_SPANISH_NICARAGUA , "Spanish (Nicaragua)") - LNG(wxLANGUAGE_SPANISH_PANAMA, "es_PA", LANG_SPANISH , SUBLANG_SPANISH_PANAMA , "Spanish (Panama)") - LNG(wxLANGUAGE_SPANISH_PARAGUAY, "es_PY", LANG_SPANISH , SUBLANG_SPANISH_PARAGUAY , "Spanish (Paraguay)") - LNG(wxLANGUAGE_SPANISH_PERU, "es_PE", LANG_SPANISH , SUBLANG_SPANISH_PERU , "Spanish (Peru)") - LNG(wxLANGUAGE_SPANISH_PUERTO_RICO, "es_PR", LANG_SPANISH , SUBLANG_SPANISH_PUERTO_RICO , "Spanish (Puerto Rico)") - LNG(wxLANGUAGE_SPANISH_URUGUAY, "es_UY", LANG_SPANISH , SUBLANG_SPANISH_URUGUAY , "Spanish (Uruguay)") - LNG(wxLANGUAGE_SPANISH_US, "es_US", 0 , 0 , "Spanish (U.S.)") - LNG(wxLANGUAGE_SPANISH_VENEZUELA, "es_VE", LANG_SPANISH , SUBLANG_SPANISH_VENEZUELA , "Spanish (Venezuela)") - LNG(wxLANGUAGE_SUNDANESE, "su" , 0 , 0 , "Sundanese") - LNG(wxLANGUAGE_SWAHILI, "sw_KE", LANG_SWAHILI , SUBLANG_DEFAULT , "Swahili") - LNG(wxLANGUAGE_SWEDISH, "sv_SE", LANG_SWEDISH , SUBLANG_SWEDISH , "Swedish") - LNG(wxLANGUAGE_SWEDISH_FINLAND, "sv_FI", LANG_SWEDISH , SUBLANG_SWEDISH_FINLAND , "Swedish (Finland)") - LNG(wxLANGUAGE_TAGALOG, "tl_PH", 0 , 0 , "Tagalog") - LNG(wxLANGUAGE_TAJIK, "tg" , 0 , 0 , "Tajik") - LNG(wxLANGUAGE_TAMIL, "ta" , LANG_TAMIL , SUBLANG_DEFAULT , "Tamil") - LNG(wxLANGUAGE_TATAR, "tt" , LANG_TATAR , SUBLANG_DEFAULT , "Tatar") - LNG(wxLANGUAGE_TELUGU, "te" , LANG_TELUGU , SUBLANG_DEFAULT , "Telugu") - LNG(wxLANGUAGE_THAI, "th_TH", LANG_THAI , SUBLANG_DEFAULT , "Thai") - LNG(wxLANGUAGE_TIBETAN, "bo" , 0 , 0 , "Tibetan") - LNG(wxLANGUAGE_TIGRINYA, "ti" , 0 , 0 , "Tigrinya") - LNG(wxLANGUAGE_TONGA, "to" , 0 , 0 , "Tonga") - LNG(wxLANGUAGE_TSONGA, "ts" , 0 , 0 , "Tsonga") - LNG(wxLANGUAGE_TURKISH, "tr_TR", LANG_TURKISH , SUBLANG_DEFAULT , "Turkish") - LNG(wxLANGUAGE_TURKMEN, "tk" , 0 , 0 , "Turkmen") - LNG(wxLANGUAGE_TWI, "tw" , 0 , 0 , "Twi") - LNG(wxLANGUAGE_UIGHUR, "ug" , 0 , 0 , "Uighur") - LNG(wxLANGUAGE_UKRAINIAN, "uk_UA", LANG_UKRAINIAN , SUBLANG_DEFAULT , "Ukrainian") - LNG(wxLANGUAGE_URDU, "ur" , LANG_URDU , SUBLANG_DEFAULT , "Urdu") - LNG(wxLANGUAGE_URDU_INDIA, "ur_IN", LANG_URDU , SUBLANG_URDU_INDIA , "Urdu (India)") - LNG(wxLANGUAGE_URDU_PAKISTAN, "ur_PK", LANG_URDU , SUBLANG_URDU_PAKISTAN , "Urdu (Pakistan)") - LNG(wxLANGUAGE_UZBEK, "uz" , LANG_UZBEK , SUBLANG_DEFAULT , "Uzbek") - LNG(wxLANGUAGE_UZBEK_CYRILLIC, "uz" , LANG_UZBEK , SUBLANG_UZBEK_CYRILLIC , "Uzbek (Cyrillic)") - LNG(wxLANGUAGE_UZBEK_LATIN, "uz" , LANG_UZBEK , SUBLANG_UZBEK_LATIN , "Uzbek (Latin)") - LNG(wxLANGUAGE_VIETNAMESE, "vi_VN", LANG_VIETNAMESE, SUBLANG_DEFAULT , "Vietnamese") - LNG(wxLANGUAGE_VOLAPUK, "vo" , 0 , 0 , "Volapuk") - LNG(wxLANGUAGE_WELSH, "cy" , 0 , 0 , "Welsh") - LNG(wxLANGUAGE_WOLOF, "wo" , 0 , 0 , "Wolof") - LNG(wxLANGUAGE_XHOSA, "xh" , 0 , 0 , "Xhosa") - LNG(wxLANGUAGE_YIDDISH, "yi" , 0 , 0 , "Yiddish") - LNG(wxLANGUAGE_YORUBA, "yo" , 0 , 0 , "Yoruba") - LNG(wxLANGUAGE_ZHUANG, "za" , 0 , 0 , "Zhuang") - LNG(wxLANGUAGE_ZULU, "zu" , 0 , 0 , "Zulu") - + LNG(wxLANGUAGE_ABKHAZIAN, "ab" , 0 , 0 , wxLayout_LeftToRight, "Abkhazian") + LNG(wxLANGUAGE_AFAR, "aa" , 0 , 0 , wxLayout_LeftToRight, "Afar") + LNG(wxLANGUAGE_AFRIKAANS, "af_ZA", LANG_AFRIKAANS , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Afrikaans") + LNG(wxLANGUAGE_ALBANIAN, "sq_AL", LANG_ALBANIAN , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Albanian") + LNG(wxLANGUAGE_AMHARIC, "am" , 0 , 0 , wxLayout_LeftToRight, "Amharic") + LNG(wxLANGUAGE_ARABIC, "ar" , LANG_ARABIC , SUBLANG_DEFAULT , wxLayout_RightToLeft, "Arabic") + LNG(wxLANGUAGE_ARABIC_ALGERIA, "ar_DZ", LANG_ARABIC , SUBLANG_ARABIC_ALGERIA , wxLayout_RightToLeft, "Arabic (Algeria)") + LNG(wxLANGUAGE_ARABIC_BAHRAIN, "ar_BH", LANG_ARABIC , SUBLANG_ARABIC_BAHRAIN , wxLayout_RightToLeft, "Arabic (Bahrain)") + LNG(wxLANGUAGE_ARABIC_EGYPT, "ar_EG", LANG_ARABIC , SUBLANG_ARABIC_EGYPT , wxLayout_RightToLeft, "Arabic (Egypt)") + LNG(wxLANGUAGE_ARABIC_IRAQ, "ar_IQ", LANG_ARABIC , SUBLANG_ARABIC_IRAQ , wxLayout_RightToLeft, "Arabic (Iraq)") + LNG(wxLANGUAGE_ARABIC_JORDAN, "ar_JO", LANG_ARABIC , SUBLANG_ARABIC_JORDAN , wxLayout_RightToLeft, "Arabic (Jordan)") + LNG(wxLANGUAGE_ARABIC_KUWAIT, "ar_KW", LANG_ARABIC , SUBLANG_ARABIC_KUWAIT , wxLayout_RightToLeft, "Arabic (Kuwait)") + LNG(wxLANGUAGE_ARABIC_LEBANON, "ar_LB", LANG_ARABIC , SUBLANG_ARABIC_LEBANON , wxLayout_RightToLeft, "Arabic (Lebanon)") + LNG(wxLANGUAGE_ARABIC_LIBYA, "ar_LY", LANG_ARABIC , SUBLANG_ARABIC_LIBYA , wxLayout_RightToLeft, "Arabic (Libya)") + LNG(wxLANGUAGE_ARABIC_MOROCCO, "ar_MA", LANG_ARABIC , SUBLANG_ARABIC_MOROCCO , wxLayout_RightToLeft, "Arabic (Morocco)") + LNG(wxLANGUAGE_ARABIC_OMAN, "ar_OM", LANG_ARABIC , SUBLANG_ARABIC_OMAN , wxLayout_RightToLeft, "Arabic (Oman)") + LNG(wxLANGUAGE_ARABIC_QATAR, "ar_QA", LANG_ARABIC , SUBLANG_ARABIC_QATAR , wxLayout_RightToLeft, "Arabic (Qatar)") + LNG(wxLANGUAGE_ARABIC_SAUDI_ARABIA, "ar_SA", LANG_ARABIC , SUBLANG_ARABIC_SAUDI_ARABIA , wxLayout_RightToLeft, "Arabic (Saudi Arabia)") + LNG(wxLANGUAGE_ARABIC_SUDAN, "ar_SD", 0 , 0 , wxLayout_RightToLeft, "Arabic (Sudan)") + LNG(wxLANGUAGE_ARABIC_SYRIA, "ar_SY", LANG_ARABIC , SUBLANG_ARABIC_SYRIA , wxLayout_RightToLeft, "Arabic (Syria)") + LNG(wxLANGUAGE_ARABIC_TUNISIA, "ar_TN", LANG_ARABIC , SUBLANG_ARABIC_TUNISIA , wxLayout_RightToLeft, "Arabic (Tunisia)") + LNG(wxLANGUAGE_ARABIC_UAE, "ar_AE", LANG_ARABIC , SUBLANG_ARABIC_UAE , wxLayout_RightToLeft, "Arabic (Uae)") + LNG(wxLANGUAGE_ARABIC_YEMEN, "ar_YE", LANG_ARABIC , SUBLANG_ARABIC_YEMEN , wxLayout_RightToLeft, "Arabic (Yemen)") + LNG(wxLANGUAGE_ARMENIAN, "hy" , LANG_ARMENIAN , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Armenian") + LNG(wxLANGUAGE_ASSAMESE, "as" , LANG_ASSAMESE , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Assamese") + LNG(wxLANGUAGE_AYMARA, "ay" , 0 , 0 , wxLayout_LeftToRight, "Aymara") + LNG(wxLANGUAGE_AZERI, "az" , LANG_AZERI , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Azeri") + LNG(wxLANGUAGE_AZERI_CYRILLIC, "az" , LANG_AZERI , SUBLANG_AZERI_CYRILLIC , wxLayout_LeftToRight, "Azeri (Cyrillic)") + LNG(wxLANGUAGE_AZERI_LATIN, "az" , LANG_AZERI , SUBLANG_AZERI_LATIN , wxLayout_LeftToRight, "Azeri (Latin)") + LNG(wxLANGUAGE_BASHKIR, "ba" , 0 , 0 , wxLayout_LeftToRight, "Bashkir") + LNG(wxLANGUAGE_BASQUE, "eu_ES", LANG_BASQUE , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Basque") + LNG(wxLANGUAGE_BELARUSIAN, "be_BY", LANG_BELARUSIAN, SUBLANG_DEFAULT , wxLayout_LeftToRight, "Belarusian") + LNG(wxLANGUAGE_BENGALI, "bn" , LANG_BENGALI , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Bengali") + LNG(wxLANGUAGE_BHUTANI, "dz" , 0 , 0 , wxLayout_LeftToRight, "Bhutani") + LNG(wxLANGUAGE_BIHARI, "bh" , 0 , 0 , wxLayout_LeftToRight, "Bihari") + LNG(wxLANGUAGE_BISLAMA, "bi" , 0 , 0 , wxLayout_LeftToRight, "Bislama") + LNG(wxLANGUAGE_BRETON, "br" , 0 , 0 , wxLayout_LeftToRight, "Breton") + LNG(wxLANGUAGE_BULGARIAN, "bg_BG", LANG_BULGARIAN , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Bulgarian") + LNG(wxLANGUAGE_BURMESE, "my" , 0 , 0 , wxLayout_LeftToRight, "Burmese") + LNG(wxLANGUAGE_CAMBODIAN, "km" , 0 , 0 , wxLayout_LeftToRight, "Cambodian") + LNG(wxLANGUAGE_CATALAN, "ca_ES", LANG_CATALAN , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Catalan") + LNG(wxLANGUAGE_CHINESE, "zh_TW", LANG_CHINESE , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Chinese") + LNG(wxLANGUAGE_CHINESE_SIMPLIFIED, "zh_CN", LANG_CHINESE , SUBLANG_CHINESE_SIMPLIFIED , wxLayout_LeftToRight, "Chinese (Simplified)") + LNG(wxLANGUAGE_CHINESE_TRADITIONAL, "zh_TW", LANG_CHINESE , SUBLANG_CHINESE_TRADITIONAL , wxLayout_LeftToRight, "Chinese (Traditional)") + LNG(wxLANGUAGE_CHINESE_HONGKONG, "zh_HK", LANG_CHINESE , SUBLANG_CHINESE_HONGKONG , wxLayout_LeftToRight, "Chinese (Hongkong)") + LNG(wxLANGUAGE_CHINESE_MACAU, "zh_MO", LANG_CHINESE , SUBLANG_CHINESE_MACAU , wxLayout_LeftToRight, "Chinese (Macau)") + LNG(wxLANGUAGE_CHINESE_SINGAPORE, "zh_SG", LANG_CHINESE , SUBLANG_CHINESE_SINGAPORE , wxLayout_LeftToRight, "Chinese (Singapore)") + LNG(wxLANGUAGE_CHINESE_TAIWAN, "zh_TW", LANG_CHINESE , SUBLANG_CHINESE_TRADITIONAL , wxLayout_LeftToRight, "Chinese (Taiwan)") + LNG(wxLANGUAGE_CORSICAN, "co" , 0 , 0 , wxLayout_LeftToRight, "Corsican") + LNG(wxLANGUAGE_CROATIAN, "hr_HR", LANG_CROATIAN , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Croatian") + LNG(wxLANGUAGE_CZECH, "cs_CZ", LANG_CZECH , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Czech") + LNG(wxLANGUAGE_DANISH, "da_DK", LANG_DANISH , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Danish") + LNG(wxLANGUAGE_DUTCH, "nl_NL", LANG_DUTCH , SUBLANG_DUTCH , wxLayout_LeftToRight, "Dutch") + LNG(wxLANGUAGE_DUTCH_BELGIAN, "nl_BE", LANG_DUTCH , SUBLANG_DUTCH_BELGIAN , wxLayout_LeftToRight, "Dutch (Belgian)") + LNG(wxLANGUAGE_ENGLISH, "en_GB", LANG_ENGLISH , SUBLANG_ENGLISH_UK , wxLayout_LeftToRight, "English") + LNG(wxLANGUAGE_ENGLISH_UK, "en_GB", LANG_ENGLISH , SUBLANG_ENGLISH_UK , wxLayout_LeftToRight, "English (U.K.)") + LNG(wxLANGUAGE_ENGLISH_US, "en_US", LANG_ENGLISH , SUBLANG_ENGLISH_US , wxLayout_LeftToRight, "English (U.S.)") + LNG(wxLANGUAGE_ENGLISH_AUSTRALIA, "en_AU", LANG_ENGLISH , SUBLANG_ENGLISH_AUS , wxLayout_LeftToRight, "English (Australia)") + LNG(wxLANGUAGE_ENGLISH_BELIZE, "en_BZ", LANG_ENGLISH , SUBLANG_ENGLISH_BELIZE , wxLayout_LeftToRight, "English (Belize)") + LNG(wxLANGUAGE_ENGLISH_BOTSWANA, "en_BW", 0 , 0 , wxLayout_LeftToRight, "English (Botswana)") + LNG(wxLANGUAGE_ENGLISH_CANADA, "en_CA", LANG_ENGLISH , SUBLANG_ENGLISH_CAN , wxLayout_LeftToRight, "English (Canada)") + LNG(wxLANGUAGE_ENGLISH_CARIBBEAN, "en_CB", LANG_ENGLISH , SUBLANG_ENGLISH_CARIBBEAN , wxLayout_LeftToRight, "English (Caribbean)") + LNG(wxLANGUAGE_ENGLISH_DENMARK, "en_DK", 0 , 0 , wxLayout_LeftToRight, "English (Denmark)") + LNG(wxLANGUAGE_ENGLISH_EIRE, "en_IE", LANG_ENGLISH , SUBLANG_ENGLISH_EIRE , wxLayout_LeftToRight, "English (Eire)") + LNG(wxLANGUAGE_ENGLISH_JAMAICA, "en_JM", LANG_ENGLISH , SUBLANG_ENGLISH_JAMAICA , wxLayout_LeftToRight, "English (Jamaica)") + LNG(wxLANGUAGE_ENGLISH_NEW_ZEALAND, "en_NZ", LANG_ENGLISH , SUBLANG_ENGLISH_NZ , wxLayout_LeftToRight, "English (New Zealand)") + LNG(wxLANGUAGE_ENGLISH_PHILIPPINES, "en_PH", LANG_ENGLISH , SUBLANG_ENGLISH_PHILIPPINES , wxLayout_LeftToRight, "English (Philippines)") + LNG(wxLANGUAGE_ENGLISH_SOUTH_AFRICA, "en_ZA", LANG_ENGLISH , SUBLANG_ENGLISH_SOUTH_AFRICA , wxLayout_LeftToRight, "English (South Africa)") + LNG(wxLANGUAGE_ENGLISH_TRINIDAD, "en_TT", LANG_ENGLISH , SUBLANG_ENGLISH_TRINIDAD , wxLayout_LeftToRight, "English (Trinidad)") + LNG(wxLANGUAGE_ENGLISH_ZIMBABWE, "en_ZW", LANG_ENGLISH , SUBLANG_ENGLISH_ZIMBABWE , wxLayout_LeftToRight, "English (Zimbabwe)") + LNG(wxLANGUAGE_ESPERANTO, "eo" , 0 , 0 , wxLayout_LeftToRight, "Esperanto") + LNG(wxLANGUAGE_ESTONIAN, "et_EE", LANG_ESTONIAN , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Estonian") + LNG(wxLANGUAGE_FAEROESE, "fo_FO", LANG_FAEROESE , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Faeroese") + LNG(wxLANGUAGE_FARSI, "fa_IR", LANG_FARSI , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Farsi") + LNG(wxLANGUAGE_FIJI, "fj" , 0 , 0 , wxLayout_LeftToRight, "Fiji") + LNG(wxLANGUAGE_FINNISH, "fi_FI", LANG_FINNISH , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Finnish") + LNG(wxLANGUAGE_FRENCH, "fr_FR", LANG_FRENCH , SUBLANG_FRENCH , wxLayout_LeftToRight, "French") + LNG(wxLANGUAGE_FRENCH_BELGIAN, "fr_BE", LANG_FRENCH , SUBLANG_FRENCH_BELGIAN , wxLayout_LeftToRight, "French (Belgian)") + LNG(wxLANGUAGE_FRENCH_CANADIAN, "fr_CA", LANG_FRENCH , SUBLANG_FRENCH_CANADIAN , wxLayout_LeftToRight, "French (Canadian)") + LNG(wxLANGUAGE_FRENCH_LUXEMBOURG, "fr_LU", LANG_FRENCH , SUBLANG_FRENCH_LUXEMBOURG , wxLayout_LeftToRight, "French (Luxembourg)") + LNG(wxLANGUAGE_FRENCH_MONACO, "fr_MC", LANG_FRENCH , SUBLANG_FRENCH_MONACO , wxLayout_LeftToRight, "French (Monaco)") + LNG(wxLANGUAGE_FRENCH_SWISS, "fr_CH", LANG_FRENCH , SUBLANG_FRENCH_SWISS , wxLayout_LeftToRight, "French (Swiss)") + LNG(wxLANGUAGE_FRISIAN, "fy" , 0 , 0 , wxLayout_LeftToRight, "Frisian") + LNG(wxLANGUAGE_GALICIAN, "gl_ES", 0 , 0 , wxLayout_LeftToRight, "Galician") + LNG(wxLANGUAGE_GEORGIAN, "ka" , LANG_GEORGIAN , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Georgian") + LNG(wxLANGUAGE_GERMAN, "de_DE", LANG_GERMAN , SUBLANG_GERMAN , wxLayout_LeftToRight, "German") + LNG(wxLANGUAGE_GERMAN_AUSTRIAN, "de_AT", LANG_GERMAN , SUBLANG_GERMAN_AUSTRIAN , wxLayout_LeftToRight, "German (Austrian)") + LNG(wxLANGUAGE_GERMAN_BELGIUM, "de_BE", 0 , 0 , wxLayout_LeftToRight, "German (Belgium)") + LNG(wxLANGUAGE_GERMAN_LIECHTENSTEIN, "de_LI", LANG_GERMAN , SUBLANG_GERMAN_LIECHTENSTEIN , wxLayout_LeftToRight, "German (Liechtenstein)") + LNG(wxLANGUAGE_GERMAN_LUXEMBOURG, "de_LU", LANG_GERMAN , SUBLANG_GERMAN_LUXEMBOURG , wxLayout_LeftToRight, "German (Luxembourg)") + LNG(wxLANGUAGE_GERMAN_SWISS, "de_CH", LANG_GERMAN , SUBLANG_GERMAN_SWISS , wxLayout_LeftToRight, "German (Swiss)") + LNG(wxLANGUAGE_GREEK, "el_GR", LANG_GREEK , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Greek") + LNG(wxLANGUAGE_GREENLANDIC, "kl_GL", 0 , 0 , wxLayout_LeftToRight, "Greenlandic") + LNG(wxLANGUAGE_GUARANI, "gn" , 0 , 0 , wxLayout_LeftToRight, "Guarani") + LNG(wxLANGUAGE_GUJARATI, "gu" , LANG_GUJARATI , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Gujarati") + LNG(wxLANGUAGE_HAUSA, "ha" , 0 , 0 , wxLayout_LeftToRight, "Hausa") + LNG(wxLANGUAGE_HEBREW, "he_IL", LANG_HEBREW , SUBLANG_DEFAULT , wxLayout_RightToLeft, "Hebrew") + LNG(wxLANGUAGE_HINDI, "hi_IN", LANG_HINDI , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Hindi") + LNG(wxLANGUAGE_HUNGARIAN, "hu_HU", LANG_HUNGARIAN , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Hungarian") + LNG(wxLANGUAGE_ICELANDIC, "is_IS", LANG_ICELANDIC , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Icelandic") + LNG(wxLANGUAGE_INDONESIAN, "id_ID", LANG_INDONESIAN, SUBLANG_DEFAULT , wxLayout_LeftToRight, "Indonesian") + LNG(wxLANGUAGE_INTERLINGUA, "ia" , 0 , 0 , wxLayout_LeftToRight, "Interlingua") + LNG(wxLANGUAGE_INTERLINGUE, "ie" , 0 , 0 , wxLayout_LeftToRight, "Interlingue") + LNG(wxLANGUAGE_INUKTITUT, "iu" , 0 , 0 , wxLayout_LeftToRight, "Inuktitut") + LNG(wxLANGUAGE_INUPIAK, "ik" , 0 , 0 , wxLayout_LeftToRight, "Inupiak") + LNG(wxLANGUAGE_IRISH, "ga_IE", 0 , 0 , wxLayout_LeftToRight, "Irish") + LNG(wxLANGUAGE_ITALIAN, "it_IT", LANG_ITALIAN , SUBLANG_ITALIAN , wxLayout_LeftToRight, "Italian") + LNG(wxLANGUAGE_ITALIAN_SWISS, "it_CH", LANG_ITALIAN , SUBLANG_ITALIAN_SWISS , wxLayout_LeftToRight, "Italian (Swiss)") + LNG(wxLANGUAGE_JAPANESE, "ja_JP", LANG_JAPANESE , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Japanese") + LNG(wxLANGUAGE_JAVANESE, "jw" , 0 , 0 , wxLayout_LeftToRight, "Javanese") + LNG(wxLANGUAGE_KANNADA, "kn" , LANG_KANNADA , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Kannada") + LNG(wxLANGUAGE_KASHMIRI, "ks" , LANG_KASHMIRI , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Kashmiri") + LNG(wxLANGUAGE_KASHMIRI_INDIA, "ks_IN", LANG_KASHMIRI , SUBLANG_KASHMIRI_INDIA , wxLayout_LeftToRight, "Kashmiri (India)") + LNG(wxLANGUAGE_KAZAKH, "kk" , LANG_KAZAK , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Kazakh") + LNG(wxLANGUAGE_KERNEWEK, "kw_GB", 0 , 0 , wxLayout_LeftToRight, "Kernewek") + LNG(wxLANGUAGE_KINYARWANDA, "rw" , 0 , 0 , wxLayout_LeftToRight, "Kinyarwanda") + LNG(wxLANGUAGE_KIRGHIZ, "ky" , 0 , 0 , wxLayout_LeftToRight, "Kirghiz") + LNG(wxLANGUAGE_KIRUNDI, "rn" , 0 , 0 , wxLayout_LeftToRight, "Kirundi") + LNG(wxLANGUAGE_KONKANI, "" , LANG_KONKANI , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Konkani") + LNG(wxLANGUAGE_KOREAN, "ko_KR", LANG_KOREAN , SUBLANG_KOREAN , wxLayout_LeftToRight, "Korean") + LNG(wxLANGUAGE_KURDISH, "ku" , 0 , 0 , wxLayout_LeftToRight, "Kurdish") + LNG(wxLANGUAGE_LAOTHIAN, "lo" , 0 , 0 , wxLayout_LeftToRight, "Laothian") + LNG(wxLANGUAGE_LATIN, "la" , 0 , 0 , wxLayout_LeftToRight, "Latin") + LNG(wxLANGUAGE_LATVIAN, "lv_LV", LANG_LATVIAN , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Latvian") + LNG(wxLANGUAGE_LINGALA, "ln" , 0 , 0 , wxLayout_LeftToRight, "Lingala") + LNG(wxLANGUAGE_LITHUANIAN, "lt_LT", LANG_LITHUANIAN, SUBLANG_LITHUANIAN , wxLayout_LeftToRight, "Lithuanian") + LNG(wxLANGUAGE_MACEDONIAN, "mk_MK", LANG_MACEDONIAN, SUBLANG_DEFAULT , wxLayout_LeftToRight, "Macedonian") + LNG(wxLANGUAGE_MALAGASY, "mg" , 0 , 0 , wxLayout_LeftToRight, "Malagasy") + LNG(wxLANGUAGE_MALAY, "ms_MY", LANG_MALAY , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Malay") + LNG(wxLANGUAGE_MALAYALAM, "ml" , LANG_MALAYALAM , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Malayalam") + LNG(wxLANGUAGE_MALAY_BRUNEI_DARUSSALAM, "ms_BN", LANG_MALAY , SUBLANG_MALAY_BRUNEI_DARUSSALAM , wxLayout_LeftToRight, "Malay (Brunei Darussalam)") + LNG(wxLANGUAGE_MALAY_MALAYSIA, "ms_MY", LANG_MALAY , SUBLANG_MALAY_MALAYSIA , wxLayout_LeftToRight, "Malay (Malaysia)") + LNG(wxLANGUAGE_MALTESE, "mt_MT", 0 , 0 , wxLayout_LeftToRight, "Maltese") + LNG(wxLANGUAGE_MANIPURI, "" , LANG_MANIPURI , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Manipuri") + LNG(wxLANGUAGE_MAORI, "mi" , 0 , 0 , wxLayout_LeftToRight, "Maori") + LNG(wxLANGUAGE_MARATHI, "mr_IN", LANG_MARATHI , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Marathi") + LNG(wxLANGUAGE_MOLDAVIAN, "mo" , 0 , 0 , wxLayout_LeftToRight, "Moldavian") + LNG(wxLANGUAGE_MONGOLIAN, "mn" , 0 , 0 , wxLayout_LeftToRight, "Mongolian") + LNG(wxLANGUAGE_NAURU, "na" , 0 , 0 , wxLayout_LeftToRight, "Nauru") + LNG(wxLANGUAGE_NEPALI, "ne" , LANG_NEPALI , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Nepali") + LNG(wxLANGUAGE_NEPALI_INDIA, "ne_IN", LANG_NEPALI , SUBLANG_NEPALI_INDIA , wxLayout_LeftToRight, "Nepali (India)") + LNG(wxLANGUAGE_NORWEGIAN_BOKMAL, "nb_NO", LANG_NORWEGIAN , SUBLANG_NORWEGIAN_BOKMAL , wxLayout_LeftToRight, "Norwegian (Bokmal)") + LNG(wxLANGUAGE_NORWEGIAN_NYNORSK, "nn_NO", LANG_NORWEGIAN , SUBLANG_NORWEGIAN_NYNORSK , wxLayout_LeftToRight, "Norwegian (Nynorsk)") + LNG(wxLANGUAGE_OCCITAN, "oc" , 0 , 0 , wxLayout_LeftToRight, "Occitan") + LNG(wxLANGUAGE_ORIYA, "or" , LANG_ORIYA , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Oriya") + LNG(wxLANGUAGE_OROMO, "om" , 0 , 0 , wxLayout_LeftToRight, "(Afan) Oromo") + LNG(wxLANGUAGE_PASHTO, "ps" , 0 , 0 , wxLayout_LeftToRight, "Pashto, Pushto") + LNG(wxLANGUAGE_POLISH, "pl_PL", LANG_POLISH , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Polish") + LNG(wxLANGUAGE_PORTUGUESE, "pt_PT", LANG_PORTUGUESE, SUBLANG_PORTUGUESE , wxLayout_LeftToRight, "Portuguese") + LNG(wxLANGUAGE_PORTUGUESE_BRAZILIAN, "pt_BR", LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN , wxLayout_LeftToRight, "Portuguese (Brazilian)") + LNG(wxLANGUAGE_PUNJABI, "pa" , LANG_PUNJABI , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Punjabi") + LNG(wxLANGUAGE_QUECHUA, "qu" , 0 , 0 , wxLayout_LeftToRight, "Quechua") + LNG(wxLANGUAGE_RHAETO_ROMANCE, "rm" , 0 , 0 , wxLayout_LeftToRight, "Rhaeto-Romance") + LNG(wxLANGUAGE_ROMANIAN, "ro_RO", LANG_ROMANIAN , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Romanian") + LNG(wxLANGUAGE_RUSSIAN, "ru_RU", LANG_RUSSIAN , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Russian") + LNG(wxLANGUAGE_RUSSIAN_UKRAINE, "ru_UA", 0 , 0 , wxLayout_LeftToRight, "Russian (Ukraine)") + LNG(wxLANGUAGE_SAMOAN, "sm" , 0 , 0 , wxLayout_LeftToRight, "Samoan") + LNG(wxLANGUAGE_SANGHO, "sg" , 0 , 0 , wxLayout_LeftToRight, "Sangho") + LNG(wxLANGUAGE_SANSKRIT, "sa" , LANG_SANSKRIT , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Sanskrit") + LNG(wxLANGUAGE_SCOTS_GAELIC, "gd" , 0 , 0 , wxLayout_LeftToRight, "Scots Gaelic") + LNG(wxLANGUAGE_SERBIAN_CYRILLIC, "sr_YU", LANG_SERBIAN , SUBLANG_SERBIAN_CYRILLIC , wxLayout_LeftToRight, "Serbian (Cyrillic)") + LNG(wxLANGUAGE_SERBIAN_LATIN, "sr_YU", LANG_SERBIAN , SUBLANG_SERBIAN_LATIN , wxLayout_LeftToRight, "Serbian (Latin)") + LNG(wxLANGUAGE_SERBO_CROATIAN, "sh" , 0 , 0 , wxLayout_LeftToRight, "Serbo-Croatian") + LNG(wxLANGUAGE_SESOTHO, "st" , 0 , 0 , wxLayout_LeftToRight, "Sesotho") + LNG(wxLANGUAGE_SETSWANA, "tn" , 0 , 0 , wxLayout_LeftToRight, "Setswana") + LNG(wxLANGUAGE_SHONA, "sn" , 0 , 0 , wxLayout_LeftToRight, "Shona") + LNG(wxLANGUAGE_SINDHI, "sd" , LANG_SINDHI , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Sindhi") + LNG(wxLANGUAGE_SINHALESE, "si" , 0 , 0 , wxLayout_LeftToRight, "Sinhalese") + LNG(wxLANGUAGE_SISWATI, "ss" , 0 , 0 , wxLayout_LeftToRight, "Siswati") + LNG(wxLANGUAGE_SLOVAK, "sk_SK", LANG_SLOVAK , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Slovak") + LNG(wxLANGUAGE_SLOVENIAN, "sl_SI", LANG_SLOVENIAN , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Slovenian") + LNG(wxLANGUAGE_SOMALI, "so" , 0 , 0 , wxLayout_LeftToRight, "Somali") + LNG(wxLANGUAGE_SPANISH, "es_ES", LANG_SPANISH , SUBLANG_SPANISH , wxLayout_LeftToRight, "Spanish") + LNG(wxLANGUAGE_SPANISH_ARGENTINA, "es_AR", LANG_SPANISH , SUBLANG_SPANISH_ARGENTINA , wxLayout_LeftToRight, "Spanish (Argentina)") + LNG(wxLANGUAGE_SPANISH_BOLIVIA, "es_BO", LANG_SPANISH , SUBLANG_SPANISH_BOLIVIA , wxLayout_LeftToRight, "Spanish (Bolivia)") + LNG(wxLANGUAGE_SPANISH_CHILE, "es_CL", LANG_SPANISH , SUBLANG_SPANISH_CHILE , wxLayout_LeftToRight, "Spanish (Chile)") + LNG(wxLANGUAGE_SPANISH_COLOMBIA, "es_CO", LANG_SPANISH , SUBLANG_SPANISH_COLOMBIA , wxLayout_LeftToRight, "Spanish (Colombia)") + LNG(wxLANGUAGE_SPANISH_COSTA_RICA, "es_CR", LANG_SPANISH , SUBLANG_SPANISH_COSTA_RICA , wxLayout_LeftToRight, "Spanish (Costa Rica)") + LNG(wxLANGUAGE_SPANISH_DOMINICAN_REPUBLIC, "es_DO", LANG_SPANISH , SUBLANG_SPANISH_DOMINICAN_REPUBLIC, wxLayout_LeftToRight, "Spanish (Dominican republic)") + LNG(wxLANGUAGE_SPANISH_ECUADOR, "es_EC", LANG_SPANISH , SUBLANG_SPANISH_ECUADOR , wxLayout_LeftToRight, "Spanish (Ecuador)") + LNG(wxLANGUAGE_SPANISH_EL_SALVADOR, "es_SV", LANG_SPANISH , SUBLANG_SPANISH_EL_SALVADOR , wxLayout_LeftToRight, "Spanish (El Salvador)") + LNG(wxLANGUAGE_SPANISH_GUATEMALA, "es_GT", LANG_SPANISH , SUBLANG_SPANISH_GUATEMALA , wxLayout_LeftToRight, "Spanish (Guatemala)") + LNG(wxLANGUAGE_SPANISH_HONDURAS, "es_HN", LANG_SPANISH , SUBLANG_SPANISH_HONDURAS , wxLayout_LeftToRight, "Spanish (Honduras)") + LNG(wxLANGUAGE_SPANISH_MEXICAN, "es_MX", LANG_SPANISH , SUBLANG_SPANISH_MEXICAN , wxLayout_LeftToRight, "Spanish (Mexican)") + LNG(wxLANGUAGE_SPANISH_MODERN, "es_ES", LANG_SPANISH , SUBLANG_SPANISH_MODERN , wxLayout_LeftToRight, "Spanish (Modern)") + LNG(wxLANGUAGE_SPANISH_NICARAGUA, "es_NI", LANG_SPANISH , SUBLANG_SPANISH_NICARAGUA , wxLayout_LeftToRight, "Spanish (Nicaragua)") + LNG(wxLANGUAGE_SPANISH_PANAMA, "es_PA", LANG_SPANISH , SUBLANG_SPANISH_PANAMA , wxLayout_LeftToRight, "Spanish (Panama)") + LNG(wxLANGUAGE_SPANISH_PARAGUAY, "es_PY", LANG_SPANISH , SUBLANG_SPANISH_PARAGUAY , wxLayout_LeftToRight, "Spanish (Paraguay)") + LNG(wxLANGUAGE_SPANISH_PERU, "es_PE", LANG_SPANISH , SUBLANG_SPANISH_PERU , wxLayout_LeftToRight, "Spanish (Peru)") + LNG(wxLANGUAGE_SPANISH_PUERTO_RICO, "es_PR", LANG_SPANISH , SUBLANG_SPANISH_PUERTO_RICO , wxLayout_LeftToRight, "Spanish (Puerto Rico)") + LNG(wxLANGUAGE_SPANISH_URUGUAY, "es_UY", LANG_SPANISH , SUBLANG_SPANISH_URUGUAY , wxLayout_LeftToRight, "Spanish (Uruguay)") + LNG(wxLANGUAGE_SPANISH_US, "es_US", 0 , 0 , wxLayout_LeftToRight, "Spanish (U.S.)") + LNG(wxLANGUAGE_SPANISH_VENEZUELA, "es_VE", LANG_SPANISH , SUBLANG_SPANISH_VENEZUELA , wxLayout_LeftToRight, "Spanish (Venezuela)") + LNG(wxLANGUAGE_SUNDANESE, "su" , 0 , 0 , wxLayout_LeftToRight, "Sundanese") + LNG(wxLANGUAGE_SWAHILI, "sw_KE", LANG_SWAHILI , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Swahili") + LNG(wxLANGUAGE_SWEDISH, "sv_SE", LANG_SWEDISH , SUBLANG_SWEDISH , wxLayout_LeftToRight, "Swedish") + LNG(wxLANGUAGE_SWEDISH_FINLAND, "sv_FI", LANG_SWEDISH , SUBLANG_SWEDISH_FINLAND , wxLayout_LeftToRight, "Swedish (Finland)") + LNG(wxLANGUAGE_TAGALOG, "tl_PH", 0 , 0 , wxLayout_LeftToRight, "Tagalog") + LNG(wxLANGUAGE_TAJIK, "tg" , 0 , 0 , wxLayout_LeftToRight, "Tajik") + LNG(wxLANGUAGE_TAMIL, "ta" , LANG_TAMIL , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Tamil") + LNG(wxLANGUAGE_TATAR, "tt" , LANG_TATAR , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Tatar") + LNG(wxLANGUAGE_TELUGU, "te" , LANG_TELUGU , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Telugu") + LNG(wxLANGUAGE_THAI, "th_TH", LANG_THAI , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Thai") + LNG(wxLANGUAGE_TIBETAN, "bo" , 0 , 0 , wxLayout_LeftToRight, "Tibetan") + LNG(wxLANGUAGE_TIGRINYA, "ti" , 0 , 0 , wxLayout_LeftToRight, "Tigrinya") + LNG(wxLANGUAGE_TONGA, "to" , 0 , 0 , wxLayout_LeftToRight, "Tonga") + LNG(wxLANGUAGE_TSONGA, "ts" , 0 , 0 , wxLayout_LeftToRight, "Tsonga") + LNG(wxLANGUAGE_TURKISH, "tr_TR", LANG_TURKISH , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Turkish") + LNG(wxLANGUAGE_TURKMEN, "tk" , 0 , 0 , wxLayout_LeftToRight, "Turkmen") + LNG(wxLANGUAGE_TWI, "tw" , 0 , 0 , wxLayout_LeftToRight, "Twi") + LNG(wxLANGUAGE_UIGHUR, "ug" , 0 , 0 , wxLayout_LeftToRight, "Uighur") + LNG(wxLANGUAGE_UKRAINIAN, "uk_UA", LANG_UKRAINIAN , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Ukrainian") + LNG(wxLANGUAGE_URDU, "ur" , LANG_URDU , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Urdu") + LNG(wxLANGUAGE_URDU_INDIA, "ur_IN", LANG_URDU , SUBLANG_URDU_INDIA , wxLayout_LeftToRight, "Urdu (India)") + LNG(wxLANGUAGE_URDU_PAKISTAN, "ur_PK", LANG_URDU , SUBLANG_URDU_PAKISTAN , wxLayout_LeftToRight, "Urdu (Pakistan)") + LNG(wxLANGUAGE_UZBEK, "uz" , LANG_UZBEK , SUBLANG_DEFAULT , wxLayout_LeftToRight, "Uzbek") + LNG(wxLANGUAGE_UZBEK_CYRILLIC, "uz" , LANG_UZBEK , SUBLANG_UZBEK_CYRILLIC , wxLayout_LeftToRight, "Uzbek (Cyrillic)") + LNG(wxLANGUAGE_UZBEK_LATIN, "uz" , LANG_UZBEK , SUBLANG_UZBEK_LATIN , wxLayout_LeftToRight, "Uzbek (Latin)") + LNG(wxLANGUAGE_VIETNAMESE, "vi_VN", LANG_VIETNAMESE, SUBLANG_DEFAULT , wxLayout_LeftToRight, "Vietnamese") + LNG(wxLANGUAGE_VOLAPUK, "vo" , 0 , 0 , wxLayout_LeftToRight, "Volapuk") + LNG(wxLANGUAGE_WELSH, "cy" , 0 , 0 , wxLayout_LeftToRight, "Welsh") + LNG(wxLANGUAGE_WOLOF, "wo" , 0 , 0 , wxLayout_LeftToRight, "Wolof") + LNG(wxLANGUAGE_XHOSA, "xh" , 0 , 0 , wxLayout_LeftToRight, "Xhosa") + LNG(wxLANGUAGE_YIDDISH, "yi" , 0 , 0 , wxLayout_LeftToRight, "Yiddish") + LNG(wxLANGUAGE_YORUBA, "yo" , 0 , 0 , wxLayout_LeftToRight, "Yoruba") + LNG(wxLANGUAGE_ZHUANG, "za" , 0 , 0 , wxLayout_LeftToRight, "Zhuang") + LNG(wxLANGUAGE_ZULU, "zu" , 0 , 0 , wxLayout_LeftToRight, "Zulu") } #undef LNG diff --git a/src/common/sizer.cpp b/src/common/sizer.cpp index 6c536703f1..ed390865d6 100644 --- a/src/common/sizer.cpp +++ b/src/common/sizer.cpp @@ -1695,6 +1695,16 @@ void wxBoxSizer::RecalcSizes() // wxALIGN_CENTER should be used in new code child_pos.y += (m_size.y - size.y) / 2; + if ( m_containingWindow ) + { + child_pos.x = m_containingWindow->AdjustForLayoutDirection + ( + child_pos.x, + width, + m_size.x + ); + } + item->SetDimension( child_pos, child_size ); pt.x += width; diff --git a/src/common/wincmn.cpp b/src/common/wincmn.cpp index fd9f090d5e..a75b82f1da 100644 --- a/src/common/wincmn.cpp +++ b/src/common/wincmn.cpp @@ -2980,3 +2980,21 @@ wxAccStatus wxWindowAccessible::GetSelections(wxVariant* WXUNUSED(selections)) } #endif // wxUSE_ACCESSIBILITY + +// ---------------------------------------------------------------------------- +// RTL support +// ---------------------------------------------------------------------------- + +wxCoord +wxWindowBase::AdjustForLayoutDirection(wxCoord x, + wxCoord width, + wxCoord widthTotal) const +{ + if ( GetLayoutDirection() == wxLayout_RightToLeft ) + { + x = widthTotal - x - width; + } + + return x; +} + diff --git a/src/gtk/menu.cpp b/src/gtk/menu.cpp index e38027d8e2..993c2881bd 100644 --- a/src/gtk/menu.cpp +++ b/src/gtk/menu.cpp @@ -255,6 +255,50 @@ void wxMenuBar::SetInvokingWindow( wxWindow *win ) } } +void wxMenuBar::SetLayoutDirection(wxLayoutDirection dir) +{ + if ( dir == wxLayout_Default ) + { + const wxWindow *const frame = GetFrame(); + if ( frame ) + { + // inherit layout from frame. + dir = frame->GetLayoutDirection(); + } + else // use global layout + { + dir = wxTheApp->GetLayoutDirection(); + } + } + + if ( dir == wxLayout_Default ) + return; + + GTKSetLayout(m_menubar, dir); + + // also set the layout of all menus we already have (new ones will inherit + // the current layout) + for ( wxMenuList::compatibility_iterator node = m_menus.GetFirst(); + node; + node = node->GetNext() ) + { + wxMenu *const menu = node->GetData(); + menu->SetLayoutDirection(dir); + } +} + +wxLayoutDirection wxMenuBar::GetLayoutDirection() const +{ + return GTKGetLayout(m_menubar); +} + +void wxMenuBar::Attach(wxFrame *frame) +{ + wxMenuBarBase::Attach(frame); + + SetLayoutDirection(wxLayout_Default); +} + void wxMenuBar::UnsetInvokingWindow( wxWindow *win ) { m_invokingWindow = (wxWindow*) NULL; @@ -288,6 +332,7 @@ bool wxMenuBar::GtkAppend(wxMenu *menu, const wxString& title, int pos) // The "m_owner" is the "menu item" menu->m_owner = gtk_menu_item_new_with_mnemonic( wxGTK_CONV( str ) ); + menu->SetLayoutDirection(GetLayoutDirection()); gtk_widget_show( menu->m_owner ); @@ -987,6 +1032,18 @@ wxMenu::~wxMenu() } } +void wxMenu::SetLayoutDirection(const wxLayoutDirection dir) +{ + if ( m_owner ) + wxWindow::GTKSetLayout(m_owner, dir); + //else: will be called later by wxMenuBar again +} + +wxLayoutDirection wxMenu::GetLayoutDirection() const +{ + return wxWindow::GTKGetLayout(m_owner); +} + bool wxMenu::GtkAppend(wxMenuItem *mitem, int pos) { GtkWidget *menuItem; @@ -1225,6 +1282,14 @@ int wxMenu::FindMenuIdByMenuItem( GtkWidget *menuItem ) const return wxNOT_FOUND; } +void wxMenu::Attach(wxMenuBarBase *menubar) +{ + wxMenuBase::Attach(menubar); + + // inherit layout direction from menubar. + SetLayoutDirection(menubar->GetLayoutDirection()); +} + // ---------------------------------------------------------------------------- // helpers // ---------------------------------------------------------------------------- diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp index 41ffc396b3..f5499b38df 100644 --- a/src/gtk/window.cpp +++ b/src/gtk/window.cpp @@ -2690,6 +2690,8 @@ void wxWindowGTK::PostCreation() InheritAttributes(); m_hasVMT = true; + + SetLayoutDirection(wxLayout_Default); // unless the window was created initially hidden (i.e. Hide() had been // called before Create()), we should show it at GTK+ level as well @@ -3393,6 +3395,8 @@ bool wxWindowGTK::Reparent( wxWindowBase *newParentBase ) /* reverse: prevent GTK from deleting the widget arbitrarily */ gtk_widget_unref( m_widget ); + + SetLayoutDirection(wxLayout_Default); return true; } @@ -3428,6 +3432,51 @@ void wxWindowGTK::RemoveChild(wxWindowBase *child) wxapp_install_idle_handler(); } +/* static */ +wxLayoutDirection wxWindowGTK::GTKGetLayout(GtkWidget *widget) +{ + return gtk_widget_get_direction(GTK_WIDGET(widget)) == GTK_TEXT_DIR_RTL + ? wxLayout_RightToLeft + : wxLayout_LeftToRight; +} + +/* static */ +void wxWindowGTK::GTKSetLayout(GtkWidget *widget, wxLayoutDirection dir) +{ + wxASSERT_MSG( dir != wxLayout_Default, _T("invalid layout direction") ); + + gtk_widget_set_direction(GTK_WIDGET(widget), + dir == wxLayout_RightToLeft ? GTK_TEXT_DIR_RTL + : GTK_TEXT_DIR_LTR); +} + +wxLayoutDirection wxWindowGTK::GetLayoutDirection() const +{ + return GTKGetLayout(m_widget); +} + +void wxWindowGTK::SetLayoutDirection(wxLayoutDirection dir) +{ + if ( dir == wxLayout_Default ) + { + const wxWindow *const parent = GetParent(); + if ( parent ) + { + // inherit layout from parent. + dir = parent->GetLayoutDirection(); + } + else // no parent, use global default layout + { + dir = wxTheApp->GetLayoutDirection(); + } + } + + if ( dir == wxLayout_Default ) + return; + + GTKSetLayout(m_widget, dir); +} + void wxWindowGTK::DoMoveInTabOrder(wxWindow *win, MoveKind move) { wxWindowBase::DoMoveInTabOrder(win, move); diff --git a/src/msw/msgdlg.cpp b/src/msw/msgdlg.cpp index 41cb6a49a8..c8aaa8ef73 100644 --- a/src/msw/msgdlg.cpp +++ b/src/msw/msgdlg.cpp @@ -97,6 +97,9 @@ int wxMessageDialog::ShowModal() if ( wxStyle & wxSTAY_ON_TOP ) msStyle |= MB_TOPMOST; + if ( wxTheApp->GetLayoutDirection() == wxLayout_RightToLeft ) + msStyle |= MB_RTLREADING | MB_RIGHT; + if (hWnd) msStyle |= MB_APPLMODAL; else diff --git a/src/msw/tooltip.cpp b/src/msw/tooltip.cpp index 0f3f8558d8..b18f806040 100644 --- a/src/msw/tooltip.cpp +++ b/src/msw/tooltip.cpp @@ -203,16 +203,23 @@ WXHWND wxToolTip::GetToolTipCtrl() { if ( !ms_hwndTT ) { + WXDWORD exflags = 0; + if ( wxTheApp->GetLayoutDirection() == wxLayout_RightToLeft ) + { + exflags |= WS_EX_LAYOUTRTL; + } + // we want to show the tooltips always (even when the window is not // active) and we don't want to strip "&"s from them - ms_hwndTT = (WXHWND)::CreateWindow(TOOLTIPS_CLASS, - (LPCTSTR)NULL, - TTS_ALWAYSTIP | TTS_NOPREFIX, - CW_USEDEFAULT, CW_USEDEFAULT, - CW_USEDEFAULT, CW_USEDEFAULT, - NULL, (HMENU)NULL, - wxGetInstance(), - NULL); + ms_hwndTT = (WXHWND)::CreateWindowEx(exflags, + TOOLTIPS_CLASS, + (LPCTSTR)NULL, + TTS_ALWAYSTIP | TTS_NOPREFIX, + CW_USEDEFAULT, CW_USEDEFAULT, + CW_USEDEFAULT, CW_USEDEFAULT, + NULL, (HMENU)NULL, + wxGetInstance(), + NULL); if ( ms_hwndTT ) { HWND hwnd = (HWND)ms_hwndTT; diff --git a/src/msw/toplevel.cpp b/src/msw/toplevel.cpp index 4b1301b55f..214fbc7718 100644 --- a/src/msw/toplevel.cpp +++ b/src/msw/toplevel.cpp @@ -503,6 +503,9 @@ bool wxTopLevelWindowMSW::CreateFrame(const wxString& title, const wxSize sz = IsAlwaysMaximized() ? wxDefaultSize : size; + if ( wxTheApp->GetLayoutDirection() == wxLayout_RightToLeft ) + exflags |= WS_EX_LAYOUTRTL; + return MSWCreate(wxCanvasClassName, title, pos, sz, flags, exflags); } @@ -561,6 +564,11 @@ bool wxTopLevelWindowMSW::Create(wxWindow *parent, // all dialogs are popups dlgTemplate->style |= WS_POPUP; + + if ( wxTheApp->GetLayoutDirection() == wxLayout_RightToLeft ) + { + dlgTemplate->dwExtendedStyle |= WS_EX_LAYOUTRTL; + } #ifndef __WXWINCE__ // force 3D-look if necessary, it looks impossibly ugly otherwise @@ -761,6 +769,15 @@ void wxTopLevelWindowMSW::Restore() DoShowWindow(SW_RESTORE); } +void wxTopLevelWindowMSW::SetLayoutDirection(wxLayoutDirection dir) +{ + if ( dir == wxLayout_Default ) + dir = wxTheApp->GetLayoutDirection(); + + if ( dir != wxLayout_Default ) + wxTopLevelWindowBase::SetLayoutDirection(dir); +} + // ---------------------------------------------------------------------------- // wxTopLevelWindowMSW fullscreen // ---------------------------------------------------------------------------- diff --git a/src/msw/window.cpp b/src/msw/window.cpp index eea6424f01..1a4014b420 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -1018,6 +1018,59 @@ bool wxWindowMSW::ScrollPages(int pages) down ? pages : -pages); } +// ---------------------------------------------------------------------------- +// RTL support +// ---------------------------------------------------------------------------- + +void wxWindowMSW::SetLayoutDirection(wxLayoutDirection dir) +{ + const HWND hwnd = GetHwnd(); + wxCHECK_RET( hwnd, _T("layout direction must be set after window creation") ); + + LONG styleOld = ::GetWindowLong(hwnd, GWL_EXSTYLE); + + LONG styleNew = styleOld; + switch ( dir ) + { + case wxLayout_LeftToRight: + styleNew &= ~WS_EX_LAYOUTRTL; + break; + + case wxLayout_RightToLeft: + styleNew |= WS_EX_LAYOUTRTL; + break; + + default: + wxFAIL_MSG(_T("unsupported layout direction")); + break; + } + + if ( styleNew != styleOld ) + { + ::SetWindowLong(hwnd, GWL_EXSTYLE, styleNew); + } +} + +wxLayoutDirection wxWindowMSW::GetLayoutDirection() const +{ + const HWND hwnd = GetHwnd(); + wxCHECK_MSG( hwnd, wxLayout_Default, _T("invalid window") ); + + return ::GetWindowLong(hwnd, GWL_EXSTYLE) & WS_EX_LAYOUTRTL + ? wxLayout_RightToLeft + : wxLayout_LeftToRight; +} + +wxCoord +wxWindowMSW::AdjustForLayoutDirection(wxCoord x, + wxCoord WXUNUSED(width), + wxCoord WXUNUSED(widthTotal)) const +{ + // Win32 mirrors the coordinates of RTL windows automatically, so don't + // redo it ourselves + return x; +} + // --------------------------------------------------------------------------- // subclassing // --------------------------------------------------------------------------- -- 2.45.2