BCountry: add a GetPreferredLanguage method.
The APIs for this were introduced in ICU 63, so we'll need an update. ICU 63 does not build with gcc2, so this method is disabled there. Change-Id: Iabe49509ed6d4e578560d497d3ca336a97db4625 Reviewed-on: https://review.haiku-os.org/c/haiku/+/1874 Tested-by: Commit checker robot <[email protected]> Reviewed-by: Jérôme Duval <[email protected]>
This commit is contained in:
committed by
Adrien Destugues
parent
2703c740d8
commit
e5fb17f0ca
@@ -117,6 +117,19 @@
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn status_t BCountry::GetPreferredLanguage(BLanguage& language) const
|
||||
\brief Get the most likely language to use in that country.
|
||||
|
||||
\param language A reference to a BLanguage to set to the preferred language.
|
||||
|
||||
\returns A status code, B_OK if everything went fine, or an error code
|
||||
otherwise.
|
||||
|
||||
\since Haiku R1
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn const char* BCountry::Code() const
|
||||
\brief Gets the ISO country code for the country.
|
||||
|
||||
@@ -39,6 +39,7 @@ public:
|
||||
status_t GetName(BString& name,
|
||||
const BLanguage* displayLanguage = NULL
|
||||
) const;
|
||||
status_t GetPreferredLanguage(BLanguage&) const;
|
||||
|
||||
const char* Code() const;
|
||||
// ISO-3166
|
||||
|
||||
@@ -139,6 +139,35 @@ BCountry::GetName(BString& name, const BLanguage* displayLanguage) const
|
||||
}
|
||||
|
||||
|
||||
status_t
|
||||
BCountry::GetPreferredLanguage(BLanguage& language) const
|
||||
{
|
||||
#if __GNUC__ == 2
|
||||
return ENOSYS;
|
||||
#else
|
||||
status_t status = InitCheck();
|
||||
if (status != B_OK)
|
||||
return status;
|
||||
|
||||
icu::Locale* languageLocale = fICULocale->clone();
|
||||
if (languageLocale == NULL)
|
||||
return B_NO_MEMORY;
|
||||
|
||||
UErrorCode icuError = U_ZERO_ERROR;
|
||||
languageLocale->addLikelySubtags(icuError);
|
||||
|
||||
if (U_FAILURE(icuError))
|
||||
return B_ERROR;
|
||||
|
||||
status = language.SetTo(languageLocale->getLanguage());
|
||||
|
||||
delete languageLocale;
|
||||
|
||||
return status;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
const char*
|
||||
BCountry::Code() const
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user