Stumbled across some problems while using the Locale Kit and added TODOs
accordingly. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35214 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -121,6 +121,10 @@ BCatalog::GetAppCatalog(BCatalog* catalog)
|
|||||||
appNode.ReadAttr(BLocaleRoster::kCatFingerprintAttr, B_UINT32_TYPE, 0,
|
appNode.ReadAttr(BLocaleRoster::kCatFingerprintAttr, B_UINT32_TYPE, 0,
|
||||||
&fingerprint, sizeof(uint32));
|
&fingerprint, sizeof(uint32));
|
||||||
// try to load catalog (with given fingerprint):
|
// try to load catalog (with given fingerprint):
|
||||||
|
// TODO: Not so nice C++ design here, leading to such bugs: The previous
|
||||||
|
// fCatalog is leaked here. (The whole chain, it looks like.) There should
|
||||||
|
// be a SetCatalog() method (it can be private), and that should take care
|
||||||
|
// that internal members are always properly maintained.
|
||||||
catalog->fCatalog
|
catalog->fCatalog
|
||||||
= be_locale_roster->LoadCatalog(sig.String(), NULL, fingerprint);
|
= be_locale_roster->LoadCatalog(sig.String(), NULL, fingerprint);
|
||||||
|
|
||||||
|
|||||||
@@ -132,6 +132,8 @@ BLanguage::GetString(uint32 id) const
|
|||||||
status_t
|
status_t
|
||||||
BLanguage::GetName(BString* name)
|
BLanguage::GetName(BString* name)
|
||||||
{
|
{
|
||||||
|
// TODO: This will return the language not in the current be_app_catalog,
|
||||||
|
// but in the current system wide language! Don't know the exact reason.
|
||||||
UnicodeString s;
|
UnicodeString s;
|
||||||
fICULocale->getDisplayLanguage(s);
|
fICULocale->getDisplayLanguage(s);
|
||||||
BStringByteSink converter(name);
|
BStringByteSink converter(name);
|
||||||
|
|||||||
@@ -45,9 +45,12 @@ BLocale::GetString(uint32 id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
status_t
|
status_t
|
||||||
BLocale::GetAppCatalog(BCatalog *catalog) {
|
BLocale::GetAppCatalog(BCatalog *catalog)
|
||||||
|
{
|
||||||
if (!catalog)
|
if (!catalog)
|
||||||
return B_BAD_VALUE;
|
return B_BAD_VALUE;
|
||||||
|
// TODO: This is not so nice, and I don't know why it is here, but how
|
||||||
|
// is it envisioned to switch languages on the fly?
|
||||||
if (be_catalog)
|
if (be_catalog)
|
||||||
debugger( "GetAppCatalog() has been called while be_catalog != NULL");
|
debugger( "GetAppCatalog() has been called while be_catalog != NULL");
|
||||||
return BCatalog::GetAppCatalog(catalog);
|
return BCatalog::GetAppCatalog(catalog);
|
||||||
|
|||||||
@@ -513,6 +513,8 @@ BLocaleRoster::GetInstalledLanguages(BMessage *languages) const
|
|||||||
|
|
||||||
#undef REALLY_ALL_LANGUAGES
|
#undef REALLY_ALL_LANGUAGES
|
||||||
#ifdef REALLY_ALL_LANGUAGES
|
#ifdef REALLY_ALL_LANGUAGES
|
||||||
|
// TODO: Using static variables here looks really weird, and is probably
|
||||||
|
// the reason why calling this method a second time will crash.
|
||||||
static const char* const* icuLocaleList = Locale::getISOLanguages();
|
static const char* const* icuLocaleList = Locale::getISOLanguages();
|
||||||
|
|
||||||
// Loop over the strings and add them to an std::set to remove duplicates
|
// Loop over the strings and add them to an std::set to remove duplicates
|
||||||
|
|||||||
Reference in New Issue
Block a user