]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/translation.h
support SDK < 10.6, fixes #14902
[wxWidgets.git] / include / wx / translation.h
index abd92a6d27d449cfeea1432b9ac65716b8d44194..c12ae52046d6fb7f05680400983f07faa5425a46 100644 (file)
@@ -48,6 +48,7 @@
 // forward decls
 // ----------------------------------------------------------------------------
 
 // forward decls
 // ----------------------------------------------------------------------------
 
+class WXDLLIMPEXP_FWD_BASE wxArrayString;
 class WXDLLIMPEXP_FWD_BASE wxTranslationsLoader;
 class WXDLLIMPEXP_FWD_BASE wxLocale;
 
 class WXDLLIMPEXP_FWD_BASE wxTranslationsLoader;
 class WXDLLIMPEXP_FWD_BASE wxLocale;
 
@@ -61,6 +62,12 @@ wxDECLARE_SCOPED_PTR(wxPluralFormsCalculator, wxPluralFormsCalculatorPtr)
 class WXDLLIMPEXP_BASE wxMsgCatalog
 {
 public:
 class WXDLLIMPEXP_BASE wxMsgCatalog
 {
 public:
+    // Ctor is protected, because CreateFromXXX functions must be used,
+    // but destruction should be unrestricted
+#if !wxUSE_UNICODE
+    ~wxMsgCatalog();
+#endif
+
     // load the catalog from disk or from data; caller is responsible for
     // deleting them if not NULL
     static wxMsgCatalog *CreateFromFile(const wxString& filename,
     // load the catalog from disk or from data; caller is responsible for
     // deleting them if not NULL
     static wxMsgCatalog *CreateFromFile(const wxString& filename,
@@ -82,9 +89,6 @@ protected:
         , m_conv(NULL)
 #endif
     {}
         , m_conv(NULL)
 #endif
     {}
-#if !wxUSE_UNICODE
-    ~wxMsgCatalog();
-#endif
 
 private:
     // variable pointing to the next element in a linked list (or NULL)
 
 private:
     // variable pointing to the next element in a linked list (or NULL)
@@ -125,6 +129,14 @@ public:
     void SetLanguage(wxLanguage lang);
     void SetLanguage(const wxString& lang);
 
     void SetLanguage(wxLanguage lang);
     void SetLanguage(const wxString& lang);
 
+    // get languages available for this app
+    wxArrayString GetAvailableTranslations(const wxString& domain) const;
+
+    // find best translation language for given domain
+    wxString GetBestTranslation(const wxString& domain, wxLanguage msgIdLanguage);
+    wxString GetBestTranslation(const wxString& domain,
+                                const wxString& msgIdLanguage = "en");
+
     // add standard wxWidgets catalog ("wxstd")
     bool AddStdCatalog();
 
     // add standard wxWidgets catalog ("wxstd")
     bool AddStdCatalog();
 
@@ -161,10 +173,6 @@ private:
     // perform loading of the catalog via m_loader
     bool LoadCatalog(const wxString& domain, const wxString& lang);
 
     // perform loading of the catalog via m_loader
     bool LoadCatalog(const wxString& domain, const wxString& lang);
 
-    // find best translation for given domain
-    wxString ChooseLanguageForDomain(const wxString& domain,
-                                     const wxString& msgIdLang);
-
     // find catalog by name in a linked list, return NULL if !found
     wxMsgCatalog *FindCatalog(const wxString& domain) const;
 
     // find catalog by name in a linked list, return NULL if !found
     wxMsgCatalog *FindCatalog(const wxString& domain) const;
 
@@ -189,6 +197,8 @@ public:
 
     virtual wxMsgCatalog *LoadCatalog(const wxString& domain,
                                       const wxString& lang) = 0;
 
     virtual wxMsgCatalog *LoadCatalog(const wxString& domain,
                                       const wxString& lang) = 0;
+
+    virtual wxArrayString GetAvailableTranslations(const wxString& domain) const = 0;
 };
 
 
 };
 
 
@@ -201,6 +211,8 @@ public:
 
     virtual wxMsgCatalog *LoadCatalog(const wxString& domain,
                                       const wxString& lang);
 
     virtual wxMsgCatalog *LoadCatalog(const wxString& domain,
                                       const wxString& lang);
+
+    virtual wxArrayString GetAvailableTranslations(const wxString& domain) const;
 };
 
 
 };
 
 
@@ -213,6 +225,8 @@ public:
     virtual wxMsgCatalog *LoadCatalog(const wxString& domain,
                                       const wxString& lang);
 
     virtual wxMsgCatalog *LoadCatalog(const wxString& domain,
                                       const wxString& lang);
 
+    virtual wxArrayString GetAvailableTranslations(const wxString& domain) const;
+
 protected:
     // returns resource type to use for translations
     virtual wxString GetResourceType() const { return "MOFILE"; }
 protected:
     // returns resource type to use for translations
     virtual wxString GetResourceType() const { return "MOFILE"; }