Cet article résume les éléments suivants comme un résumé de l'apprentissage de Java Gold. (Aussi pour ceux qui apprennent Java Gold ou veulent en savoir plus sur la localisation.)
java.util.Locale
Affichez les règles de notation pour les éléments qui diffèrent selon la langue et le pays.
Utilisez les paramètres régionaux lorsque vous souhaitez modifier l'affichage de chaque pays dans lequel l'application est utilisée. (Les caractères sont divisés en japonais et en anglais selon le pays où l'application est utilisée, etc.)
Il existe trois méthodes principales pour créer des instances.
constructeur | Contenu |
---|---|
Local(String language, String country) | Langue d'argumentation/Générer un objet à partir du code du pays |
//Génération d'instance par nouveau
//ja ・ fr: Code du nom de la langue | JP ・ US: Code du nom du pays
Locale localeJp = new Locale("ja","JP"); //Paramètres régionaux japonais
Locale localeUs = new Locale("en","US"); //Lieu américain
//Génération d'instances avec des constantes de classe locale
Locale localeJp = Locale.JAPAN;
Locale localeUs = Locale.US;
// getDefault()Génération d'instance par méthode
//Lorsqu'elle est exécutée au Japon, une instance de paramètres régionaux japonais est générée
Locale localeJp = Locale.getDefault();
Méthode | Contenu |
---|---|
static getDefault() | Obtenir la valeur actuelle de la langue par défaut |
final String getDisplayCountry() | Renvoie le nom du pays de la langue |
final String getDisplayLanguage() | Renvoie le nom de la langue des paramètres régionaux |
String getCountry() | Renvoie le code du pays de la locale |
String getLanguage() | Renvoie le code du nom de la langue du paramètre régional |
// ja_JP est stocké (lorsque le système d'exploitation est le Japon)
Locale locale = Locale.getDefault();
//Le Japon est stocké
String country = locale.getDisplayCountry();
//Le japonais est stocké
String language = locale.getDisplayLanguage();
//JP est stocké
String country_code = locale.getCountry();
//ja est stocké
String language_code = locale.getLanguage();
//Remarques: autres méthodes d'instanciation
Locale locale = new Locale.Builder().setLanguage("ja")
.setScript("Jpan")
.setRegion("JP")
.build();
// setScript(): L'argument est ISO 15924 alpha-4 Code de script (voir Javadoc)
// build():Locale.Créer un objet local avec une méthode Builder
java.util.ResourceBundle
Correspondent à des règles de notation différentes pour chaque langue et pays selon les paramètres régionaux. Cela permet de basculer entre la notation japonaise et la notation anglaise en fonction des paramètres régionaux.
Les principales méthodes utilisées sont les suivantes.
Méthode | Contenu |
---|---|
boolean containsKey(String key) | Renvoie true si la ressource a la clé spécifiée par l'argument |
final Object getObject | Renvoie l'objet associé à la clé spécifiée par l'argument |
final String getString(String key) | Renvoie la chaîne de caractères associée à la clé spécifiée par l'argument |
final String[] getStringArray(String key) | Renvoie un tableau de chaînes de caractères associé à la clé spécifiée par l'argument |
Set |
Retournez toutes les clés incluses dans le lot |
En outre, il existe les sous-classes suivantes.
Sous-classe | Contenu |
---|---|
ListResourceBundle | Gérez les ressources de votre région dans une liste pratique et facile à utiliser |
PropertyResourceBuilder | Gérer les ressources pour les paramètres régionaux à l'aide d'un ensemble de chaînes statiques du fichier de propriétés |
Les règles de définition lors de son utilisation sont les suivantes.
- Méthode de définition
Créez une classe publique qui hérite de ListResourceBundle
Remplacez la méthode getContents () pour créer une liste de ressources dans un tableau
Les ressources sont créées sous forme de tableau avec des clés et des valeurs comme éléments
[Citation](https://www.amazon.co.jp/%E3%82%AA%E3%83%A9%E3%82%AF%E3%83%AB%E8%AA%8D%E5% AE% 9A% E8% B3% 87% E6% A0% BC% E6% 95% 99% E7% A7% 91% E6% 9B% B8-Java% E3% 83% 97% E3% 83% AD% E3% 82% B0% E3% 83% A9% E3% 83% 9E-Gold-SE-8-ebook / dp / B01J1LPKJY / ref = sr_1_2? __Mk_ja_JP =% E3% 82% AB% E3% 82% BF% E3% 82 % AB% E3% 83% 8A & dchild = 1 & keywords = or + java & qid = 1593530267 & sr = 8-2)
** ▼ Exemple de mise en œuvre **
Resource.java
public class Resource extends ListResourceBundle {
public Object[][] getContents() {
Object[][] contents = {
{"apple", "Pomme"},
{"orange", "Orange"}
};
return contents;
}
}
Resource_en_US.java
public class Resource_en extends ListResourceBundle {
protected Object[][] getContents() {
Object[][] contents = {
{"apple", "apple"},
{"orange", "orange"}
};
return contents;
}
}
Paramètres régionaux en définissant le nom de base_langue code_code pays.java Le fichier de la langue correspondant à l'objet de est référencé.
Pour l'instance locale par défaut, la ressource de nom de base est référencée. Si seul le code de langue est spécifié pour l'instance des paramètres régionaux, seul le code de langue doit être spécifié après le nom de base.
Main.java
//Le résultat de sortie est le suivant
//Pomme:Orange
// apple:orange
class Main {
public static void main(String[] args) {
Locale localeJa = Locale.JAPAN;
Locale localeUs = Locale.US;
//Si le deuxième argument n'est pas spécifié, spécifiez la localisation par défaut.
List<Locale> locales =
new ArrayList<Locale>(Arrays.asList(localeJa, localeUs));
for(Locale locale : locales) {
//nom du paquet.Spécifiez le nom du fichier
ResourceBundle rb =
ResourceBundle.getBundle("resource.Resource", locale);
//Si vous souhaitez obtenir autre chose que String, transtypez-le à l'aide de la méthode getObject.
System.out.println(rb.getString("apple") + ":" + rb.getString("orange"));
}
}
}
Les règles de définition lors de son utilisation sont les suivantes.
** ▼ Exemple de mise en œuvre **
Source.properties
apple=J_apple
orange=J_orange
Source_en_US.properties
apple=U_apple
orange=U_orange
Main.java
//Résultat de sortie
// J_appleJ_orange
// U_appleU_orange
class Main {
public static void main(String[] args) throws MalformedURLException {
File dicDir = Paths.get(".\\resource").toFile();
URLClassLoader urlLoader;
urlLoader = new URLClassLoader(new URL[]{dicDir.toURI().toURL()});
Locale localeJp = Locale.JAPAN;
Locale localeUs = Locale.US;
List<Locale> locales =
new ArrayList<Locale>(Arrays.asList(localeJp, localeUs));
for (Locale locale : locales) {
//Spécifiez uniquement le nom du fichier
ResourceBundle rb =
ResourceBundle.getBundle("Source" ,locale ,urlLoader);
System.out.println(rb.getString("apple") + rb.getString("orange"));
}
}
}
Recommended Posts