⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 messagetext.java

📁 java 文件下载器。可自定义
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
			return (new StringBuilder()).append('!').append(key).append('!').toString();
	}

	public static Locale getCurrentLocale()
	{
		return LOCALE_DEFAULT.equals(LOCALE_CURRENT) ? LOCALE_ENGLISH : LOCALE_CURRENT;
	}

	public static boolean isCurrentLocale(Locale locale)
	{
		return LOCALE_ENGLISH.equals(locale) ? LOCALE_CURRENT.equals(LOCALE_DEFAULT) : LOCALE_CURRENT.equals(locale);
	}

	public static Locale[] getLocales()
	{
		String bundleFolder = "org.gudy.azureus2.internat.MessagesBundle".replace('.', '/');
		String prefix = "org.gudy.azureus2.internat.MessagesBundle".substring("org.gudy.azureus2.internat.MessagesBundle".lastIndexOf('.') + 1);
		String extension = ".properties";
		String urlString = org/gudy/azureus2/core3/internat/MessageText.getClassLoader().getResource(bundleFolder.concat(".properties")).toExternalForm();
		String bundles[] = null;
		if (urlString.startsWith("jar:file:"))
		{
			File jar = FileUtil.getJarFileFromURL(urlString);
			if (jar != null)
				try
				{
					JarFile jarFile = new JarFile(jar);
					Enumeration entries = jarFile.entries();
					ArrayList list = new ArrayList(250);
					do
					{
						if (!entries.hasMoreElements())
							break;
						JarEntry jarEntry = (JarEntry)entries.nextElement();
						if (jarEntry.getName().startsWith(bundleFolder) && jarEntry.getName().endsWith(".properties"))
							list.add(jarEntry.getName().substring(bundleFolder.length() - prefix.length()));
					} while (true);
					bundles = (String[])(String[])list.toArray(new String[list.size()]);
				}
				catch (Exception e)
				{
					Debug.printStackTrace(e);
				}
		} else
		{
			File bundleDirectory = (new File(URI.create(urlString))).getParentFile();
			bundles = bundleDirectory.list(new FilenameFilter(prefix) {

				final String val$prefix;

				public boolean accept(File dir, String name)
				{
					return name.startsWith(prefix) && name.endsWith(".properties");
				}

			
			{
				prefix = s;
				super();
			}
			});
		}
		HashSet bundleSet = new HashSet();
		File localDir = new File(SystemProperties.getUserPath());
		String localBundles[] = localDir.list(new FilenameFilter(prefix) {

			final String val$prefix;

			public boolean accept(File dir, String name)
			{
				return name.startsWith(prefix) && name.endsWith(".properties");
			}

			
			{
				prefix = s;
				super();
			}
		});
		if (localBundles != null)
			bundleSet.addAll(Arrays.asList(localBundles));
		File appDir = new File(SystemProperties.getApplicationPath());
		String appBundles[] = appDir.list(new FilenameFilter(prefix) {

			final String val$prefix;

			public boolean accept(File dir, String name)
			{
				return name.startsWith(prefix) && name.endsWith(".properties");
			}

			
			{
				prefix = s;
				super();
			}
		});
		if (appBundles != null)
			bundleSet.addAll(Arrays.asList(appBundles));
		bundleSet.addAll(Arrays.asList(bundles));
		List foundLocalesList = new ArrayList(bundleSet.size());
		foundLocalesList.add(LOCALE_ENGLISH);
		Iterator val = bundleSet.iterator();
		do
		{
			if (!val.hasNext())
				break;
			String sBundle = (String)val.next();
			if (prefix.length() + 1 < sBundle.length() - ".properties".length())
			{
				String locale = sBundle.substring(prefix.length() + 1, sBundle.length() - ".properties".length());
				String sLocalesSplit[] = locale.split("_", 3);
				if (sLocalesSplit.length > 0 && sLocalesSplit[0].length() == 2)
				{
					if (sLocalesSplit.length == 3)
						foundLocalesList.add(new Locale(sLocalesSplit[0], sLocalesSplit[1], sLocalesSplit[2]));
					else
					if (sLocalesSplit.length == 2 && sLocalesSplit[1].length() == 2)
						foundLocalesList.add(new Locale(sLocalesSplit[0], sLocalesSplit[1]));
					else
						foundLocalesList.add(new Locale(sLocalesSplit[0]));
				} else
				if (sLocalesSplit.length == 3 && sLocalesSplit[0].length() == 0 && sLocalesSplit[2].length() > 0)
					foundLocalesList.add(new Locale(sLocalesSplit[0], sLocalesSplit[1], sLocalesSplit[2]));
			}
		} while (true);
		Locale foundLocales[] = new Locale[foundLocalesList.size()];
		foundLocalesList.toArray(foundLocales);
		try
		{
			Arrays.sort(foundLocales, new Comparator() {

				public final int compare(Object a, Object b)
				{
					return ((Locale)a).getDisplayName((Locale)a).compareToIgnoreCase(((Locale)b).getDisplayName((Locale)b));
				}

			});
		}
		catch (Throwable e)
		{
			Debug.printStackTrace(e);
		}
		return foundLocales;
	}

	public static boolean changeLocale(Locale newLocale)
	{
		return changeLocale(newLocale, false);
	}

	private static boolean changeLocale(Locale newLocale, boolean force)
	{
		Locale.setDefault(newLocale);
		if (!isCurrentLocale(newLocale) || force)
		{
			Locale.setDefault(LOCALE_DEFAULT);
			ResourceBundle newResourceBundle = null;
			String bundleFolder = "org.gudy.azureus2.internat.MessagesBundle".replace('.', '/');
			String prefix = "org.gudy.azureus2.internat.MessagesBundle".substring("org.gudy.azureus2.internat.MessagesBundle".lastIndexOf('.') + 1);
			String extension = ".properties";
			if (newLocale.equals(LOCALE_ENGLISH))
				newLocale = LOCALE_DEFAULT;
			try
			{
				File userBundleFile = new File(SystemProperties.getUserPath());
				File appBundleFile = new File(SystemProperties.getApplicationPath());
				ClassLoader cl = org/gudy/azureus2/core3/internat/MessageText.getClassLoader();
				String sJar = cl.getResource((new StringBuilder()).append(bundleFolder).append(".properties").toString()).toString();
				sJar = sJar.substring(0, sJar.length() - prefix.length() - ".properties".length());
				URL jarURL = new URL(sJar);
				URL urls[] = {
					userBundleFile.toURL(), appBundleFile.toURL(), jarURL
				};
				newResourceBundle = getResourceBundle("MessagesBundle", newLocale, new URLClassLoader(urls));
				if (!newResourceBundle.getLocale().getLanguage().equals(newLocale.getLanguage()) && !newLocale.getCountry().equals(""))
				{
					Locale foundLocale = newResourceBundle.getLocale();
					System.out.println((new StringBuilder()).append("changeLocale: ").append(foundLocale.toString().equals("") ? "*Default Language*" : foundLocale.getDisplayLanguage()).append(" != ").append(newLocale.getDisplayName()).append(". Searching without country..").toString());
					Locale localeJustLang = new Locale(newLocale.getLanguage());
					newResourceBundle = getResourceBundle("MessagesBundle", localeJustLang, new URLClassLoader(urls));
					if (newResourceBundle == null || !newResourceBundle.getLocale().getLanguage().equals(localeJustLang.getLanguage()))
					{
						System.out.println((new StringBuilder()).append("changeLocale: Searching for language ").append(newLocale.getDisplayLanguage()).append(" in *any* country..").toString());
						Locale locales[] = getLocales();
						int i = 0;
						do
						{
							if (i >= locales.length)
								break;
							if (locales[i].getLanguage() == newLocale.getLanguage())
							{
								newResourceBundle = getResourceBundle("MessagesBundle", locales[i], new URLClassLoader(urls));
								break;
							}
							i++;
						} while (true);
					}
				}
			}
			catch (MissingResourceException e)
			{
				System.out.println((new StringBuilder()).append("changeLocale: no resource bundle for ").append(newLocale).toString());
				Debug.printStackTrace(e);
				return false;
			}
			catch (Exception e)
			{
				Debug.printStackTrace(e);
			}
			if (newResourceBundle != null)
			{
				if (!newLocale.equals(LOCALE_DEFAULT) && !newResourceBundle.getLocale().equals(newLocale))
				{
					String sNewLanguage = newResourceBundle.getLocale().getDisplayName();
					if (sNewLanguage == null || sNewLanguage.trim().equals(""))
						sNewLanguage = "English (default)";
					System.out.println((new StringBuilder()).append("changeLocale: no message properties for Locale '").append(newLocale.getDisplayName()).append("' (").append(newLocale).append("), using '").append(sNewLanguage).append("'").toString());
				}
				newLocale = newResourceBundle.getLocale();
				Locale.setDefault(newLocale.equals(LOCALE_DEFAULT) ? LOCALE_ENGLISH : newLocale);
				LOCALE_CURRENT = newLocale;
				setResourceBundle(new IntegratedResourceBundle(newResourceBundle, pluginLocalizationPaths));
				if (newLocale.equals(LOCALE_DEFAULT))
					DEFAULT_BUNDLE = RESOURCE_BUNDLE;
				return true;
			} else
			{
				return false;
			}
		} else
		{
			return false;
		}
	}

	public static boolean integratePluginMessages(String localizationPath, ClassLoader classLoader)
	{
		boolean integratedSuccessfully = false;
		if (null != localizationPath && localizationPath.length() != 0 && !pluginLocalizationPaths.containsKey(localizationPath))
		{
			synchronized (pluginLocalizationPaths)
			{
				pluginLocalizationPaths.put(localizationPath, classLoader);
			}
			RESOURCE_BUNDLE.addPluginBundle(localizationPath, classLoader);
			setResourceBundle(RESOURCE_BUNDLE);
			integratedSuccessfully = true;
		}
		return integratedSuccessfully;
	}

	public static boolean integratePluginMessages(ResourceBundle bundle)
	{
		synchronized (pluginResourceBundles)
		{
			pluginResourceBundles.add(bundle);
		}
		RESOURCE_BUNDLE.addResourceMessages(bundle);
		setResourceBundle(RESOURCE_BUNDLE);
		return true;
	}

	public static void revertToDefaultLocale()
	{
		String language = (String)AccessController.doPrivileged(new GetPropertyAction("user.language", "en"));
		String region = (String)AccessController.doPrivileged(new GetPropertyAction("user.region"));
		String country;
		String variant;
		if (region != null)
		{
			int i = region.indexOf('_');
			if (i >= 0)
			{
				country = region.substring(0, i);
				variant = region.substring(i + 1);
			} else
			{
				country = region;
				variant = "";
			}
		} else
		{
			country = (String)AccessController.doPrivileged(new GetPropertyAction("user.country", ""));
			variant = (String)AccessController.doPrivileged(new GetPropertyAction("user.variant", ""));
		}
		changeLocale(new Locale(language, country, variant));
		COConfigurationManager.removeParameter("locale");
	}

	public static String resolveLocalizationKey(String localizationKey)
	{
		if (null == localizationKey)
			return null;
		if ("az3".equalsIgnoreCase(COConfigurationManager.getStringParameter("ui")))
		{
			String v3Key = null;
			if (!localizationKey.startsWith("v3."))
				v3Key = (new StringBuilder()).append("v3.").append(localizationKey).toString();
			else
				v3Key = localizationKey;
			if (keyExists(v3Key))
				return v3Key;
		}
		return localizationKey;
	}

	public static String resolveAcceleratorKey(String acceleratorKey)
	{
		if (null == acceleratorKey)
			return null;
		if ("az3".equalsIgnoreCase(COConfigurationManager.getStringParameter("ui")))
		{
			String v3Key = null;
			if (!acceleratorKey.startsWith("v3."))
				v3Key = (new StringBuilder()).append("v3.").append(acceleratorKey).toString();
			else
				v3Key = acceleratorKey;
			if (keyExists((new StringBuilder()).append(v3Key).append(".keybinding").toString()))
				return v3Key;
		}
		return acceleratorKey;
	}

	static 
	{
		LOCALE_DEFAULT = new Locale("", "");
		LOCALE_CURRENT = LOCALE_DEFAULT;
		pluginLocalizationPaths = new HashMap();
		setResourceBundle(new IntegratedResourceBundle(getResourceBundle("org.gudy.azureus2.internat.MessagesBundle", LOCALE_DEFAULT, org/gudy/azureus2/core3/internat/MessageText.getClassLoader()), pluginLocalizationPaths));
		DEFAULT_BUNDLE = RESOURCE_BUNDLE;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -