public void run() {
		Logger.logInfo("[i18n] Checking for updates ...");
		File dir = new File(root);
		File tmp = new File(dir, "locale");

		if (!dir.exists() || !tmp.exists()) {
			dir.mkdirs();
			tmp.mkdirs();
		}
		cleanUpFiles();
		try {
			URLConnection connection = new URL(DownloadUtils.getStaticCreeperhostLink("locales")).openConnection();
			Scanner scanner = new Scanner(connection.getInputStream());
			remoteVer = scanner.nextInt();
			Logger.logInfo("[i18n] remoteVer = " + remoteVer);
			scanner.close();
		} catch (MalformedURLException e1) {
			Logger.logError(e1.getMessage(), e1);
		} catch (IOException e1) {
			Logger.logInfo("[i18n] Could not retrieve version info, skipping update.", e1);
			return;
		}
		if (local.exists()) {
			try {
				int localVer;
				Scanner scanner = new Scanner(local);
				localVer = scanner.nextInt();
				Logger.logInfo("[i18n] localVer = " + localVer);
				scanner.close();
				if (localVer < remoteVer) {
					updateFiles();
				} else {
					Logger.logInfo("[i18n] Files are up to date");
				}
			} catch (FileNotFoundException e1) {
				Logger.logInfo("[i18n] Could not read version file", e1);
			}
		} else {
			updateFiles();
		}
		I18N.addFiles();
	}