Merge pull request #5847 from newnon/develop_small_improvements

Adds getCurrentLanguageCode() which returns iso 639-1 language code
This commit is contained in:
James Chen 2014-03-21 16:33:43 +08:00
commit da0c15c982
13 changed files with 104 additions and 6 deletions

View File

@ -100,6 +100,14 @@ public:
*/
virtual LanguageType getCurrentLanguage() = 0;
/**
@brief Get current language iso 639-1 code
@return Current language iso 639-1 code
* @js NA
* @lua NA
*/
virtual const char * getCurrentLanguageCode() = 0;
/**
@brief Get target platform
* @js NA

View File

@ -86,6 +86,14 @@ Application* Application::sharedApplication()
return Application::getInstance();
}
const char * Application::getCurrentLanguageCode()
{
static char code[3]={0};
strncpy(code,getCurrentLanguageJNI().c_str(),2);
code[2]='\0';
return code;
}
LanguageType Application::getCurrentLanguage()
{
std::string languageName = getCurrentLanguageJNI();

View File

@ -73,6 +73,12 @@ public:
*/
virtual LanguageType getCurrentLanguage();
/**
@brief Get current language iso 639-1 code
@return Current language iso 639-1 code
*/
virtual const char * getCurrentLanguageCode();
/**
@brief Get target platform
*/

View File

@ -75,6 +75,12 @@ public:
*/
virtual LanguageType getCurrentLanguage();
/**
@brief Get current language iso 639-1 code
@return Current language iso 639-1 code
*/
virtual const char * getCurrentLanguageCode();
/**
@brief Get target platform
*/

View File

@ -78,6 +78,21 @@ Application* Application::sharedApplication()
return Application::getInstance();
}
const char * Application::getCurrentLanguageCode()
{
static char code[3]={0};
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *languages = [defaults objectForKey:@"AppleLanguages"];
NSString *currentLanguage = [languages objectAtIndex:0];
// get the current language code.(such as English is "en", Chinese is "zh" and so on)
NSDictionary* temp = [NSLocale componentsFromLocaleIdentifier:currentLanguage];
NSString * languageCode = [temp objectForKey:NSLocaleLanguageCode];
[languageCode getCString:code maxLength:2 encoding:NSASCIIStringEncoding];
code[2]='\0';
return code;
}
LanguageType Application::getCurrentLanguage()
{
// get the current language and country config

View File

@ -151,6 +151,20 @@ Application* Application::sharedApplication()
return Application::getInstance();
}
const char * Application::getCurrentLanguageCode()
{
static char code[3]={0};
char *pLanguageName = getenv("LANG");
if (!pLanguageName)
return "en";
strtok(pLanguageName, "_");
if (!pLanguageName)
return "en";
strncpy(code,pLanguageName,2);
code[2]='\0';
return code;
}
LanguageType Application::getCurrentLanguage()
{
char *pLanguageName = getenv("LANG");

View File

@ -72,6 +72,13 @@ public:
/* override functions */
virtual LanguageType getCurrentLanguage();
/**
@brief Get current language iso 639-1 code
@return Current language iso 639-1 code
*/
virtual const char * getCurrentLanguageCode();
/**
* Sets the Resource root path.
* @deprecated Please use FileUtils::getInstance()->setSearchPaths() instead.

View File

@ -80,6 +80,12 @@ public:
*/
virtual LanguageType getCurrentLanguage();
/**
@brief Get current language iso 639-1 code
@return Current language iso 639-1 code
*/
virtual const char * getCurrentLanguageCode();
/**
@brief Get target platform
*/

View File

@ -134,6 +134,21 @@ Application* Application::sharedApplication()
return Application::getInstance();
}
const char * Application::getCurrentLanguageCode()
{
static char code[3]={0};
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *languages = [defaults objectForKey:@"AppleLanguages"];
NSString *currentLanguage = [languages objectAtIndex:0];
// get the current language code.(such as English is "en", Chinese is "zh" and so on)
NSDictionary* temp = [NSLocale componentsFromLocaleIdentifier:currentLanguage];
NSString * languageCode = [temp objectForKey:NSLocaleLanguageCode];
[languageCode getCString:code maxLength:2 encoding:NSASCIIStringEncoding];
code[2]='\0';
return code;
}
LanguageType Application::getCurrentLanguage()
{
// get the current language and country config

View File

@ -190,6 +190,16 @@ LanguageType Application::getCurrentLanguage()
return ret;
}
const char * Application::getCurrentLanguageCode()
{
LANGID lid = GetUserDefaultUILanguage();
const LCID locale_id = MAKELCID(lid, SORT_DEFAULT);
static char code[3] = { 0 };
GetLocaleInfoA(locale_id, LOCALE_SISO639LANGNAME, code, sizeof(code));
code[2] = '\0';
return code;
}
Application::Platform Application::getTargetPlatform()
{
return Platform::OS_WINDOWS;

View File

@ -67,6 +67,8 @@ public:
/* override functions */
virtual void setAnimationInterval(double interval);
virtual LanguageType getCurrentLanguage();
virtual const char * getCurrentLanguageCode();
/**
@brief Get target platform

View File

@ -4,8 +4,9 @@
@interface AppController : NSObject <UIApplicationDelegate> {
UIWindow *window;
RootViewController *viewController;
}
@property(nonatomic, readonly) RootViewController* viewController;
@end

View File

@ -53,20 +53,20 @@ static AppDelegate s_sharedApplication;
numberOfSamples: 0];
// Use RootViewController manage CCEAGLView
viewController = [[RootViewController alloc] initWithNibName:nil bundle:nil];
viewController.wantsFullScreenLayout = YES;
viewController.view = eaglView;
_viewController = [[RootViewController alloc] initWithNibName:nil bundle:nil];
_viewController.wantsFullScreenLayout = YES;
_viewController.view = eaglView;
// Set RootViewController to window
if ( [[UIDevice currentDevice].systemVersion floatValue] < 6.0)
{
// warning: addSubView doesn't work on iOS6
[window addSubview: viewController.view];
[window addSubview: _viewController.view];
}
else
{
// use this method on ios6
[window setRootViewController:viewController];
[window setRootViewController:_viewController];
}
[window makeKeyAndVisible];