X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=resources%2FTransBundle.java;h=125075a8bbd8268ca6c2310f2e3b40387132e2ac;hb=HEAD;hp=7b2edb1ca919b4bc9f31e85d968ca8ee771d538f;hpb=ebaa7b2820dad6bdf99fa96a8dba19b2bede316f;p=nikiroo-utils.git diff --git a/resources/TransBundle.java b/resources/TransBundle.java deleted file mode 100644 index 7b2edb1..0000000 --- a/resources/TransBundle.java +++ /dev/null @@ -1,404 +0,0 @@ -package be.nikiroo.utils.resources; - -import java.io.File; -import java.io.IOException; -import java.io.Writer; -import java.util.LinkedList; -import java.util.List; -import java.util.Locale; -import java.util.regex.Pattern; - -/** - * This class manages a translation-dedicated Bundle. - *
- * Two special cases are handled for the used enum: - *
- * Note: this method is NOT thread-safe.
- *
- * @param path
- * the path where the .properties files are
- *
- * @throws IOException
- * in case of IO errors
- */
- @Override
- public void updateFile(String path) throws IOException {
- String prev = locale.getLanguage();
- Object status = takeSnapshot();
-
- // default locale
- setLocale((Locale) null);
- if (prev.equals(Locale.getDefault().getLanguage())) {
- // restore snapshot if default locale = current locale
- restoreSnapshot(status);
- }
- super.updateFile(path);
-
- for (String lang : getKnownLanguages()) {
- setLocale(lang);
- if (lang.equals(prev)) {
- restoreSnapshot(status);
- }
- super.updateFile(path);
- }
-
- setLocale(prev);
- restoreSnapshot(status);
- }
-
- @Override
- protected File getUpdateFile(String path) {
- String code = locale.toString();
- File file = null;
- if (!defaultLocale && code.length() > 0) {
- file = new File(path, keyType.name() + "_" + code + ".properties");
- } else {
- // Default properties file:
- file = new File(path, keyType.name() + ".properties");
- }
-
- return file;
- }
-
- @Override
- protected void writeHeader(Writer writer) throws IOException {
- String code = locale.toString();
- String name = locale.getDisplayCountry(locale);
-
- if (name.length() == 0) {
- name = locale.getDisplayLanguage(locale);
- }
-
- if (name.length() == 0) {
- name = "default";
- }
-
- if (code.length() > 0) {
- name = name + " (" + code + ")";
- }
-
- name = (name + " " + getBundleDisplayName()).trim();
-
- writer.write("# " + name + " translation file (UTF-8)\n");
- writer.write("# \n");
- writer.write("# Note that any key can be doubled with a _NOUTF suffix\n");
- writer.write("# to use when the NOUTF env variable is set to 1\n");
- writer.write("# \n");
- writer.write("# Also, the comments always refer to the key below them.\n");
- writer.write("# \n");
- }
-
- @Override
- protected void writeValue(Writer writer, E id) throws IOException {
- super.writeValue(writer, id);
-
- String name = id.name() + "_NOUTF";
- if (containsKey(name)) {
- String value = getString(name, null);
- if (value == null) {
- value = getMetaDef(id.name());
- }
- boolean set = isSet(id, false);
- writeValue(writer, name, value, set);
- }
- }
-
- /**
- * Return the {@link Locale} representing the given language.
- *
- * @param language
- * the language to initialise, in the form "en-GB" or "fr" for
- * instance
- *
- * @return the corresponding {@link Locale} or NULL if it is not known
- */
- static private Locale getLocaleFor(String language) {
- Locale locale;
-
- if (language == null || language.trim().isEmpty()) {
- return null;
- }
-
- language = language.replaceAll("_", "-");
- String lang = language;
- String country = null;
- if (language.contains("-")) {
- lang = language.split("-")[0];
- country = language.split("-")[1];
- }
-
- if (country != null)
- locale = new Locale(lang, country);
- else
- locale = new Locale(lang);
-
- return locale;
- }
-
- /**
- * Return all the languages known by the program.
- *
- * @param name
- * the enumeration on which we translate
- *
- * @return the known language codes
- */
- static protected List