2000-10-27 15:54:35 +00:00
|
|
|
/* GSLocale - various functions for localization
|
|
|
|
|
|
|
|
Copyright (C) 2000 Free Software Foundation, Inc.
|
|
|
|
|
|
|
|
Written by: Adam Fedor <fedor@gnu.org>
|
|
|
|
Created: Oct 2000
|
|
|
|
|
|
|
|
This file is part of the GNUstep Base Library.
|
|
|
|
|
|
|
|
This library is free software; you can redistribute it and/or
|
2007-09-14 11:36:11 +00:00
|
|
|
modify it under the terms of the GNU Lesser General Public
|
2000-10-27 15:54:35 +00:00
|
|
|
License as published by the Free Software Foundation; either
|
2008-06-08 10:38:33 +00:00
|
|
|
version 2 of the License, or (at your option) any later version.
|
2000-10-27 15:54:35 +00:00
|
|
|
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
Library General Public License for more details.
|
|
|
|
|
2007-09-14 11:36:11 +00:00
|
|
|
You should have received a copy of the GNU Lesser General Public
|
2000-10-27 15:54:35 +00:00
|
|
|
License along with this library; if not, write to the Free
|
2024-11-07 13:37:59 +00:00
|
|
|
Software Foundation, Inc., 31 Milk Street #960789 Boston, MA 02196 USA.
|
2000-10-27 15:54:35 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __GSLocale_H_
|
|
|
|
#define __GSLocale_H_
|
|
|
|
|
2003-11-10 15:34:52 +00:00
|
|
|
#ifndef NeXT_Foundation_LIBRARY
|
2010-03-10 14:53:51 +00:00
|
|
|
#import <Foundation/NSString.h>
|
2003-11-10 15:34:52 +00:00
|
|
|
#else
|
2010-03-10 14:53:51 +00:00
|
|
|
#import <Foundation/Foundation.h>
|
2003-11-10 15:34:52 +00:00
|
|
|
#endif
|
2010-03-10 14:53:51 +00:00
|
|
|
#import "GSObjCRuntime.h"
|
2000-10-27 15:54:35 +00:00
|
|
|
|
2006-09-13 10:20:49 +00:00
|
|
|
#if defined(__cplusplus)
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
2000-10-27 15:54:35 +00:00
|
|
|
@class NSDictionary;
|
|
|
|
|
2002-12-05 04:24:43 +00:00
|
|
|
GS_EXPORT const char *GSSetLocaleC(int category, const char *loc);
|
|
|
|
GS_EXPORT NSString *GSSetLocale(int category, NSString *locale);
|
2000-10-27 15:54:35 +00:00
|
|
|
|
|
|
|
GS_EXPORT NSDictionary *GSDomainFromDefaultLocale(void);
|
|
|
|
|
2012-02-28 06:20:53 +00:00
|
|
|
/**
|
|
|
|
* Returns the locale string for LC_MESSAGES
|
|
|
|
*/
|
|
|
|
GS_EXPORT NSString *GSDefaultLanguageLocale(void);
|
|
|
|
|
* Source/NSUserDefaults.m:
- Refactoring of the code to read the system language list
into a separate function, systemLanguages().
- Add support for the LANGUAGE environment variable, a GNU extension.
It holds a colon-separated list of locales, and is intended to let
the user specify a list of their preferred languages in order.
For example, the language settings GUI in Ubuntu modifies the
LANGUAGE variable.
More info here:
http://www.gnu.org/software/gettext/manual/gettext.html#The-LANGUAGE-variable
- When populating NSLanguages, "expand" locales into a list of
related variants, formed by stripping off region suffixes. This
ensures that if a user's environment is set to a regional version
of a language (say CanadaFrench) but an application is only
traslated into French, the plain French translation will still be used.
e.g. if the system locales are {fr_CA, en_CA}, expand the list to
{fr_CA, fr, en_CA, en}.
* Headers/GNUstepBase/GSLocale.h:
* Source/GSLocale.m:
New functions GSLocaleVariants and GSLanguagesFromLocale
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33910 72102866-910b-0410-8b05-ffd578937521
2011-09-29 19:00:46 +00:00
|
|
|
/**
|
|
|
|
* Returns a language name string for a given locale.
|
|
|
|
* e.g. GSLanguageFromLocale(@"en_CA") returns @"CanadaEnglish"
|
|
|
|
*/
|
2000-10-27 15:54:35 +00:00
|
|
|
GS_EXPORT NSString *GSLanguageFromLocale(NSString *locale);
|
|
|
|
|
* Source/NSUserDefaults.m:
- Refactoring of the code to read the system language list
into a separate function, systemLanguages().
- Add support for the LANGUAGE environment variable, a GNU extension.
It holds a colon-separated list of locales, and is intended to let
the user specify a list of their preferred languages in order.
For example, the language settings GUI in Ubuntu modifies the
LANGUAGE variable.
More info here:
http://www.gnu.org/software/gettext/manual/gettext.html#The-LANGUAGE-variable
- When populating NSLanguages, "expand" locales into a list of
related variants, formed by stripping off region suffixes. This
ensures that if a user's environment is set to a regional version
of a language (say CanadaFrench) but an application is only
traslated into French, the plain French translation will still be used.
e.g. if the system locales are {fr_CA, en_CA}, expand the list to
{fr_CA, fr, en_CA, en}.
* Headers/GNUstepBase/GSLocale.h:
* Source/GSLocale.m:
New functions GSLocaleVariants and GSLanguagesFromLocale
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33910 72102866-910b-0410-8b05-ffd578937521
2011-09-29 19:00:46 +00:00
|
|
|
/**
|
|
|
|
* Return an array of variants of a locale, formed by stripping
|
|
|
|
* off parts of the identifier, ordered from most similar to
|
|
|
|
* least similar.
|
|
|
|
*
|
|
|
|
* e.g. GSLocaleVariants(@"en_CA") returns (@"en_CA", @"en").
|
|
|
|
*/
|
|
|
|
GS_EXPORT NSArray *GSLocaleVariants(NSString *locale);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Convenience function which calls GSLocaleVariants to expand
|
|
|
|
* the given locale to a list of variants, and then calls
|
|
|
|
* GSLanguageFromLocale on each.
|
|
|
|
*
|
|
|
|
* e.g. GSLanguagesFromLocale(@"en_CA") returns
|
|
|
|
* (@"CanadaEnglish", @"English")
|
|
|
|
*/
|
|
|
|
GS_EXPORT NSArray *GSLanguagesFromLocale(NSString *locale);
|
|
|
|
|
2006-09-13 10:20:49 +00:00
|
|
|
#if defined(__cplusplus)
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2000-10-27 15:54:35 +00:00
|
|
|
#endif
|
|
|
|
|