From ccde19d82a1a8fd3c5ea20efa31a0e18393e14fe Mon Sep 17 00:00:00 2001 From: 0neGal Date: Sun, 18 Feb 2024 23:03:07 +0100 Subject: added a lot more functionality to scripts/langs.js It's not capable of formatting language files, and now has a prompt interface for editing and adding missing localization strings. This removes the need for manually editing localization files beyond `en.json`, it'll still be edited manually. But maintainers will no longer have to open any localization files. I also updated the documentation for contributing to localizations. --- CONTRIBUTING.md | 29 +++- package-lock.json | 55 ++++++- package.json | 6 +- scripts/langs.js | 399 +++++++++++++++++++++++++++++++++++++++++++------ src/lang.js | 28 +--- src/lang/de.json | 432 +++++++++++++++++++++++++----------------------------- src/lang/es.json | 432 +++++++++++++++++++++++++----------------------------- src/lang/fr.json | 430 ++++++++++++++++++++++++----------------------------- src/lang/zh.json | 429 ++++++++++++++++++++++++----------------------------- 9 files changed, 1219 insertions(+), 1021 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f514f06..972d951 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -51,10 +51,37 @@ Viper has a very simple i18n system, please read below for instructions. #### Language file -The language file will be a file inside the `src/lang/` folder, name it according to the [ISO 3166-1 Alpha-2 standard](https://en.m.wikipedia.org/wiki/ISO_3166-1_alpha-2) in lowercase, meaning English = en, Spanish = es, French = fr, and so on. +The language file will be a file inside the `src/lang/` folder, name it according to the [ISO 3166-1 Alpha-2 standard](https://en.m.wikipedia.org/wiki/ISO_3166-1_alpha-2) in lowercase, meaning English = `en.json`, Spanish = `es.json`, French = `fr.json`, and so on. Everything inside the file is pretty straight forward, the only special one is the `lang.title` string, please set this to ` - `, meaning for French it's, `French - Français`. This will be shown inside the language selection screen. +If you don't feel like editing a JSON file and copying keys back and forwards from other complete language files, then you're in luck, because `scripts/langs.js` help with this exact problem. Simply make sure a valid localization file already exists, meaning it could have just `{}` inside it. Then after that you can use the language script to manage it: + +```sh +$ npm install +$ npm run langs:localize +``` + +You'll be prompted to select a language to edit, then if there are missing keys you'll be prompted for whether you just want to add those keys or if you want to edit all keys. After that you'll get a list of all the keys available, you'll simply select any of them, then you'll be prompted for the value for the key, then hit Enter when you're done, and you'll be put right back to the list of keys as before. You'll then edit as needed, when you're done select `Save changes`, you're changes will then be written to the localization file and it'll automatically be formatted for you. + +To sum it up: + + 1. Make sure a parseable JSON localization file exists in `src/lang/` + 2. Run `npm run langs:localize` (after `npm install`) + 3. Select your desired language + 4. Select the key you want to add/change + 5. Edit it as you wish + 6. Save whenever your done + 7. Commit your changes! + +If you do happen to manually edit your localization files remember to run the following commands before committing and pushing changes: + +```sh +$ npm install +$ npm langs:check # verifies the files are parseable and not missing keys +$ npm langs:format # formats and sorts the file for you +``` + #### Maintainers file If you're okay with being contacted in the future when new strings have to be localized please put your contact links inside this file, under your language. Preferably put the link to your GitHub profile as that is the easiest contact method for obvious reasons. diff --git a/package-lock.json b/package-lock.json index 9f2c2cb..735a337 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,8 @@ "license": "GPL-3.0-or-later", "dependencies": { "electron-updater": "^4.6.1", + "enquirer": "^2.4.1", + "flattenizer": "^1.1.3", "follow-redirects": "^1.15.4", "fs-extra": "^10.0.0", "fuse.js": "^6.5.3", @@ -446,11 +448,18 @@ "ajv": "^6.9.1" } }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "engines": { + "node": ">=6" + } + }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -1385,6 +1394,18 @@ "once": "^1.4.0" } }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", @@ -1515,6 +1536,14 @@ "node": ">=10" } }, + "node_modules/flattenizer": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/flattenizer/-/flattenizer-1.1.3.tgz", + "integrity": "sha512-zcva6gEQK5LlQj5lbLT9MqTrBGfXlaq7PIrKi+HLKRh2Fy3ouMY7H9/gVCCQDiB1jIBAEx8lg/hABAXQwiTKBg==", + "engines": { + "node": ">=10" + } + }, "node_modules/follow-redirects": { "version": "1.15.4", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", @@ -2749,7 +2778,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -3397,11 +3425,15 @@ "dev": true, "requires": {} }, + "ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==" + }, "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "4.3.0", @@ -4116,6 +4148,15 @@ "once": "^1.4.0" } }, + "enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "requires": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + } + }, "env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", @@ -4219,6 +4260,11 @@ } } }, + "flattenizer": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/flattenizer/-/flattenizer-1.1.3.tgz", + "integrity": "sha512-zcva6gEQK5LlQj5lbLT9MqTrBGfXlaq7PIrKi+HLKRh2Fy3ouMY7H9/gVCCQDiB1jIBAEx8lg/hABAXQwiTKBg==" + }, "follow-redirects": { "version": "1.15.4", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", @@ -5145,7 +5191,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "requires": { "ansi-regex": "^5.0.1" } diff --git a/package.json b/package.json index 253e1b4..463f8f0 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,9 @@ } }, "scripts": { - "langs": "node scripts/langs.js", + "langs:check": "node scripts/langs.js --check", + "langs:format": "node scripts/langs.js --format", + "langs:localize": "node scripts/langs.js --localize", "start": "npx electron src/index.js", "debug": "npm run devtools", "devtools": "npx electron src/index.js --devtools", @@ -49,6 +51,8 @@ "homepage": "https://github.com/0neGal/viper#readme", "dependencies": { "electron-updater": "^4.6.1", + "enquirer": "^2.4.1", + "flattenizer": "^1.1.3", "follow-redirects": "^1.15.4", "fs-extra": "^10.0.0", "fuse.js": "^6.5.3", diff --git a/scripts/langs.js b/scripts/langs.js index a91b243..8c87e9c 100644 --- a/scripts/langs.js +++ b/scripts/langs.js @@ -1,76 +1,381 @@ const fs = require("fs"); +const dialog = require("enquirer"); +const flat = require("flattenizer"); +const args = require("minimist")(process.argv.slice(2), { + boolean: [ + "help", + "check", + "format", + "localize" + ], -let problems = false; -let maintainers = require("../src/lang/maintainers.json"); + default: { + "help": false, + "check": false, + "format": false, + "localize": false + } +}) + +console = require("../src/modules/console"); + +// help message +if (args["help"]) { + console.log(`options: + --help shows this help message + --check checks for incorrectly formatted lang files + and missing localizations + --format formats all lang files correctly if the files + can be read and parsed + --localize allows you add missing incorrectly + localizations, and edit old ones + `.trim()) // the trim removes the last blank newline + + process.exit(0); +} -function flatten_obj(data) { - var obj = {}; +// move into `scripts` folder, makes sure all file system requests work +// identically to `require()` +process.chdir(__dirname); - for (let i in data) { - if (! data.hasOwnProperty(i)) { - continue; +// get list of files in `src/lang/`, except for `maintainers.json` these +// should all be language files +let langs = fs.readdirSync("../src/lang"); + +// get the English language file and flatten it +let lang = flat.flatten(require("../src/lang/en.json")); + +// formats all files automatically, nothing too fancy, it ignores +// `en.json` however, as its manually edited. +let format = (logging = true) => { + // run through langs + langs.forEach((locale_file) => { + // ignore these files + if (locale_file == "en.json" + || locale_file == "maintainers.json") { + return; } - if (typeof data[i] == "object" && data[i] !== null) { - var flattened = flatten_obj(data[i]); - for (var ii in flattened) { - if (! flattened.hasOwnProperty(ii)) { - continue; - } + // path to lang file + let file_path = "../src/lang/" + locale_file; + + try { + // attempt read, parse and flatten `file_path` + let json = flat.flatten(require(file_path)); + + // sort `json` + json = Object.fromEntries( + Object.entries(json).sort() + ) - obj[i + "." + ii] = flattened[ii]; + // delete keys that are only found in `locale_file` but not + // in the English localization file, if something doesn't + // exist in the English localization file, then it shouldn't + // exist at all! + for (let i in json) { + if (! lang[i]) { + delete json[i]; + } } - } else { - obj[i] = data[i]; + + json = flat.unflatten(json); + + // attempt to stringify earlier JSON, with default + // formatting, directly into `file_path` + fs.writeFileSync( + file_path, JSON.stringify(json, null, "\t") + ) + }catch(err) { + // something went wrong! + console.error("Couldn't format: " + locale_file); } - } + }) - return obj; + console.ok("Formatted all localization files."); } -let lang = flatten_obj(require("../src/lang/en.json")); +// starts up a prompt interface to edit localization strings, letting +// you both add missing ones, and change old ones +let localize = async () => { + // check if there's any missing keys + let problems = check(false); + + // this'll have the `choices` for language picking prompt + let lang_list = []; + + // run through langs + langs.forEach((locale_file) => { + // ignore these files + if (locale_file == "en.json" + || locale_file == "maintainers.json") { + return; + } + + // default value + let lang_name = locale_file; + + // are we missing any keys? if so, add a "(missing)" label at + // the end of the language name + let missing = (problems[lang_name] && problems[lang_name].length); + if (missing) { + lang_name += ` (missing: ${missing})`; + } -langs = fs.readdirSync("src/lang") -langs.forEach((localefile) => { - if (localefile == "maintainers.json") {return} + // add to list of langs + lang_list.push(lang_name); + }) + + // prompt for which lang to edit + let picked_lang = await new dialog.AutoComplete({ + choices: lang_list, + message: "Pick a language to edit:", + }).run() + + // remove extra labels after the lang file name itself + picked_lang = picked_lang.replace(/ \(.*/, ""); + + // this'll contain the languages flattened contents + let lang_keys; - let missing = []; - let langmaintainers = maintainers.list[localefile.replace(/\..*$/, "")]; - let locale = false; try { - locale = flatten_obj(require("../src/lang/" + localefile)); - }catch(err) { - console.log(`\x1b[101m!! ${localefile} is not formatted right !!\x1b[0m`); - return + // attempt to read, parse and flatten the language file + lang_keys = flat.flatten(require("../src/lang/" + picked_lang)); + }catch (err) { + // something went wrong! + console.error("Couldn't read and parse language file"); + process.exit(1); } - for (let i in lang) { - if (! locale[i]) { - missing.push(i); + // should we just show the keys that are missing, or everything? + let just_missing = false; + + // get just the flattened keys of the language + let keys = Object.keys(lang_keys); + + console.log(problems) + // are there any missing keys? + if (problems[picked_lang].length) { + // prompt for whether we should only show missing keys + just_missing = await new dialog.Confirm({ + message: "Add just missing keys without editing all keys?", + }).run() + + // if we should just show missing keys, remove all other keys, + // if we're allowed to show other keys, then we'll at least add + // the missing keys + if (just_missing) { + keys = problems[picked_lang]; + } else { + keys = [ + ...problems[picked_lang], + ...keys, + ] } } - if (missing.length > 0) { - problems = true; + // add "Save changes" option + keys = [ + "Save changes", + ...keys + ] - console.error(`${localefile} is missing:`) - for (let i in missing) { - console.log(`\x1b[31m ${missing[i]}\x1b[0m`) + // add "(missing)" label to missing keys + for (let i = 0; i < keys.length; i++) { + if (! just_missing && problems[picked_lang].includes(keys[i])) { + keys[i] = keys[i] + " \x1b[91m(missing)\x1b[0m"; } + } - console.log() + // this'll hold the flattened edits we make + let edited_keys = {}; - console.log("Maintainers: ") - for (let i in langmaintainers) { - console.log(` ${langmaintainers[i]}`) + // starts the process of editing a key + let edit_key = async () => { + // prompt for which key to edit + let key_to_edit = await new dialog.AutoComplete({ + limit: 15, + choices: [...keys], + message: "Pick a key to edit:" + }).run() + + // if "Save changes" was picked then return all the edits we've + // made and stop prompting for new edits + if (key_to_edit == "Save changes") { + return edited_keys; } - console.log("\n") + // strip labels from chosen key name + key_to_edit = key_to_edit.split(" ")[0]; + + // prompt for what to set the key to + let edited_key = await new dialog.Input({ + type: "input", + message: `Editing: ${key_to_edit}\n` + + " Original string: " + lang[key_to_edit] + "\n" + }).run() + + // add the edited key in `edited_keys` + edited_keys[key_to_edit] = edited_key; + + // add "(edited)" to the label of this key + for (let i = 0; i < keys.length; i++) { + if (keys[i].split(" ")[0] == key_to_edit) { + keys[i] = key_to_edit + " \x1b[94m(edited)\x1b[0m"; + } + } + + // clear screen and ask for the next edit to be made + console.clear(); + return edit_key(); } -}) -if (! problems) { - console.log("\x1b[32mAll localizations are complete and formatted properly.\x1b[0m"); -} else { - process.exit(1); + // start the process of key editing, whenever the below function + // returns with the list of edits, it also only first returns when + // all the changes have been made and "Save changes" has been + // selected in the menu + let changes = await edit_key(); + + console.clear(); + + try { + // merge edits and original lang file, then unflatten them + let final_json = flat.unflatten({ + ...lang_keys, + ...changes + }) + + // attempt to write `final_json` to the language file + fs.writeFileSync( + "../src/lang/" + picked_lang, + JSON.stringify(final_json, null, "\t") + ) + + console.ok("Saved changes: " + picked_lang); + + // check for changes + check(true); + + // format everything + format(true); + }catch(err) { + // something went wrong! + console.error("Failed to save changes: " + picked_lang); + } +} + +// checks whether or not language files are missing any keys, and +// whether they're even parseable. +// +// an object will be returned containing information about each file and +// which, if any, keys are missing from them +let check = (logging = true) => { + // this'll contain the missing keys for all the files, if any + let problems = {}; + + // this'll be changed to `true` if any errors at any point arise + let has_problems = false; + + // get list of maintainers for each language + let maintainers = require("../src/lang/maintainers.json"); + + // run through langs + langs.forEach((locale_file) => { + // ignore this file, it's not a language file + if (locale_file == "maintainers.json") {return} + + // this'll contain missing keys + let missing = []; + + // this'll contain the flattened language file contents + let locale = false; + + // this is the list of maintainers for this language + let lang_maintainers = maintainers.list[ + locale_file.replace(/\..*$/, "") + ] + + // attempt read, parse and flatten language file + try { + locale = flat.flatten(require("../src/lang/" + locale_file)); + }catch(err) { + // we couldn't parse it! + if (logging) { + has_problems = true; + console.error(`!! ${locale_file} is not formatted right !!`); + } + + return; + } + + // run through keys, and note ones that are missing from + // `en.json` in this lang + for (let i in lang) { + if (! locale[i]) { + missing.push(i); + } + } + + // add missing keys to `problems` + problems[locale_file] = missing; + + // was there any missing keys? + if (missing.length > 0) { + // this is a problem + has_problems = true; + + // do nothing if we're not supposed to log anything + if (! logging) { + return; + } + + // log language file with missing keys + console.error(`${locale_file} is missing:`); + + // log missing keys + for (let i in missing) { + console.error(` ${missing[i]}`); + } + + // spacing + console.log(); + + // log the maintainers for this language + console.log("Maintainers: "); + for (let i in lang_maintainers) { + console.log(` ${lang_maintainers[i]}`); + } + + console.log("\n"); + } + }) + + // if no problems occurred, and we can log things, then print that + // everything went just fine! + if (! has_problems && logging) { + console.ok("All localizations are complete and parseable."); + } + + return problems; +} + +// run `check()` if `--check()` is set +if (args["check"]) { + let problems = check(); + + // exit with the correct exit code + if (problems.length) { + process.exit(1); + } else { + process.exit(); + } +} + +// run `format()` if `--format` is set +if (args["format"]) { + format(); +} + +// run `localize()` if `--localize` is set +if (args["localize"]) { + localize(); } diff --git a/src/lang.js b/src/lang.js index b3cc251..7397839 100644 --- a/src/lang.js +++ b/src/lang.js @@ -1,36 +1,12 @@ const fs = require("fs"); +const flat = require("flattenizer"); const json = require("./modules/json"); const enLang = json(__dirname + "/lang/en.json"); let lang = ""; var langObj = {}; -function flatten_obj(data) { - var obj = {}; - - for (let i in data) { - if (! data.hasOwnProperty(i)) { - continue; - } - - if (typeof data[i] == "object" && data[i] !== null) { - var flattened = flatten_obj(data[i]); - for (var ii in flattened) { - if (! flattened.hasOwnProperty(ii)) { - continue; - } - - obj[i + "." + ii] = flattened[ii]; - } - } else { - obj[i] = data[i]; - } - } - - return obj; -} - function _loadTranslation(forcedlang) { if (fs.existsSync("viper.json")) { // Validate viper.json @@ -65,7 +41,7 @@ function _loadTranslation(forcedlang) { lang = "en"; } - langObj = flatten_obj(json(__dirname + `/lang/${lang}.json`) || {}); + langObj = flat.flatten(json(__dirname + `/lang/${lang}.json`) || {}); } diff --git a/src/lang/de.json b/src/lang/de.json index ee797a1..c7dfb0e 100644 --- a/src/lang/de.json +++ b/src/lang/de.json @@ -1,307 +1,267 @@ { - "lang": { - "title": "German - Deutsch" - }, - "cli": { + "auto_updates": { + "available": "Ein Update für Northstar wurde gefunden!", + "checking": "Überprüfe Northstar auf Updates...", + "no_update": "Kein Update für Northstar vorhanden.", + "updating_ns": "Updateprozess wird gestartet..." + }, + "gamepath": { + "lost": "Installationspfad wurde nicht gefunden, bitte stelle sicher das er gemountet ist!" + }, "help": { - "help": "Zeigt die Hilfe Nachricht an.", - "devtools": "Öffnet Entwickler/Debug Werkzeuge.", - "version": "Gibt die Versions Informationen aus.", "cli": "Zwingt die CLI Einstellung auf \"an\".", - "update": "Aktualisiert den Installationspfad von Northstar, durch den gegeben Installationspfad von Titanfall 2.", - "setpath": "Setzt den Installationspfad von Titanfall 2.", - "update_vp": "Aktualisiert Viper, falls dies unterstützt wird.", - "no_vp_updates": "Überschreibt viper.json und deaktiviert das Aktualisieren von Viper.", + "devtools": "Öffnet Entwickler/Debug Werkzeuge.", + "help": "Zeigt die Hilfe Nachricht an.", "install_mod": "Installiert einen Mod, eine ZIP-Datei oder einen Ordner.", + "no_vp_updates": "Überschreibt viper.json und deaktiviert das Aktualisieren von Viper.", "remove_mod": "Entfernt einen Mod.", - "toggle_mod": "Aktiviert/Deaktiviert einen Mod." + "setpath": "Setzt den Installationspfad von Titanfall 2.", + "toggle_mod": "Aktiviert/Deaktiviert einen Mod.", + "update": "Aktualisiert den Installationspfad von Northstar, durch den gegeben Installationspfad von Titanfall 2.", + "update_vp": "Aktualisiert Viper, falls dies unterstützt wird.", + "version": "Gibt die Versions Informationen aus." + }, + "launch": { + "linux_error": "Das Spiel starten ist derzeit nicht auf Linux unterstützt" + }, + "mods": { + "cant_find": "Ein Mod mit diesem Namen konnte nicht gefunden werden!", + "failed": "Mod konnte nicht installiert werden!", + "improper_json": "Die mod.json vom Mod %s ist fehlerhaft!", + "installed": "Mod wurde erfolgreich installiert!", + "not_a_mod": "Die angegebene Datei/der angegebene Ordner ist kein Mod!", + "removed": "Mod wurde erfolgreich entfernt!", + "toggled": "Mod wurde erfolgreich aktiviert/deaktiviert!", + "toggled_all": "Alle Mods wurde erfolgreich aktiviert/deaktiviert!" }, - "setpath": { "no_arg": "Keine Argument für --setpath wurden angegeben!" }, - "update": { - "current": "Jetzige Version:", - "downloading": "Wird heruntergeladen...", "checking": "Überprüfe auf Updates...", + "current": "Jetzige Version:", "download_done": "Herunterladen abgeschlossen! Extrahiere...", + "downloading": "Wird heruntergeladen...", "finished": "Installation/Aktualisierung abeschlossen!", + "no_internet": "Keine Internetverbindung", "uptodate": "Installation ist bereits auf dem neusten Stand (%s), aktualisieren wird übersprungen.", - "uptodate_short": "Auf dem neusten stand", - "no_internet": "Keine Internetverbindung" - }, - + "uptodate_short": "Auf dem neusten stand" + } + }, + "general": { "auto_updates": { - "checking": "Überprüfe Northstar auf Updates...", - "available": "Ein Update für Northstar wurde gefunden!", - "updating_ns": "Updateprozess wird gestartet...", - "no_update": "Kein Update für Northstar vorhanden." - }, - - "launch": { - "linux_error": "Das Spiel starten ist derzeit nicht auf Linux unterstützt" - }, - - "gamepath": { - "lost": "Installationspfad wurde nicht gefunden, bitte stelle sicher das er gemountet ist!" + "game_running": "Spiel wird ausgeführt, Northstar wird nicht aktualisiert." }, - + "launching": "Starte!", + "missing_path": "Installationspfad konnte nicht automatisch gefunden werden, bitte setze diesen manuell!", "mods": { - "failed": "Mod konnte nicht installiert werden!", - "removed": "Mod wurde erfolgreich entfernt!", - "toggled": "Mod wurde erfolgreich aktiviert/deaktiviert!", - "installed": "Mod wurde erfolgreich installiert!", - "cant_find": "Ein Mod mit diesem Namen konnte nicht gefunden werden!", - "not_a_mod": "Die angegebene Datei/der angegebene Ordner ist kein Mod!", - "toggled_all": "Alle Mods wurde erfolgreich aktiviert/deaktiviert!", - "improper_json": "Die mod.json vom Mod %s ist fehlerhaft!" - } + "disabled": "Deaktivierte Mods:", + "enabled": "Aktivierte Mods:", + "installed": "Installierte Mods:" + }, + "not_installed": "Northstar ist nicht installiert!", + "running": "Läuft bereits." }, - "gui": { - "exit": "Schließen", - "search": "Suchen...", - "welcome": "Willkommen zu Viper!", - "setpath": "Installationspfad aktualisieren.", - - "versions": { - "viper": "Viper Version", - "northstar": "Northstar Version" + "browser": { + "end_of_list": "Alle Packete wurden geladen.", + "filter": { + "client": "Client-seitig", + "mods": "Mods", + "server": "Server-seitig", + "skins": "Skins" + }, + "info": "Info", + "install": "Installieren", + "load_more": "Lade mehr...", + "loading": "Lade Mods...", + "made_by": "von", + "no_results": "Keine Ergebnisse...", + "reinstall": "Neuinstallieren", + "update": "Aktualisieren", + "view": "Anschauen" }, - - "update": { - "button": "Aktualisieren", - "check": "Auf Update überprüfen", - "downloading": "Herunterladen...", - "extracting": "Extrahiere update...", - "finished": "Fertig! Spielbereit!", - "uptodate": "Bereits auf dem neusten Stand!", - "available": "Ein neues update für Viper ist verfügbar willst du Viper neustarten und diese installieren?" + "exit": "Schließen", + "gamepath": { + "found_missing_perms": "Es wurde ein Spielepfad automatisch gefunden, jedoch fehlen dir die Rechte Datein zulesen oder zuschreiben in diesem Pfad. Bitte wähle einen anderen Pfad aus oder erhalte die benötigten Berechtigungen für den gewählten Pfad:\n\n", + "lost": "Der angegeben Installationspfad ist nicht mehr gültig!\n\nBitte stelle sicher das die Festplatte mounted ist, oder falls sich der Installationspfad geändert hat, das du diesen auch in Viper aktualisierst!\n\nViper wird möglicherweiße bis zum nächsten Neustart nicht funktionieren!", + "lost_perms": "Wie es aussieht hat der jetzige Nutzer die Rechte Datein zulesen oder zuschreiben im Spielepfad verloren, bitte wähle einen richtigen Pfad aus oder erhalte die benötigten Berechtigungen für den jetzigen:\n\n", + "missing_perms": "Wie es aussieht hat der jetzige Nutzer die Rechte Datein zulesen oder zuschreiben im Spielepfad nicht, bitte wähle einen richtigen Pfad aus oder erhalte die benötigten Berechtigungen für den gewählten Pfad:\n\n", + "must": "Der Installationspfad muss gesetzt worden sein um Viper zu nutzen.", + "wrong": "Der angegebene Installationspfad ist nicht gültig!" }, - + "install": "Installieren", + "launch": "Starten", "mods": { - "title": "Mods", + "confirm_dependencies": "Dieser Mod benötigt weitere Mods, diese werden unter dieser Nachricht angezeigt. Beim drücken auf \"Ok\" stimmst du zu da diese Installiert werden.\n\n", + "confirm_plugins": { + "description": "Native plugins haben sehr viel mehr Rechte als reguläre Mods, da durch ist das nutzen dieser um einiges unsicherer denn es ist einfacher ihnen zuschaden! Bitte installieren sie nur native plugins von vertrauten Entwicklern oder ähnliches, falls dir bewusst ist was du machst kannst du diese Nachricht ignorieren.", + "title": "Das folgende Packet hat native plugins::" + }, "count": "Installierte Mods:", "disabled_tag": "Deaktiviert", - "remove": "Entfernen", - "install": "Installiere den Mod", + "drag_n_drop": "Drag and drop den Mod um ihn zu installieren!", + "extracting": "Extrahiere den Mod...", "find": "Suche nach Mods", - "toggle_all": "Aktiviere/Deaktiviere alle Mods", - "toggle_all_confirm": "Das Deaktivieren aller Mods kann zum Deaktiveren von Mods führen die von Northstar benötigt werden. Bist du dir sicher das du diese Aktion durchführen willst?", + "install": "Installiere den Mod", + "installed_mod": "Mod installiert!", + "installing": "Installiere den Mod...", + "not_a_mod": "Kein Mod!", + "nothing_selected": "Es wurde kein Mod ausgewählt.", + "remove": "Entfernen", "remove_all": "Entferne alle Mods", "remove_all_confirm": "Das Entfernen aller Mods führt meist dazu das eine Neuinstallation von Northstar nötig ist. Bist du dir sicher das du diese Aktion durchführen willst?", - "nothing_selected": "Es wurde kein Mod ausgewählt.", "required_confirm": "Du hast einen von Northstar benötigten Mod ausgewählt, bist du dir sicher das du diese Aktion durchführen willst", - - "not_a_mod": "Kein Mod!", - "unknown_author": "Unbekannt", - "extracting": "Extrahiere den Mod...", - "installing": "Installiere den Mod...", - "installed_mod": "Mod installiert!", - "drag_n_drop": "Drag and drop den Mod um ihn zu installieren!", - "confirm_dependencies": "Dieser Mod benötigt weitere Mods, diese werden unter dieser Nachricht angezeigt. Beim drücken auf \"Ok\" stimmst du zu da diese Installiert werden.\n\n", - "confirm_plugins": { - "title": "Das folgende Packet hat native plugins::", - "description": "Native plugins haben sehr viel mehr Rechte als reguläre Mods, da durch ist das nutzen dieser um einiges unsicherer denn es ist einfacher ihnen zuschaden! Bitte installieren sie nur native plugins von vertrauten Entwicklern oder ähnliches, falls dir bewusst ist was du machst kannst du diese Nachricht ignorieren." - } + "title": "Mods", + "toggle_all": "Aktiviere/Deaktiviere alle Mods", + "toggle_all_confirm": "Das Deaktivieren aller Mods kann zum Deaktiveren von Mods führen die von Northstar benötigt werden. Bist du dir sicher das du diese Aktion durchführen willst?", + "unknown_author": "Unbekannt" }, - - "browser": { - "info": "Info", - "view": "Anschauen", - "made_by": "von", - "update": "Aktualisieren", - "install": "Installieren", - "reinstall": "Neuinstallieren", - "loading": "Lade Mods...", - "load_more": "Lade mehr...", - "end_of_list": "Alle Packete wurden geladen.", - "no_results": "Keine Ergebnisse...", - - "filter": { - "mods": "Mods", - "skins": "Skins", - "client": "Client-seitig", - "server": "Server-seitig" + "nsupdate": { + "gaming": { + "body": "Ein Update für Northstar ist verfügbar! Du kannst die Aktualisierung nach dem schließen erzwingen!", + "title": "Northstar Update verfübar!" } }, - + "search": "Suchen...", + "server": { + "offline": "Masterserver ist offline", + "player": "Spieler", + "players": "Spieler", + "servers": "Server" + }, + "setpath": "Installationspfad aktualisieren.", "settings": { - "save": "Speichern", - "discard": "Verwerfen", - - "title": { - "ns": "Northstar", - "language": "Sprache", - "updates": "Updates", - "misc": "Sonstiges" + "autolang": { + "desc": "Beim Aktiveren versucht Viper die richtige Sprache durch deine Systemsprache zu erkennen, durch das deaktivieren ist die manuelle Auswahl aktiviert.", + "title": "Automatische Spracherkennung" }, - - "nsargs": { - "title": "Startoptionen", - "desc": "Hier kannst du Startoptionen für Northstar/Titanfall setzen." + "autoupdate": { + "desc": "Viper wird sich automatisch selbst aktualisieren!", + "title": "Viper Auto-Updates" }, - - "autolang": { - "title": "Automatische Spracherkennung", - "desc": "Beim Aktiveren versucht Viper die richtige Sprache durch deine Systemsprache zu erkennen, durch das deaktivieren ist die manuelle Auswahl aktiviert." + "discard": "Verwerfen", + "excludes": { + "desc": "Beim Aktualisieren von Northstar werden diese Datein nicht überschrieben. Solang du nicht weißt was du verändert solltest du diese Datein auch nicht berabeiten. Dateinamen sollte durch eine Lücke getrennt werden.", + "title": "Behalte Datein beim aktualisieren." }, - "forcedlang": { - "title": "Sprache", - "desc": "Wenn \"Automatische Spracherkennung\" deaktiviert ist, wird diese Option genutzt um die Sprachen zu ändern. Oft ist ein Neustart nötig!" + "desc": "Wenn \"Automatische Spracherkennung\" deaktiviert ist, wird diese Option genutzt um die Sprachen zu ändern. Oft ist ein Neustart nötig!", + "title": "Sprache" }, - - "autoupdate": { - "title": "Viper Auto-Updates", - "desc": "Viper wird sich automatisch selbst aktualisieren!" + "miscbuttons": { + "buttons": { + "change_gamepath": "Spielepfad ändern", + "force_quit_game": "Titanfall/Northstar schließung erzwingen", + "force_quit_origin": "Origin/EA Desktop schließung erzwingen", + "open_gamepath": "Spielepfad öffnen", + "reset_config": "Konfiguration zurücksetzung erzwingen", + "restart_viper": "Viper neustarten" + }, + "desc": "Beim weiteren Problemen könnten diesen Aktion helfen.", + "open_gamepath_alert": "Fehlerhafter Spielepfad, dadurch kann keiner geöffnet werden. Bitte wähle den richtigen Pfad zuerst!", + "reset_config_alert": "Bestätige die Zurücksetzung der Konfiguration, Viper wird nach dem bestätigen die Konfiguration Datein löschen und neustarten.", + "title": "Zusatz Aktionen" }, - - "nsupdate": { - "title": "Northstar Auto-Updates", - "desc": "Viper wird Northstar automatisch aktualisieren, eine manuelle Aktualisierung ist trotzdem möglich." + "nsargs": { + "desc": "Hier kannst du Startoptionen für Northstar/Titanfall setzen.", + "title": "Startoptionen" }, - - "excludes": { - "title": "Behalte Datein beim aktualisieren.", - "desc": "Beim Aktualisieren von Northstar werden diese Datein nicht überschrieben. Solang du nicht weißt was du verändert solltest du diese Datein auch nicht berabeiten. Dateinamen sollte durch eine Lücke getrennt werden." + "nsupdate": { + "desc": "Viper wird Northstar automatisch aktualisieren, eine manuelle Aktualisierung ist trotzdem möglich.", + "title": "Northstar Auto-Updates" }, - "originkill": { - "title": "Automatisch Origin und oder EA Desktop schließen", - "desc": "Wenn Viper sich schließt soll Origin und oder EA Desktop sich auch schließen." + "desc": "Wenn Viper sich schließt soll Origin und oder EA Desktop sich auch schließen.", + "title": "Automatisch Origin und oder EA Desktop schließen" + }, + "save": "Speichern", + "title": { + "language": "Sprache", + "misc": "Sonstiges", + "ns": "Northstar", + "updates": "Updates" }, - "updatebuttons": { - "title": "Reparations Aktionen", - "desc": "Bei Problemen mit updates könnte diese Aktionen helfen.", "buttons": { - "reset_cached_api_requests": "API zwischenspeicher leerung erzwingen", + "force_delete_install_cache": "Zwischengespeicherte Installationsdateien löschung erzwingen", "force_northstar_reinstall": "Northstar neuinstallation erzwingen", - "force_delete_install_cache": "Zwischengespeicherte Installationsdateien löschung erzwingen" - } - }, - - "miscbuttons": { - "title": "Zusatz Aktionen", - "desc": "Beim weiteren Problemen könnten diesen Aktion helfen.", - "buttons": { - "open_gamepath": "Spielepfad öffnen", - "reset_config": "Konfiguration zurücksetzung erzwingen", - "restart_viper": "Viper neustarten", - "change_gamepath": "Spielepfad ändern", - "force_quit_game": "Titanfall/Northstar schließung erzwingen", - "force_quit_origin": "Origin/EA Desktop schließung erzwingen" + "reset_cached_api_requests": "API zwischenspeicher leerung erzwingen" }, - - "open_gamepath_alert": "Fehlerhafter Spielepfad, dadurch kann keiner geöffnet werden. Bitte wähle den richtigen Pfad zuerst!", - "reset_config_alert": "Bestätige die Zurücksetzung der Konfiguration, Viper wird nach dem bestätigen die Konfiguration Datein löschen und neustarten." - } - }, - - "nsupdate": { - "gaming": { - "title": "Northstar Update verfübar!", - "body": "Ein Update für Northstar ist verfügbar! Du kannst die Aktualisierung nach dem schließen erzwingen!" + "desc": "Bei Problemen mit updates könnte diese Aktionen helfen.", + "title": "Reparations Aktionen" } }, - - "server": { - "player": "Spieler", - "players": "Spieler", - "servers": "Server", - "offline": "Masterserver ist offline" - }, - - "launch": "Starten", - "install": "Installieren", - - "gamepath": { - "must": "Der Installationspfad muss gesetzt worden sein um Viper zu nutzen.", - "wrong": "Der angegebene Installationspfad ist nicht gültig!", - "lost": "Der angegeben Installationspfad ist nicht mehr gültig!\n\nBitte stelle sicher das die Festplatte mounted ist, oder falls sich der Installationspfad geändert hat, das du diesen auch in Viper aktualisierst!\n\nViper wird möglicherweiße bis zum nächsten Neustart nicht funktionieren!", - "lost_perms": "Wie es aussieht hat der jetzige Nutzer die Rechte Datein zulesen oder zuschreiben im Spielepfad verloren, bitte wähle einen richtigen Pfad aus oder erhalte die benötigten Berechtigungen für den jetzigen:\n\n", - "found_missing_perms": "Es wurde ein Spielepfad automatisch gefunden, jedoch fehlen dir die Rechte Datein zulesen oder zuschreiben in diesem Pfad. Bitte wähle einen anderen Pfad aus oder erhalte die benötigten Berechtigungen für den gewählten Pfad:\n\n", - "missing_perms": "Wie es aussieht hat der jetzige Nutzer die Rechte Datein zulesen oder zuschreiben im Spielepfad nicht, bitte wähle einen richtigen Pfad aus oder erhalte die benötigten Berechtigungen für den gewählten Pfad:\n\n" - }, - "toast": { - "title": { - "installed": "Mod installiert!", - "failed": "Fehler beim Installieren des Mods!", - "malformed": "Fehlerhafte Ordnerstruktur!", - "duped": "Duplizierter Ordner name!", - "unknown_error": "Unbekannter Fehler!", - "no_internet": "Kein Internet" - }, - "desc": { + "duped": "hat mehrere Ordner in sich mit dem selben Namen, wodurch ein duplizierter Ordner ensteht! Falls du der Entwickler bist solltest du dies beheben!", + "failed": "Ein unbekannter Fehler ist aufgetaucht beim Installieren, die Schuld kann beim Autor liegen oder bei Viper selbst!", "installed": "wurde installiert!", "malformed": "hat eine fehlerhafte Ordnerstruktur, falls du der Entwickler bist, solltest du dies beheben.", - "failed": "Ein unbekannter Fehler ist aufgetaucht beim Installieren, die Schuld kann beim Autor liegen oder bei Viper selbst!", - "duped": "hat mehrere Ordner in sich mit dem selben Namen, wodurch ein duplizierter Ordner ensteht! Falls du der Entwickler bist solltest du dies beheben!", - "unknown_error": "Ein unbekannter Fehler ist aufgetreten für mehr details drücken! Es wird empfohlen einen Screenshot von der detalierten Fehlernachricht zu machen wenn ein Bug-Report erstellt wird!", - "no_internet": "Viper funktioniert möglicherweise nicht korrekt" + "no_internet": "Viper funktioniert möglicherweise nicht korrekt", + "unknown_error": "Ein unbekannter Fehler ist aufgetreten für mehr details drücken! Es wird empfohlen einen Screenshot von der detalierten Fehlernachricht zu machen wenn ein Bug-Report erstellt wird!" + }, + "title": { + "duped": "Duplizierter Ordner name!", + "failed": "Fehler beim Installieren des Mods!", + "installed": "Mod installiert!", + "malformed": "Fehlerhafte Ordnerstruktur!", + "no_internet": "Kein Internet", + "unknown_error": "Unbekannter Fehler!" } - } - }, - - "viper": { - "menu": { - "main": "Viper", - "release": "Release Notes", - "info": "Extras" }, - - "info": { - "links": "Links", - "credits": "Credits", - "discord": "Tritt dem Discord bei:", - "issues": "Report ein Problem mit Viper:" - } + "update": { + "available": "Ein neues update für Viper ist verfügbar willst du Viper neustarten und diese installieren?", + "button": "Aktualisieren", + "check": "Auf Update überprüfen", + "downloading": "Herunterladen...", + "extracting": "Extrahiere update...", + "finished": "Fertig! Spielbereit!", + "uptodate": "Bereits auf dem neusten Stand!" + }, + "versions": { + "northstar": "Northstar Version", + "viper": "Viper Version" + }, + "welcome": "Willkommen zu Viper!" + }, + "lang": { + "title": "German - Deutsch" }, - "ns": { "menu": { + "force_quit": "Schließen erzwingen", "main": "Northstar Launcher", "mods": "Mods", - "release": "Release Notes", - "force_quit": "Schließen erzwingen" + "release": "Release Notes" } }, - - "general": { - "auto_updates": { - "game_running": "Spiel wird ausgeführt, Northstar wird nicht aktualisiert." - }, - - "mods": { - "enabled": "Aktivierte Mods:", - "disabled": "Deaktivierte Mods:", - "installed": "Installierte Mods:" - }, - - "missing_path": "Installationspfad konnte nicht automatisch gefunden werden, bitte setze diesen manuell!", - "not_installed": "Northstar ist nicht installiert!", - "launching": "Starte!", - "running": "Läuft bereits." - }, - "request": { - "no_vp_release_notes": "

Viper Release Notes konnten nicht geladen werden.

Versuche es erneut später!", - "no_ns_release_notes": "

Northstar Release Notes konnten nicht geladen werden.

Versuche es erneut später!" + "no_ns_release_notes": "

Northstar Release Notes konnten nicht geladen werden.

Versuche es erneut später!", + "no_vp_release_notes": "

Viper Release Notes konnten nicht geladen werden.

Versuche es erneut später!" }, - "tooltip": { "close": "Schließen", "minimize": "Minimieren", - "settings": "Einstellungen", "pages": { - "viper": "Viper", "northstar": "Northstar", - "titanfall": "Titanfall 2" + "titanfall": "Titanfall 2", + "viper": "Viper" + }, + "settings": "Einstellungen" + }, + "viper": { + "info": { + "credits": "Credits", + "discord": "Tritt dem Discord bei:", + "issues": "Report ein Problem mit Viper:", + "links": "Links" + }, + "menu": { + "info": "Extras", + "main": "Viper", + "release": "Release Notes" } } -} +} \ No newline at end of file diff --git a/src/lang/es.json b/src/lang/es.json index 5d3bb27..4a8d238 100644 --- a/src/lang/es.json +++ b/src/lang/es.json @@ -1,307 +1,267 @@ { - "lang": { - "title": "Spanish - Español" - }, - "cli": { + "auto_updates": { + "available": "¡Actualización de Northsar disponible!", + "checking": "Buscando actualizaciones de Northstar...", + "no_update": "No hay actualizaciones de Northstar disponibles.", + "updating_ns": "Lanzando proceso de actualización..." + }, + "gamepath": { + "lost": "El directorio del juego no fue encontrado, ¡asegúrate de que esté disponible!" + }, "help": { - "help": "muestra este mensaje de ayuda", - "devtools": "abre las herramientas de desarrollador/depuración ", - "version": "muestra la información de la versión", "cli": "obliga la linea de comandos a habilitarse", - "update": "actualiza Northstar desde la ruta de juego establecida", - "setpath": "establece la ruta del juego", - "update_vp": "actualiza Viper si es soportado", - "no_vp_updates": "sobrescribe viper.json y deshabilita las actualizaciones de Viper", + "devtools": "abre las herramientas de desarrollador/depuración ", + "help": "muestra este mensaje de ayuda", "install_mod": "instala una modificación, desde una carpeta o zip", + "no_vp_updates": "sobrescribe viper.json y deshabilita las actualizaciones de Viper", "remove_mod": "remueve una modificación", - "toggle_mod": "alterna el estado de la modificación" + "setpath": "establece la ruta del juego", + "toggle_mod": "alterna el estado de la modificación", + "update": "actualiza Northstar desde la ruta de juego establecida", + "update_vp": "actualiza Viper si es soportado", + "version": "muestra la información de la versión" + }, + "launch": { + "linux_error": "La ejecución del juego en Linux aun no está implementada" + }, + "mods": { + "cant_find": "¡No se encuentra una modificación con ese nombre!", + "failed": "¡Fallo al instalar el mod!", + "improper_json": "%s's mod.json tiene errores de formato", + "installed": "¡Modificiación instalada exitosamente!", + "not_a_mod": "La carpeta o el archivo seleccionado no es una modificación", + "removed": "¡Modificación removida exitosamente!", + "toggled": "¡El estado de la modificación ha cambiado exitosamente!", + "toggled_all": "¡El estado de todas las modifiaciones ha sido cambiado exitosamente!" }, - "setpath": { "no_arg": "No se ha proporcionado ningún argumento para --setpath" }, - "update": { - "current": "Versión actual:", - "downloading": "Descargando...", "checking": "Buscando actualizaciones...", + "current": "Versión actual:", "download_done": "¡Descarga completa! Extrayendo...", + "downloading": "Descargando...", "finished": "Instalación/Actualización completada!", + "no_internet": "Sin conexión a internet", "uptodate": "La ultima versión (%s) ya está instalada, omitiendo actualización.", - "uptodate_short": "Está actualizado", - "no_internet": "Sin conexión a internet" - }, - + "uptodate_short": "Está actualizado" + } + }, + "general": { "auto_updates": { - "checking": "Buscando actualizaciones de Northstar...", - "available": "¡Actualización de Northsar disponible!", - "updating_ns": "Lanzando proceso de actualización...", - "no_update": "No hay actualizaciones de Northstar disponibles." - }, - - "launch": { - "linux_error": "La ejecución del juego en Linux aun no está implementada" - }, - - "gamepath": { - "lost": "El directorio del juego no fue encontrado, ¡asegúrate de que esté disponible!" + "game_running": "El juego está en ejecución, no se puede actualizar Northstar" }, - + "launching": "Ejecutando", + "missing_path": "¡La ruta del jueno no se ha podido encontrar automaticamente! ¡Por favor, elige la ruta manualmente!", "mods": { - "failed": "¡Fallo al instalar el mod!", - "removed": "¡Modificación removida exitosamente!", - "toggled": "¡El estado de la modificación ha cambiado exitosamente!", - "installed": "¡Modificiación instalada exitosamente!", - "cant_find": "¡No se encuentra una modificación con ese nombre!", - "not_a_mod": "La carpeta o el archivo seleccionado no es una modificación", - "toggled_all": "¡El estado de todas las modifiaciones ha sido cambiado exitosamente!", - "improper_json": "%s's mod.json tiene errores de formato" - } + "disabled": "Modificaciones deshabilitadas:", + "enabled": "Modificaciones habilitadas:", + "installed": "Modificiaciones instaladas:" + }, + "not_installed": "¡Northstar no se ha instalado!", + "running": "Ejecutandose" }, - "gui": { - "exit": "Salir", - "search": "Buscar...", - "welcome": "Bienvenido a Viper!", - "setpath": "Cambiar la ruta del juego", - - "versions": { - "viper": "Versión de Viper", - "northstar": "Versión de Northstar" + "browser": { + "end_of_list": "Todos los paquetes han sido cargados", + "filter": { + "client": "Del lado del cliente", + "mods": "Modificaciones", + "server": "Del lado del servidor", + "skins": "Skins" + }, + "info": "Información", + "install": "Instalar", + "load_more": "Cargar más...", + "loading": "Cargando modificaciones...", + "made_by": "hecho por", + "no_results": "Sin resultados...", + "reinstall": "Re-Instalar", + "update": "Actualizar", + "view": "Ver" }, - - "update": { - "button": "Actualizar", - "check": "Buscar actualizaciones", - "downloading": "Descargando...", - "extracting": "Extrayendo actualización...", - "finished": "¡Hecho! ¡Está listo para jugar!", - "uptodate": "¡Ya está actualizado!", - "available": "Hay una actualización disponible para Viper, ¿desea reiniciar y aplicarla?" + "exit": "Salir", + "gamepath": { + "found_missing_perms": "Se encontró automáticamente una ruta de juego válida, pero tu usuario no tiene permisos para crear o leer archivos en ella. Por favor, selecciona manualmente una ruta de juego diferente o obtén acceso para leer y escribir en la carpeta:\n\n", + "lost": "¡El directorio del juego ya no existe/no se puede encontrar!\n\nAsegúrate de que tu unidad esté instalada correctamente o, si cambiaste la ubicación del juego, actualiza la ruta del juego.\n\nViper puede no funcionar correctamente hasta el próximo reinicio!", + "lost_perms": "Tu usuario parece haber perdido permisos para crear o leer archivos en la ruta de juego seleccionada. Por favor, selecciona una ruta de juego válida o recupera el acceso para leer y escribir en la carpeta:\n\n", + "missing_perms": "Tu usuario no tiene permisos para crear o leer archivos en la ruta de juego seleccionada. Por favor, selecciona una ruta de juego diferente o obtén acceso para leer y escribir en la carpeta:\n\n", + "must": "La ruta del juego debe establecerse para ejecutar Viper.", + "wrong": "Esta carpeta no es una ruta válida para el juego." }, - + "install": "Instalar", + "launch": "Ejecutar", "mods": { - "title": "Modificaciones (Mods)", + "confirm_dependencies": "Este paquete tiene dependencias, se muestran abajo. Presionar \"Ok\" instalará el paquete y las dependencias.\n\n", + "confirm_plugins": { + "description": "Los complementos nativos tienen mucho más acceso al sistema que un mod regular y, por lo tanto, son inherentemente menos seguros de instalar, ya que un complemento malicioso podría causar mucho más daño de esta manera. Si este complemento es de un desarrollador confiable o similar o si sabe lo que está haciendo, entonces puede ignorar completamente este mensaje.", + "title": "El siguiente paquete tiene complementos nativos:" + }, "count": "Modificaciones instaladas:", "disabled_tag": "Deshabilitado", - "install": "Instalar modificación", + "drag_n_drop": "Arrastra y suelta una modificación para instalarla", + "extracting": "Extrayendo modificación...", "find": "Buscar modificaciones", - "toggle_all": "Activar / Desactivar todo", - "toggle_all_confirm": "Alternar todo podría deshabilitar las modificaciones requeridas para que Northstar funcione. ¿Está seguro?", + "install": "Instalar modificación", + "installed_mod": "¡Modificación instalada!", + "installing": "Instalando modificación...", + "not_a_mod": "¡No es una modificación!", + "nothing_selected": "No has seleccionado una modificación.", + "remove": "Remover", "remove_all": "Remover todo", "remove_all_confirm": "Eliminar todas las modificaciones generalmente requerirá que reinstales Northstar. ¿Está seguro?", - "nothing_selected": "No has seleccionado una modificación.", "required_confirm": "Ha seleccionado un mod esencial, es posible que Northstar no funcione sin él. ¿Está seguro?", - - "not_a_mod": "¡No es una modificación!", - "extracting": "Extrayendo modificación...", - "installing": "Instalando modificación...", - "installed_mod": "¡Modificación instalada!", - "drag_n_drop": "Arrastra y suelta una modificación para instalarla", - "confirm_dependencies": "Este paquete tiene dependencias, se muestran abajo. Presionar \"Ok\" instalará el paquete y las dependencias.\n\n", - "remove": "Remover", - "unknown_author": "Desconocido", - "confirm_plugins": { - "title": "El siguiente paquete tiene complementos nativos:", - "description": "Los complementos nativos tienen mucho más acceso al sistema que un mod regular y, por lo tanto, son inherentemente menos seguros de instalar, ya que un complemento malicioso podría causar mucho más daño de esta manera. Si este complemento es de un desarrollador confiable o similar o si sabe lo que está haciendo, entonces puede ignorar completamente este mensaje." - } + "title": "Modificaciones (Mods)", + "toggle_all": "Activar / Desactivar todo", + "toggle_all_confirm": "Alternar todo podría deshabilitar las modificaciones requeridas para que Northstar funcione. ¿Está seguro?", + "unknown_author": "Desconocido" }, - - "browser": { - "info": "Información", - "view": "Ver", - "made_by": "hecho por", - "update": "Actualizar", - "install": "Instalar", - "reinstall": "Re-Instalar", - "loading": "Cargando modificaciones...", - "load_more": "Cargar más...", - "end_of_list": "Todos los paquetes han sido cargados", - "no_results": "Sin resultados...", - - "filter": { - "mods": "Modificaciones", - "skins": "Skins", - "client": "Del lado del cliente", - "server": "Del lado del servidor" + "nsupdate": { + "gaming": { + "body": "Una actualización de northstar está disponible.\nPuedes forzar su instalación despues de cerrar el juego.", + "title": "¡Actualización de Northstar disponible!" } }, - + "search": "Buscar...", + "server": { + "offline": "El servidor principal está desconectado", + "player": "jugador", + "players": "jugadores", + "servers": "servidores" + }, + "setpath": "Cambiar la ruta del juego", "settings": { - "save": "Guardar", - "discard": "Descartar", - - "title": { - "ns": "Northstar", - "updates": "Actualizaciones", - "misc": "Misceláneos", - "language": "Idioma" + "autolang": { + "desc": "Cuando está habilitado, Viper intenta detectar automáticamente el idioma de su sistema, cuando está deshabilitado, puede cambiar manualmente el idioma a continuación.", + "title": "Detectar automáticamente el idioma" }, - - "nsargs": { - "title": "Opciones de lanzamiento", - "desc": "Aqui puedes añadir opciones de lanzamiento para Northstar/Titanfall." + "autoupdate": { + "desc": "Viper se mantendrá automáticamente actualizado.", + "title": "Actualizaciones automáticas de Viper" }, - - "autolang": { - "title": "Detectar automáticamente el idioma", - "desc": "Cuando está habilitado, Viper intenta detectar automáticamente el idioma de su sistema, cuando está deshabilitado, puede cambiar manualmente el idioma a continuación." + "discard": "Descartar", + "excludes": { + "desc": "Cuando se actualice Northstar, los archivos especificados aquí no se sobrescribirán con archivos de la nueva actualización de Northstar. A menos que sepa lo que está cambiando, probablemente no debería cambiar nada aquí. Cada archivo se debe separar con un espacio.", + "title": "Conservar archivos en la actualización" }, - "forcedlang": { - "title": "Idioma", - "desc": "Cuando \"Detectar automáticamente el idioma\" está deshabilitado, ésta opción decidirá el lenguaje. Se necesita reiniciar para que surja efecto." + "desc": "Cuando \"Detectar automáticamente el idioma\" está deshabilitado, ésta opción decidirá el lenguaje. Se necesita reiniciar para que surja efecto.", + "title": "Idioma" }, - - "autoupdate": { - "title": "Actualizaciones automáticas de Viper", - "desc": "Viper se mantendrá automáticamente actualizado." + "miscbuttons": { + "buttons": { + "change_gamepath": "Cambiar ruta del juego", + "force_quit_game": "Cerrar forzosamente Titanfall y Northstar", + "force_quit_origin": "Cerrar forzosamente Origin y/o EA Desktop", + "open_gamepath": "Abrir ruta del juego", + "reset_config": "Restablecer archivo de configuración", + "restart_viper": "Reiniciar Viper" + }, + "desc": "Si estás teniendo problemas, entonces algunos de estos botones pueden ayudar a solucionarlo", + "open_gamepath_alert": "No se ha seleccionado una ruta de juego válida, por lo que no hay una ruta de juego para abrir. ¡Por favor, selecciona primero una ruta de juego válida!", + "reset_config_alert": "Por favor, confirma que deseas restablecer el archivo de configuración. Después de confirmar, Viper eliminará el archivo de configuración y luego reiniciará.", + "title": "Acciones de reparación diversas" }, - - "nsupdate": { - "title": "Actualizaciones automáticas de Northstar", - "desc": "Viper mantendrá Northstar actualizado automáticamente, sin embargo, todavía se puede actualizar manualmente a través de la sección de Northstar." + "nsargs": { + "desc": "Aqui puedes añadir opciones de lanzamiento para Northstar/Titanfall.", + "title": "Opciones de lanzamiento" }, - - "excludes": { - "title": "Conservar archivos en la actualización", - "desc": "Cuando se actualice Northstar, los archivos especificados aquí no se sobrescribirán con archivos de la nueva actualización de Northstar. A menos que sepa lo que está cambiando, probablemente no debería cambiar nada aquí. Cada archivo se debe separar con un espacio." + "nsupdate": { + "desc": "Viper mantendrá Northstar actualizado automáticamente, sin embargo, todavía se puede actualizar manualmente a través de la sección de Northstar.", + "title": "Actualizaciones automáticas de Northstar" }, - "originkill": { - "title": "Cerrar Origin o la aplicación de EA automáticamente", - "desc": "Cuando Viper se cierra, cerrar junto a Origin o la aplicación de EA" + "desc": "Cuando Viper se cierra, cerrar junto a Origin o la aplicación de EA", + "title": "Cerrar Origin o la aplicación de EA automáticamente" + }, + "save": "Guardar", + "title": { + "language": "Idioma", + "misc": "Misceláneos", + "ns": "Northstar", + "updates": "Actualizaciones" }, - "updatebuttons": { - "title": "Opciones de reparación", - "desc": "Si estás teniendo problemas con las actualizaciones, algunos de estos botones pueden ayudar a solucionarlos.", "buttons": { - "reset_cached_api_requests": "Restablecer las solicitudes de API en caché", + "force_delete_install_cache": "Forzar la eliminación de archivos de instalación en caché", "force_northstar_reinstall": "Forzar la reinstalación de Northstar", - "force_delete_install_cache": "Forzar la eliminación de archivos de instalación en caché" - } - }, - - "miscbuttons": { - "title": "Acciones de reparación diversas", - "desc": "Si estás teniendo problemas, entonces algunos de estos botones pueden ayudar a solucionarlo", - "buttons": { - "open_gamepath": "Abrir ruta del juego", - "reset_config": "Restablecer archivo de configuración", - "restart_viper": "Reiniciar Viper", - "change_gamepath": "Cambiar ruta del juego", - "force_quit_game": "Cerrar forzosamente Titanfall y Northstar", - "force_quit_origin": "Cerrar forzosamente Origin y/o EA Desktop" + "reset_cached_api_requests": "Restablecer las solicitudes de API en caché" }, - - "open_gamepath_alert": "No se ha seleccionado una ruta de juego válida, por lo que no hay una ruta de juego para abrir. ¡Por favor, selecciona primero una ruta de juego válida!", - "reset_config_alert": "Por favor, confirma que deseas restablecer el archivo de configuración. Después de confirmar, Viper eliminará el archivo de configuración y luego reiniciará." - } - }, - - "nsupdate": { - "gaming": { - "title": "¡Actualización de Northstar disponible!", - "body": "Una actualización de northstar está disponible.\nPuedes forzar su instalación despues de cerrar el juego." + "desc": "Si estás teniendo problemas con las actualizaciones, algunos de estos botones pueden ayudar a solucionarlos.", + "title": "Opciones de reparación" } }, - - "server": { - "player": "jugador", - "players": "jugadores", - "servers": "servidores", - "offline": "El servidor principal está desconectado" - }, - - "launch": "Ejecutar", - "install": "Instalar", - - "gamepath": { - "must": "La ruta del juego debe establecerse para ejecutar Viper.", - "wrong": "Esta carpeta no es una ruta válida para el juego.", - "lost": "¡El directorio del juego ya no existe/no se puede encontrar!\n\nAsegúrate de que tu unidad esté instalada correctamente o, si cambiaste la ubicación del juego, actualiza la ruta del juego.\n\nViper puede no funcionar correctamente hasta el próximo reinicio!", - "lost_perms": "Tu usuario parece haber perdido permisos para crear o leer archivos en la ruta de juego seleccionada. Por favor, selecciona una ruta de juego válida o recupera el acceso para leer y escribir en la carpeta:\n\n", - "found_missing_perms": "Se encontró automáticamente una ruta de juego válida, pero tu usuario no tiene permisos para crear o leer archivos en ella. Por favor, selecciona manualmente una ruta de juego diferente o obtén acceso para leer y escribir en la carpeta:\n\n", - "missing_perms": "Tu usuario no tiene permisos para crear o leer archivos en la ruta de juego seleccionada. Por favor, selecciona una ruta de juego diferente o obtén acceso para leer y escribir en la carpeta:\n\n" - }, - "toast": { - "title": { - "installed": "¡Modificación instalada!", - "failed": "¡Falló al instalar!", - "malformed": "¡Estructura de las carpetas incorrecta!", - "duped": "tiene varias carpetas de la modificación con el mismo nombre, lo que genera carpetas duplicadas. Si eres el desarrollador, deberías arreglar esto.", - "unknown_error": "¡Error desconocido!", - "no_internet": "Sin Internet" - }, - "desc": { + "duped": "¡Nombres de las carpetas duplicados!", + "failed": "Se produjo un error desconocido al intentar instalar la modificación. Esto puede ser culpa del autor de la modificación, y también puede ser culpa de Viper.", "installed": "¡Ha sido instalado exitosamente!", "malformed": "tiene una estructura de carpetas incorrecta, si usted es el desarrollador, debe corregir esto.", - "failed": "Se produjo un error desconocido al intentar instalar la modificación. Esto puede ser culpa del autor de la modificación, y también puede ser culpa de Viper.", - "duped": "¡Nombres de las carpetas duplicados!", - "unknown_error": "Ha ocurrido un error desconocido, presiona para más detalles. Recomendamos que tomes una captura de pantalla del error con sus detalles cuando reportes un error.", - "no_internet": "Viper puede funcionar de forma incorrecta." + "no_internet": "Viper puede funcionar de forma incorrecta.", + "unknown_error": "Ha ocurrido un error desconocido, presiona para más detalles. Recomendamos que tomes una captura de pantalla del error con sus detalles cuando reportes un error." + }, + "title": { + "duped": "tiene varias carpetas de la modificación con el mismo nombre, lo que genera carpetas duplicadas. Si eres el desarrollador, deberías arreglar esto.", + "failed": "¡Falló al instalar!", + "installed": "¡Modificación instalada!", + "malformed": "¡Estructura de las carpetas incorrecta!", + "no_internet": "Sin Internet", + "unknown_error": "¡Error desconocido!" } - } - }, - - "viper": { - "menu": { - "main": "Viper", - "release": "Notas de la versión", - "info": "Extras" }, - - "info": { - "links": "Links", - "credits": "Creditos", - "discord": "Unete al Discord:", - "issues": "Reporta problemas de Viper:" - } + "update": { + "available": "Hay una actualización disponible para Viper, ¿desea reiniciar y aplicarla?", + "button": "Actualizar", + "check": "Buscar actualizaciones", + "downloading": "Descargando...", + "extracting": "Extrayendo actualización...", + "finished": "¡Hecho! ¡Está listo para jugar!", + "uptodate": "¡Ya está actualizado!" + }, + "versions": { + "northstar": "Versión de Northstar", + "viper": "Versión de Viper" + }, + "welcome": "Bienvenido a Viper!" + }, + "lang": { + "title": "Spanish - Español" }, - "ns": { "menu": { + "force_quit": "Cerrar forzosamente el juego", "main": "Northstar Launcher", "mods": "Modificaciones", - "release": "Notas de actualización", - "force_quit": "Cerrar forzosamente el juego" + "release": "Notas de actualización" } }, - - "general": { - "auto_updates": { - "game_running": "El juego está en ejecución, no se puede actualizar Northstar" - }, - - "mods": { - "enabled": "Modificaciones habilitadas:", - "disabled": "Modificaciones deshabilitadas:", - "installed": "Modificiaciones instaladas:" - }, - - "missing_path": "¡La ruta del jueno no se ha podido encontrar automaticamente! ¡Por favor, elige la ruta manualmente!", - "not_installed": "¡Northstar no se ha instalado!", - "launching": "Ejecutando", - "running": "Ejecutandose" - }, - "request": { - "no_vp_release_notes": "

No se pudo encontrar las notas de lanzamiento de Viper.

¡Intenta mas tarde!", - "no_ns_release_notes": "

No se pudo encontrar las notas de lanzamiento de Northstar.

¡Intenta mas tarde!" + "no_ns_release_notes": "

No se pudo encontrar las notas de lanzamiento de Northstar.

¡Intenta mas tarde!", + "no_vp_release_notes": "

No se pudo encontrar las notas de lanzamiento de Viper.

¡Intenta mas tarde!" }, - "tooltip": { "close": "Cerrar Viper", "minimize": "Minimizar Viper", - "settings": "Configuraciones", "pages": { - "viper": "Viper", "northstar": "Northstar", - "titanfall": "Titanfall 2" + "titanfall": "Titanfall 2", + "viper": "Viper" + }, + "settings": "Configuraciones" + }, + "viper": { + "info": { + "credits": "Creditos", + "discord": "Unete al Discord:", + "issues": "Reporta problemas de Viper:", + "links": "Links" + }, + "menu": { + "info": "Extras", + "main": "Viper", + "release": "Notas de la versión" } } -} +} \ No newline at end of file diff --git a/src/lang/fr.json b/src/lang/fr.json index b527147..675fa33 100644 --- a/src/lang/fr.json +++ b/src/lang/fr.json @@ -1,307 +1,267 @@ { - "lang": { - "title": "French - Français" - }, - "cli": { + "auto_updates": { + "available": "Une mise à jour de Northstar est disponible !", + "checking": "Vérifications des mises à jour de Northstar...", + "no_update": "Pas de mise à jour de Northstar disponible.", + "updating_ns": "Lancement de la mise à jour..." + }, + "gamepath": { + "lost": "Dossier de jeu non trouvé, veuillez vérifier qu'il est bien accessible !" + }, "help": { - "help": "affiche ce message d'aide", - "devtools": "affiche les outils de développement", - "version": "retourne des informations sur la version du logiciel", "cli": "force l'activation de la CLI", - "update": "met à jour Northstar sur le chemin du jeu précisé", - "setpath": "enregistre le chemin du client de jeu", - "update_vp": "met à jour le client Viper, si le format actuel le permet.", - "no_vp_updates": "écrase viper.json et désactive les mises à jour de Viper", + "devtools": "affiche les outils de développement", + "help": "affiche ce message d'aide", "install_mod": "Installe un mod, dossier ou zip", + "no_vp_updates": "écrase viper.json et désactive les mises à jour de Viper", "remove_mod": "Supprime un mod", - "toggle_mod": "Active/désactive un mod" + "setpath": "enregistre le chemin du client de jeu", + "toggle_mod": "Active/désactive un mod", + "update": "met à jour Northstar sur le chemin du jeu précisé", + "update_vp": "met à jour le client Viper, si le format actuel le permet.", + "version": "retourne des informations sur la version du logiciel" + }, + "launch": { + "linux_error": "Le support du jeu sur Linux n'est pas encore implémenté." + }, + "mods": { + "cant_find": "Aucun mod avec ce nom n'a pu être trouvé.", + "failed": "L'installation du mod a échoué.", + "improper_json": "Le mod.json de %s présente des erreurs de formatage.", + "installed": "Mod installé !", + "not_a_mod": "Le fichier/dossier sélectionné n'est pas un mod.", + "removed": "Le mod a bien été supprimé.", + "toggled": "Le mod a bien été activé/désactivé.", + "toggled_all": "Tous les mods ont bien été activés/désactivés." }, - "setpath": { "no_arg": "Aucun argument donné à --setpath" }, - "update": { - "current": "Version actuelle :", - "downloading": "Téléchargement en cours...", "checking": "Vérification des mises à jour...", + "current": "Version actuelle :", "download_done": "Téléchargement terminé ! Extraction des fichiers...", + "downloading": "Téléchargement en cours...", "finished": "Mise à jour terminée !", + "no_internet": "Pas de connexion Internet", "uptodate": "La dernière version (%s) est déjà installée.", - "uptodate_short": "Votre client est à jour", - "no_internet": "Pas de connexion Internet" - }, - + "uptodate_short": "Votre client est à jour" + } + }, + "general": { "auto_updates": { - "checking": "Vérifications des mises à jour de Northstar...", - "available": "Une mise à jour de Northstar est disponible !", - "updating_ns": "Lancement de la mise à jour...", - "no_update": "Pas de mise à jour de Northstar disponible." - }, - - "launch": { - "linux_error": "Le support du jeu sur Linux n'est pas encore implémenté." - }, - - "gamepath": { - "lost": "Dossier de jeu non trouvé, veuillez vérifier qu'il est bien accessible !" + "game_running": "Le jeu est en cours d'exécution, impossible de lancer la mise à jour." }, - + "launching": "Lancement", + "missing_path": "Le chemin du client n'a pu être trouvé automatiquement, merci de le sélectionner manuellement.", "mods": { - "failed": "L'installation du mod a échoué.", - "removed": "Le mod a bien été supprimé.", - "toggled": "Le mod a bien été activé/désactivé.", - "installed": "Mod installé !", - "cant_find": "Aucun mod avec ce nom n'a pu être trouvé.", - "not_a_mod": "Le fichier/dossier sélectionné n'est pas un mod.", - "toggled_all": "Tous les mods ont bien été activés/désactivés.", - "improper_json": "Le mod.json de %s présente des erreurs de formatage." - } + "disabled": "Mods désactivés :", + "enabled": "Mods activés :", + "installed": "Mods installés :" + }, + "not_installed": "Northstar n'est pas installé !", + "running": "En cours d'exécution" }, - "gui": { - "exit": "Fermer", - "search": "Rechercher", - "welcome": "Bienvenue sur Viper !", - "setpath": "Mettre à jour le chemin du jeu", - - "versions": { - "viper": "Version de Viper", - "northstar": "Version de Northstar" + "browser": { + "end_of_list": "Fin de la liste de mods.
Utilisez la barre de recherche pour en trouver davantage !", + "filter": { + "client": "Côté client", + "mods": "Mods", + "server": "Côté serveur", + "skins": "Skins" + }, + "info": "Info", + "install": "Installer", + "load_more": "Charger plus de mods...", + "loading": "Chargement des mods...", + "made_by": "par", + "no_results": "Pas de résultat", + "reinstall": "Réinstaller", + "update": "Mise à jour", + "view": "Voir" }, - - "update": { - "button": "Mise à jour", - "check": "Vérifier les mises à jour", - "downloading": "Téléchargement de la mise à jour...", - "extracting": "Extraction des fichiers...", - "finished": "Terminé, vous pouvez jouer !", - "uptodate": "Déjà à jour !", - "available": "Une mise à jour pour Viper est disponible, voulez-vous l'installer maintenant ?" + "exit": "Fermer", + "gamepath": { + "found_missing_perms": "Chemin du jeu automatiquement trouvé, cependant l'utilisateur courant n'a pas les permissions de lecture/écriture de fichiers dans le dossier sélectionné, veuillez manuellement sélectionner un autre dossier ou accorder les permissions en lecture/écriture à l'utilisateur :\n\n", + "lost": "Le chemin du jeu ne peut être trouvé / n'existe plus !\n\nVeuillez vérifier que votre disqué est correctement monté, ou, si vous avez déplacé votre jeu, que vous avez mis à jour le chemin du dossier.\n\nViper ne fonctionnera pas correctement jusqu'au prochain redémarrage.", + "lost_perms": "L'utilisateur semble avoir perdu les permissions de lecture/écriture de fichiers dans le dossier sélectionné, veuillez sélectionner un autre dossier ou accorder les permissions en lecture/écriture à l'utilisateur :\n\n", + "missing_perms": "L'utilisateur courant n'a pas les permissions de lecture/écriture de fichiers dans le dossier sélectionné, veuillez manuellement sélectionner un autre dossier ou accorder les permissions en lecture/écriture à l'utilisateur :\n\n", + "must": "Vous devez sélectionner le chemin du dossier du jeu Titanfall 2 pour pouvoir lancer Viper.", + "wrong": "Ce dossier ne contient pas le jeu Titanfall 2, et n'est donc pas valide." }, - + "install": "Installer", + "launch": "Jouer", "mods": { - "title": "Mods", + "confirm_dependencies": "Ce mod a des dépendances (affichées ci-dessous), cliquer \"Ok\" les installera en même temps que le mod.\n\n", + "confirm_plugins": { + "description": "Les plugins ont des accès à votre système, comparés aux mods classiques, et sont de fait plus dangereux à l'installation, comme pourrait l'être un plugin contenant un malware. Si ce plugin provient d'un tiers de confiance ou si vous savez ce que vous faites, ne tenez pas compte de ce message.", + "title": "Ce mod contient des plugins :" + }, "count": "Mods installés :", "disabled_tag": "Désactivé", - "remove": "Supprimer", - "install": "Installer le mod", + "drag_n_drop": "Glissez/déposez un mod pour l'installer", + "extracting": "Extraction du mod...", "find": "Chercher des mods", - "toggle_all": "Activer/désactiver tous les mods", - "toggle_all_confirm": "Cette action pourrait désactiver des mods nécessaires au bon fonctionnement de Northstar. Souhaitez-vous faire cela ?", + "install": "Installer le mod", + "installed_mod": "Mod installé !", + "installing": "Installation du mod...", + "not_a_mod": "Ceci n'est pas un mod !", + "nothing_selected": "Aucun mod n'est sélectionné.", + "remove": "Supprimer", "remove_all": "Tout supprimer", "remove_all_confirm": "Supprimer tous les mods vous forcera à réinstaller Northstar, souhaitez-vous faire cela ?", - "nothing_selected": "Aucun mod n'est sélectionné.", "required_confirm": "Vous avez sélectionné un mod de base, Northstar peut ne pas fonctionner sans celui-ci. Souhaitez-vous faire cela ?", - - "not_a_mod": "Ceci n'est pas un mod !", - "unknown_author": "Inconnu", - "extracting": "Extraction du mod...", - "installing": "Installation du mod...", - "installed_mod": "Mod installé !", - "drag_n_drop": "Glissez/déposez un mod pour l'installer", - "confirm_dependencies": "Ce mod a des dépendances (affichées ci-dessous), cliquer \"Ok\" les installera en même temps que le mod.\n\n", - "confirm_plugins": { - "title": "Ce mod contient des plugins :", - "description": "Les plugins ont des accès à votre système, comparés aux mods classiques, et sont de fait plus dangereux à l'installation, comme pourrait l'être un plugin contenant un malware. Si ce plugin provient d'un tiers de confiance ou si vous savez ce que vous faites, ne tenez pas compte de ce message." - } + "title": "Mods", + "toggle_all": "Activer/désactiver tous les mods", + "toggle_all_confirm": "Cette action pourrait désactiver des mods nécessaires au bon fonctionnement de Northstar. Souhaitez-vous faire cela ?", + "unknown_author": "Inconnu" }, - - "browser": { - "info": "Info", - "view": "Voir", - "made_by": "par", - "update": "Mise à jour", - "install": "Installer", - "reinstall": "Réinstaller", - "loading": "Chargement des mods...", - "load_more": "Charger plus de mods...", - "end_of_list": "Fin de la liste de mods.
Utilisez la barre de recherche pour en trouver davantage !", - "no_results": "Pas de résultat", - - "filter": { - "mods": "Mods", - "skins": "Skins", - "client": "Côté client", - "server": "Côté serveur" + "nsupdate": { + "gaming": { + "body": "Une mise à jour pour Northstar est disponible.\nVous pourrez l'installer après avoir fermé le jeu.", + "title": "Mise à jour Northstar disponible !" } }, - + "search": "Rechercher", + "server": { + "offline": "Le serveur maître est hors-ligne", + "player": "joueur", + "players": "joueurs", + "servers": "serveurs" + }, + "setpath": "Mettre à jour le chemin du jeu", "settings": { - "save": "Sauvegarder", - "discard": "Annuler", - - "title": { - "ns": "Northstar", - "language": "Langue", - "updates": "Mises à jour", - "misc": "Divers" + "autolang": { + "desc": "Lorsque activée, Viper essaie de déterminer automatiquement la langue de votre système ; désactiver cette option vous permet de sélectionner manuellement la langue utilisée.", + "title": "Auto-détection de la langue" }, - - "nsargs": { - "title": "Options de lancement", - "desc": "Vous pouvez ajouter ici des options de démarrage pour Northstar/Titanfall." + "autoupdate": { + "desc": "Viper se tient automatiquement à jour.", + "title": "Mises à jour pour Viper" }, - - "autolang": { - "title": "Auto-détection de la langue", - "desc": "Lorsque activée, Viper essaie de déterminer automatiquement la langue de votre système ; désactiver cette option vous permet de sélectionner manuellement la langue utilisée." + "discard": "Annuler", + "excludes": { + "desc": "Lorsque Northstar est mis à jour, ces fichiers ne seront pas écrasés par ceux provenant de la mise à jour; les noms de fichiers sont séparés par un espace.", + "title": "Fichiers à conserver" }, - "forcedlang": { - "title": "Langue", - "desc": "Lorsque \"Auto-détection de la langue\" est désactivée, cette option permet de sélectionner la langue (requiert un redémarrage)." + "desc": "Lorsque \"Auto-détection de la langue\" est désactivée, cette option permet de sélectionner la langue (requiert un redémarrage).", + "title": "Langue" }, - - "autoupdate": { - "title": "Mises à jour pour Viper", - "desc": "Viper se tient automatiquement à jour." + "miscbuttons": { + "buttons": { + "change_gamepath": "Changer le dossier du jeu", + "force_quit_game": "Forcer la fermeture de Titanfall et Northstar", + "force_quit_origin": "Forcer la fermeture d'Origin et/ou EA Desktop", + "open_gamepath": "Ouvrir le dossier du jeu", + "reset_config": "Réinitialiser le fichier de configuration", + "restart_viper": "Redémarrer Viper" + }, + "desc": "Si vous avez des problèmes de mises à jour, certaines de ces options pourraient vous aider.", + "open_gamepath_alert": "Aucun chemin de jeu n'est sélectionné, et ne peut donc être ouvert ; veuillez en sélectionner un d'abord !", + "reset_config_alert": "Veuillez confirmer que vous voulez réinitialiser le fichier de configuration ; après confirmation, Viper supprimera ce fichier et redémarrera.", + "title": "Paramètres de récupération" }, - - "nsupdate": { - "title": "Mises à jour pour Northstar", - "desc": "Viper tient automatiquement Northstar à jour (n'empêche pas de le mettre à jour manuellement via sa page dédiée)." + "nsargs": { + "desc": "Vous pouvez ajouter ici des options de démarrage pour Northstar/Titanfall.", + "title": "Options de lancement" }, - - "excludes": { - "title": "Fichiers à conserver", - "desc": "Lorsque Northstar est mis à jour, ces fichiers ne seront pas écrasés par ceux provenant de la mise à jour; les noms de fichiers sont séparés par un espace." + "nsupdate": { + "desc": "Viper tient automatiquement Northstar à jour (n'empêche pas de le mettre à jour manuellement via sa page dédiée).", + "title": "Mises à jour pour Northstar" }, - "originkill": { - "title": "Quitter automatiquement Origin et/ou EA app", - "desc": "Lorsque Viper est fermé, Origin et/ou EA app sera également automatiquement fermé." + "desc": "Lorsque Viper est fermé, Origin et/ou EA app sera également automatiquement fermé.", + "title": "Quitter automatiquement Origin et/ou EA app" + }, + "save": "Sauvegarder", + "title": { + "language": "Langue", + "misc": "Divers", + "ns": "Northstar", + "updates": "Mises à jour" }, - "updatebuttons": { - "title": "Paramètres de récupération", - "desc": "Si vous avez des problèmes de mises à jour, certaines de ces options pourraient vous aider.", "buttons": { - "reset_cached_api_requests": "Supprimer le cache local d'API", + "force_delete_install_cache": "Supprimer le cache d'installation du jeu", "force_northstar_reinstall": "Forcer la réinstallation de Northstar", - "force_delete_install_cache": "Supprimer le cache d'installation du jeu" - } - }, - - "miscbuttons": { - "title": "Paramètres de récupération", - "desc": "Si vous avez des problèmes de mises à jour, certaines de ces options pourraient vous aider.", - "buttons": { - "open_gamepath": "Ouvrir le dossier du jeu", - "reset_config": "Réinitialiser le fichier de configuration", - "restart_viper": "Redémarrer Viper", - "change_gamepath": "Changer le dossier du jeu", - "force_quit_game": "Forcer la fermeture de Titanfall et Northstar", - "force_quit_origin": "Forcer la fermeture d'Origin et/ou EA Desktop" + "reset_cached_api_requests": "Supprimer le cache local d'API" }, - - "open_gamepath_alert": "Aucun chemin de jeu n'est sélectionné, et ne peut donc être ouvert ; veuillez en sélectionner un d'abord !", - "reset_config_alert": "Veuillez confirmer que vous voulez réinitialiser le fichier de configuration ; après confirmation, Viper supprimera ce fichier et redémarrera." - } - }, - - "nsupdate": { - "gaming": { - "title": "Mise à jour Northstar disponible !", - "body": "Une mise à jour pour Northstar est disponible.\nVous pourrez l'installer après avoir fermé le jeu." + "desc": "Si vous avez des problèmes de mises à jour, certaines de ces options pourraient vous aider.", + "title": "Paramètres de récupération" } }, - - "server": { - "player": "joueur", - "players": "joueurs", - "servers": "serveurs", - "offline": "Le serveur maître est hors-ligne" - }, - - "launch": "Jouer", - "install": "Installer", - - "gamepath": { - "must": "Vous devez sélectionner le chemin du dossier du jeu Titanfall 2 pour pouvoir lancer Viper.", - "wrong": "Ce dossier ne contient pas le jeu Titanfall 2, et n'est donc pas valide.", - "lost": "Le chemin du jeu ne peut être trouvé / n'existe plus !\n\nVeuillez vérifier que votre disqué est correctement monté, ou, si vous avez déplacé votre jeu, que vous avez mis à jour le chemin du dossier.\n\nViper ne fonctionnera pas correctement jusqu'au prochain redémarrage.", - "lost_perms": "L'utilisateur semble avoir perdu les permissions de lecture/écriture de fichiers dans le dossier sélectionné, veuillez sélectionner un autre dossier ou accorder les permissions en lecture/écriture à l'utilisateur :\n\n", - "found_missing_perms": "Chemin du jeu automatiquement trouvé, cependant l'utilisateur courant n'a pas les permissions de lecture/écriture de fichiers dans le dossier sélectionné, veuillez manuellement sélectionner un autre dossier ou accorder les permissions en lecture/écriture à l'utilisateur :\n\n", - "missing_perms": "L'utilisateur courant n'a pas les permissions de lecture/écriture de fichiers dans le dossier sélectionné, veuillez manuellement sélectionner un autre dossier ou accorder les permissions en lecture/écriture à l'utilisateur :\n\n" - }, - "toast": { + "desc": { + "duped": "contient plusieurs dossiers ayant le même nom ; si vous êtes le développer, vous devriez réparer ceci.", + "failed": "Une erreur inconnue est survenue lors de l'installation du mod. Cela peut être du ressort de l'auteur du mod ou de Viper.", + "installed": "a été installé avec succès !", + "malformed": "a une structure de dossier incorrecte ; si vous êtes son développeur, vous devriez réparer ça.", + "no_internet": "Viper ne fonctionnera pas correctement tant que la connexion n'est pas rétablie.", + "unknown_error": "Une erreur inconnue est survenue, cliquez pour plus de détails. Vous devriez prendre une capture d'écran de l'erreur si vous comptez créer un ticket." + }, "title": { - "installed": "Mod installé !", "duped": "Nom de dossier dupliqué !", "failed": "L'installation a échoué", + "installed": "Mod installé !", "malformed": "La structure du dossier du mod est incorrecte.", - "unknown_error": "Erreur inconnue", - "no_internet": "Pas de connexion Internet" - }, - - "desc": { - "installed": "a été installé avec succès !", - "malformed": "a une structure de dossier incorrecte ; si vous êtes son développeur, vous devriez réparer ça.", - "failed": "Une erreur inconnue est survenue lors de l'installation du mod. Cela peut être du ressort de l'auteur du mod ou de Viper.", - "duped": "contient plusieurs dossiers ayant le même nom ; si vous êtes le développer, vous devriez réparer ceci.", - "unknown_error": "Une erreur inconnue est survenue, cliquez pour plus de détails. Vous devriez prendre une capture d'écran de l'erreur si vous comptez créer un ticket.", - "no_internet": "Viper ne fonctionnera pas correctement tant que la connexion n'est pas rétablie." + "no_internet": "Pas de connexion Internet", + "unknown_error": "Erreur inconnue" } - } - }, - - "viper": { - "menu": { - "main": "Viper", - "release": "Notes de mises à jour", - "info": "Informations" }, - - "info": { - "links": "Liens utiles", - "credits": "Remerciements", - "discord": "Rejoingnez le serveur Discord :", - "issues": "Un problème avec Viper ? Créez un ticket ici :" - } + "update": { + "available": "Une mise à jour pour Viper est disponible, voulez-vous l'installer maintenant ?", + "button": "Mise à jour", + "check": "Vérifier les mises à jour", + "downloading": "Téléchargement de la mise à jour...", + "extracting": "Extraction des fichiers...", + "finished": "Terminé, vous pouvez jouer !", + "uptodate": "Déjà à jour !" + }, + "versions": { + "northstar": "Version de Northstar", + "viper": "Version de Viper" + }, + "welcome": "Bienvenue sur Viper !" + }, + "lang": { + "title": "French - Français" }, - "ns": { "menu": { + "force_quit": "Forcer la fermeture du jeu", "main": "Lanceur Northstar", "mods": "Mods", - "release": "Notes de mises à jour", - "force_quit": "Forcer la fermeture du jeu" + "release": "Notes de mises à jour" } }, - - "general": { - "auto_updates": { - "game_running": "Le jeu est en cours d'exécution, impossible de lancer la mise à jour." - }, - - "mods": { - "enabled": "Mods activés :", - "disabled": "Mods désactivés :", - "installed": "Mods installés :" - }, - - "missing_path": "Le chemin du client n'a pu être trouvé automatiquement, merci de le sélectionner manuellement.", - "not_installed": "Northstar n'est pas installé !", - "launching": "Lancement", - "running": "En cours d'exécution" - }, - "request": { - "no_vp_release_notes": "

Impossible de récupérer les notes de mises à jour de Viper.

Veuillez réessayer plus tard.", - "no_ns_release_notes": "

Impossible de récupérer les notes de mises à jour de Northstar.

Veuillez réessayer plus tard." + "no_ns_release_notes": "

Impossible de récupérer les notes de mises à jour de Northstar.

Veuillez réessayer plus tard.", + "no_vp_release_notes": "

Impossible de récupérer les notes de mises à jour de Viper.

Veuillez réessayer plus tard." }, - "tooltip": { "close": "Fermer Viper", "minimize": "Réduire Viper", - "settings": "Paramètres", "pages": { - "viper": "Viper", "northstar": "Northstar", - "titanfall": "Titanfall 2" + "titanfall": "Titanfall 2", + "viper": "Viper" + }, + "settings": "Paramètres" + }, + "viper": { + "info": { + "credits": "Remerciements", + "discord": "Rejoingnez le serveur Discord :", + "issues": "Un problème avec Viper ? Créez un ticket ici :", + "links": "Liens utiles" + }, + "menu": { + "info": "Informations", + "main": "Viper", + "release": "Notes de mises à jour" } } -} +} \ No newline at end of file diff --git a/src/lang/zh.json b/src/lang/zh.json index a1ccd71..ccd3ce7 100644 --- a/src/lang/zh.json +++ b/src/lang/zh.json @@ -1,306 +1,267 @@ { - "lang": { - "title": "Chinese(Simplified) - 简体中文" - }, - "cli": { + "auto_updates": { + "available": "Northstar有可用的新更新!", + "checking": "正在检查Northstar更新...", + "no_update": "无可用的Northstar更新", + "updating_ns": "启动更新进程中..." + }, + "gamepath": { + "lost": "没有找到游戏目录, 请确保它已经挂载!" + }, "help": { - "help": "显示该帮助信息", - "devtools": "打开开发者调试工具", - "version": "输出版本信息", "cli": "强制开启CLI", - "update": "从您设置的游戏目录更新Northstar", - "setpath": "设置您的游戏目录", - "update_vp": "如果支持的话, 自更新Viper.", - "no_vp_updates": "覆盖vipers.json并禁止其更新", + "devtools": "打开开发者调试工具", + "help": "显示该帮助信息", "install_mod": "安装一个模组, 文件夹, 或zip压缩包", + "no_vp_updates": "覆盖vipers.json并禁止其更新", "remove_mod": "移除该模组", - "toggle_mod": "开关该模组" + "setpath": "设置您的游戏目录", + "toggle_mod": "开关该模组", + "update": "从您设置的游戏目录更新Northstar", + "update_vp": "如果支持的话, 自更新Viper.", + "version": "输出版本信息" + }, + "launch": { + "linux_error": "当前不支持在Linux平台上启动游戏" + }, + "mods": { + "cant_find": "无法找到含有该名字的模组!", + "failed": "模组安装失败!", + "improper_json": "%s的mod.json含有格式错误", + "installed": "安装模组成功!", + "not_a_mod": "选中的文件夹/文件不是一个模组", + "removed": "成功移除该模组!", + "toggled": "成功开关该模组!", + "toggled_all": "成功开关所有模组" }, - "setpath": { "no_arg": "没有为--setpath 提供argument" }, - "update": { - "current": "当前版本:", - "downloading": "下载中...", "checking": "检查更新中...", + "current": "当前版本:", "download_done": "下载完毕!解压中...", + "downloading": "下载中...", "finished": "安装/更新 完成!", + "no_internet": "无互联网连接", "uptodate": "最新版本 (%s) 已安装, 跳过更新.", - "uptodate_short": "当前是最新版本", - "no_internet": "无互联网连接" - }, - + "uptodate_short": "当前是最新版本" + } + }, + "general": { "auto_updates": { - "checking": "正在检查Northstar更新...", - "available": "Northstar有可用的新更新!", - "updating_ns": "启动更新进程中...", - "no_update": "无可用的Northstar更新" - }, - - "launch": { - "linux_error": "当前不支持在Linux平台上启动游戏" - }, - - "gamepath": { - "lost": "没有找到游戏目录, 请确保它已经挂载!" + "game_running": "游戏运行中, 拒绝更新Northstar" }, - + "launching": "启动中", + "missing_path": "无法找到游戏目录!请手动选择!", "mods": { - "failed": "模组安装失败!", - "removed": "成功移除该模组!", - "toggled": "成功开关该模组!", - "installed": "安装模组成功!", - "cant_find": "无法找到含有该名字的模组!", - "not_a_mod": "选中的文件夹/文件不是一个模组", - "toggled_all": "成功开关所有模组", - "improper_json": "%s的mod.json含有格式错误" - } + "disabled": "禁用的模组:", + "enabled": "启用的模组:", + "installed": "已安装的模组:" + }, + "not_installed": "没有安装Northstar!", + "running": "运行中" }, "gui": { - "exit": "退出", - "search": "搜索...", - "welcome": "欢迎来到Viper!", - "setpath": "更换游戏目录", - - "versions": { - "viper": "Viper版本", - "northstar": "Northstar版本" + "browser": { + "end_of_list": "所有包全部加载完毕.", + "filter": { + "client": "客户端", + "mods": "模组", + "server": "服务器端", + "skins": "皮肤" + }, + "info": "详情", + "install": "安装", + "load_more": "加载更多...", + "loading": "加载模组中...", + "made_by": "来自", + "no_results": "没有相关结果...", + "reinstall": "重新安装", + "update": "更新", + "view": "查看" }, - - "update": { - "button": "更新", - "check": "检查更新", - "downloading": "下载中...", - "extracting": "解压更新中...", - "finished": "完成!", - "uptodate": "已经为最新版本!", - "available": "Viper有一个可用的新更新, 您想要重启Viper并应用它吗?" + "exit": "退出", + "gamepath": { + "found_missing_perms": "自动找到了一个有效的游戏目录, 然而您的用户没有对该目录的读写权限. 请手动指定一个不同的游戏目录或获取对该目录的读写权限:\n\n", + "lost": "无法找到游戏目录!\n\n请确认您是否移动了游戏目录或硬盘是否被正确挂载\n\nViper在下一次重启前可能无法正常工作!", + "lost_perms": "您的用户没有对当前设定的游戏目录创建和读取文件的权限, 请选择一个新的游戏目录或获取对该目录的读写权限:\n\n", + "missing_perms": "您的用户没有对选中的游戏目录的读写权限, 请手动指定一个不同的游戏目录或获取对该目录的读写权限:\n\n", + "must": "游戏目录必须被设置才能启动Viper.", + "wrong": "该目录不是一个有效的游戏目录" }, - + "install": "安装", + "launch": "启动", "mods": { - "title": "模组", + "confirm_dependencies": "此包含有依赖项, 以下展示, 点击 \"Ok\" 将会安装此包和它的依赖项.\n\n", + "confirm_plugins": { + "description": "Native插件比普通的模组拥有更多对系统的访问权限, 如果安装了恶意插件可能会导致您的计算机受到损害. 如果这个插件是来自于一位信任的开发者或您知道自己在干什么, 那么请忽略这条信息.", + "title": "以下包含有native插件:" + }, "count": "已安装的模组数:", "disabled_tag": "已禁用", - "remove": "移除", - "install": "安装模组", + "drag_n_drop": "将Mod拖至这里进行安装", + "extracting": "解压模组中...", "find": "寻找模组", - "toggle_all": "开关所有", - "toggle_all_confirm": "开关所有模组可能会导致使Northstar需要的模组被禁用, 您确定吗?", + "install": "安装模组", + "installed_mod": "模组安装成功!", + "installing": "安装模组中...", + "not_a_mod": "不是一个模组!", + "nothing_selected": "您还没有选择一个模组.", + "remove": "移除", "remove_all": "移除所有", "remove_all_confirm": "移除所有模组通常会需要您重新安装Northstar, 您确定吗?", - "nothing_selected": "您还没有选择一个模组.", "required_confirm": "您选择了一个核心模组, Northstar没有它可能无法工作, 您确定吗?", - "not_a_mod": "不是一个模组!", - "unknown_author": "未知", - "extracting": "解压模组中...", - "installing": "安装模组中...", - "installed_mod": "模组安装成功!", - "drag_n_drop": "将Mod拖至这里进行安装", - "confirm_dependencies": "此包含有依赖项, 以下展示, 点击 \"Ok\" 将会安装此包和它的依赖项.\n\n", - - "confirm_plugins": { - "title": "以下包含有native插件:", - "description": "Native插件比普通的模组拥有更多对系统的访问权限, 如果安装了恶意插件可能会导致您的计算机受到损害. 如果这个插件是来自于一位信任的开发者或您知道自己在干什么, 那么请忽略这条信息." - } + "title": "模组", + "toggle_all": "开关所有", + "toggle_all_confirm": "开关所有模组可能会导致使Northstar需要的模组被禁用, 您确定吗?", + "unknown_author": "未知" }, - - "browser": { - "info": "详情", - "view": "查看", - "made_by": "来自", - "update": "更新", - "install": "安装", - "reinstall": "重新安装", - "loading": "加载模组中...", - "load_more": "加载更多...", - "end_of_list": "所有包全部加载完毕.", - "no_results": "没有相关结果...", - - "filter": { - "mods": "模组", - "skins": "皮肤", - "client": "客户端", - "server": "服务器端" + "nsupdate": { + "gaming": { + "body": "Northstar有一个可用的更新\n您可以在退出游戏后强制安装", + "title": "有可用的Northstar更新!" } }, - + "search": "搜索...", + "server": { + "offline": "主服务器为离线状态", + "player": "玩家", + "players": "玩家", + "servers": "服务器" + }, + "setpath": "更换游戏目录", "settings": { - "save": "保存", - "discard": "取消", - - "title": { - "ns": "Northstar", - "language": "语言", - "updates": "更新", - "misc": "杂项" + "autolang": { + "desc": "当开启后, Viper会尝试自动检测您的系统语言. 关闭此选项的话, 您可以在以下设置更换语言.", + "title": "自动检测语言" }, - - "nsargs": { - "title": "启动选项", - "desc": "在这里您可以为Northstar/泰坦陨落添加启动选项" + "autoupdate": { + "desc": "Viper将会自动更新至最新版本.", + "title": "Viper自动更新" }, - - "autolang": { - "title": "自动检测语言", - "desc": "当开启后, Viper会尝试自动检测您的系统语言. 关闭此选项的话, 您可以在以下设置更换语言." + "discard": "取消", + "excludes": { + "desc": "当Northstar更新后, 在此指定的文件将不会被新的Northstar更新覆盖. 除非您知道自己在修改什么, 您可能不会想要改动任何东西. 每一个文件都以空格隔开.", + "title": "在更新时保留文件" }, - "forcedlang": { - "title": "语言", - "desc": "当 \"自动检测语言\" 被禁用后, 此设置将会作为Viper的语言. 需要重启Viper来生效." + "desc": "当 \"自动检测语言\" 被禁用后, 此设置将会作为Viper的语言. 需要重启Viper来生效.", + "title": "语言" }, - - "autoupdate": { - "title": "Viper自动更新", - "desc": "Viper将会自动更新至最新版本." + "miscbuttons": { + "buttons": { + "change_gamepath": "更改游戏目录", + "force_quit_game": "强制退出泰坦陨落2和Northstar", + "force_quit_origin": "强制退出Origin和/或EA Desktop", + "open_gamepath": "打开游戏目录", + "reset_config": "重置配置文件", + "restart_viper": "重启Viper" + }, + "desc": "如果您遇到了问题,那么这些按钮或许会帮助您修复它们.", + "open_gamepath_alert": "没有一个有效的游戏目录被选择, 所以它不能被打开. 请先选择一个有效的游戏目录!", + "reset_config_alert": "请确认您想要重置配置文件, 确认后Viper将会删除配置文件并重启.", + "title": "其他修复操作" }, - - "nsupdate": { - "title": "Northstar自动更新", - "desc": "Viper将会自动更新Northstar至最新版本, 不过您还是可以在Northstar页面下手动更新" + "nsargs": { + "desc": "在这里您可以为Northstar/泰坦陨落添加启动选项", + "title": "启动选项" }, - - "excludes": { - "title": "在更新时保留文件", - "desc": "当Northstar更新后, 在此指定的文件将不会被新的Northstar更新覆盖. 除非您知道自己在修改什么, 您可能不会想要改动任何东西. 每一个文件都以空格隔开." + "nsupdate": { + "desc": "Viper将会自动更新Northstar至最新版本, 不过您还是可以在Northstar页面下手动更新", + "title": "Northstar自动更新" }, - "originkill": { - "title": "自动退出Origin和/或EA Desktop", - "desc": "当Viper退出后, 同时自动退出Origin和/或EA Desktop" + "desc": "当Viper退出后, 同时自动退出Origin和/或EA Desktop", + "title": "自动退出Origin和/或EA Desktop" + }, + "save": "保存", + "title": { + "language": "语言", + "misc": "杂项", + "ns": "Northstar", + "updates": "更新" }, - "updatebuttons": { - "title": "修复操作", - "desc": "如果您更新后遇到了问题, 这些按钮或许会帮助您修复它们.", "buttons": { - "reset_cached_api_requests": "重置缓存的API请求", + "force_delete_install_cache": "强制删除已缓存的安装文件", "force_northstar_reinstall": "强制重新安装Northstar", - "force_delete_install_cache": "强制删除已缓存的安装文件" - } - }, - - "miscbuttons": { - "title": "其他修复操作", - "desc": "如果您遇到了问题,那么这些按钮或许会帮助您修复它们.", - "buttons": { - "open_gamepath": "打开游戏目录", - "reset_config": "重置配置文件", - "restart_viper": "重启Viper", - "change_gamepath": "更改游戏目录", - "force_quit_game": "强制退出泰坦陨落2和Northstar", - "force_quit_origin": "强制退出Origin和/或EA Desktop" + "reset_cached_api_requests": "重置缓存的API请求" }, - - "open_gamepath_alert": "没有一个有效的游戏目录被选择, 所以它不能被打开. 请先选择一个有效的游戏目录!", - "reset_config_alert": "请确认您想要重置配置文件, 确认后Viper将会删除配置文件并重启." - } - }, - - "nsupdate": { - "gaming": { - "title": "有可用的Northstar更新!", - "body": "Northstar有一个可用的更新\n您可以在退出游戏后强制安装" + "desc": "如果您更新后遇到了问题, 这些按钮或许会帮助您修复它们.", + "title": "修复操作" } }, - - "server": { - "player": "玩家", - "players": "玩家", - "servers": "服务器", - "offline": "主服务器为离线状态" - }, - - "launch": "启动", - "install": "安装", - - "gamepath": { - "must": "游戏目录必须被设置才能启动Viper.", - "wrong": "该目录不是一个有效的游戏目录", - "lost": "无法找到游戏目录!\n\n请确认您是否移动了游戏目录或硬盘是否被正确挂载\n\nViper在下一次重启前可能无法正常工作!", - "lost_perms": "您的用户没有对当前设定的游戏目录创建和读取文件的权限, 请选择一个新的游戏目录或获取对该目录的读写权限:\n\n", - "found_missing_perms": "自动找到了一个有效的游戏目录, 然而您的用户没有对该目录的读写权限. 请手动指定一个不同的游戏目录或获取对该目录的读写权限:\n\n", - "missing_perms": "您的用户没有对选中的游戏目录的读写权限, 请手动指定一个不同的游戏目录或获取对该目录的读写权限:\n\n" - }, - "toast": { + "desc": { + "duped": "存在多个同名的模组文件夹, 如果你是它的开发者, 你应该修复这个问题.", + "failed": "在尝试安装该时发生了未知错误, 这可能是作者的问题, 也可能是Viper的问题", + "installed": "已成功安装!", + "malformed": "拥有错误的文件夹结构, 如果您是它的开发者, 您应该修复这个问题.", + "no_internet": "Viper可能不会正常工作.", + "unknown_error": "一个未知错误产生了, 点击来查看更多细节. 您可能会想要对错误信息进行截图用于bug反馈" + }, "title": { - "installed": "模组安装成功!", "duped": "重复的文件夹名字!", "failed": "安装失败", + "installed": "模组安装成功!", "malformed": "错误的文件夹结构!", - "unknown_error": "未知错误!", - "no_internet": "没有互联网" - }, - - "desc": { - "installed": "已成功安装!", - "malformed": "拥有错误的文件夹结构, 如果您是它的开发者, 您应该修复这个问题.", - "failed": "在尝试安装该时发生了未知错误, 这可能是作者的问题, 也可能是Viper的问题", - "duped": "存在多个同名的模组文件夹, 如果你是它的开发者, 你应该修复这个问题.", - "unknown_error": "一个未知错误产生了, 点击来查看更多细节. 您可能会想要对错误信息进行截图用于bug反馈", - "no_internet": "Viper可能不会正常工作." + "no_internet": "没有互联网", + "unknown_error": "未知错误!" } - } - }, - - "viper": { - "menu": { - "main": "Viper", - "release": "更新日志", - "info": "额外内容" }, - - "info": { - "links": "链接", - "credits": "鸣谢", - "discord": "加入Discord:", - "issues": "向Viper反馈问题:" - } + "update": { + "available": "Viper有一个可用的新更新, 您想要重启Viper并应用它吗?", + "button": "更新", + "check": "检查更新", + "downloading": "下载中...", + "extracting": "解压更新中...", + "finished": "完成!", + "uptodate": "已经为最新版本!" + }, + "versions": { + "northstar": "Northstar版本", + "viper": "Viper版本" + }, + "welcome": "欢迎来到Viper!" + }, + "lang": { + "title": "Chinese(Simplified) - 简体中文" }, - "ns": { "menu": { + "force_quit": "强制退出游戏", "main": "Northstar启动器", "mods": "模组", - "release": "更新日志", - "force_quit": "强制退出游戏" + "release": "更新日志" } }, - - "general": { - "auto_updates": { - "game_running": "游戏运行中, 拒绝更新Northstar" - }, - - "mods": { - "enabled": "启用的模组:", - "disabled": "禁用的模组:", - "installed": "已安装的模组:" - }, - - "missing_path": "无法找到游戏目录!请手动选择!", - "not_installed": "没有安装Northstar!", - "running": "运行中", - "launching": "启动中" - }, - "request": { - "no_vp_release_notes": "

无法获取Viper的更新日志.

请稍后再试!", - "no_ns_release_notes": "

无法获取Northstar的更新日志.

请稍后再试!" + "no_ns_release_notes": "

无法获取Northstar的更新日志.

请稍后再试!", + "no_vp_release_notes": "

无法获取Viper的更新日志.

请稍后再试!" }, - "tooltip": { "close": "关闭Viper", "minimize": "最小化Viper", - "settings": "设置", "pages": { - "viper": "Viper", "northstar": "Northstar", - "titanfall": "泰坦陨落2" + "titanfall": "泰坦陨落2", + "viper": "Viper" + }, + "settings": "设置" + }, + "viper": { + "info": { + "credits": "鸣谢", + "discord": "加入Discord:", + "issues": "向Viper反馈问题:", + "links": "链接" + }, + "menu": { + "info": "额外内容", + "main": "Viper", + "release": "更新日志" } } -} +} \ No newline at end of file -- cgit v1.2.3