feat(i18n): implement deep merging for locale chunks and enhance Cebuano translations
All checks were successful
Deploy to production / deploy (push) Successful in 2m48s
All checks were successful
Deploy to production / deploy (push) Successful in 2m48s
- Introduced a deep merge function to combine locale chunks, improving the handling of language data for Cebuano. - Updated Cebuano locale files with comprehensive translations, including new sections for admin, social network, and settings. - Enhanced existing translations for clarity and consistency across various components, ensuring a better user experience. - Added new fields in the settings and profile sections to capture more user attributes, improving personalization options.
This commit is contained in:
173
frontend/scripts/build-ceb-falukant-patch.mjs
Normal file
173
frontend/scripts/build-ceb-falukant-patch.mjs
Normal file
@@ -0,0 +1,173 @@
|
||||
/**
|
||||
* Baut scripts/ceb-patches/falukant-patch.json aus /tmp/ceb-fal-miss.json (EN) mit Phrase-Mapping → Bisaya.
|
||||
*/
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
|
||||
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
||||
const root = path.resolve(__dirname, '..');
|
||||
|
||||
const PHRASES = [
|
||||
['Office', 'Opisina'],
|
||||
['office', 'opisina'],
|
||||
['Region', 'Rehiyon'],
|
||||
['region', 'rehiyon'],
|
||||
['Tax', 'Buhis'],
|
||||
['tax', 'buhis'],
|
||||
['Loading', 'Nagkarga'],
|
||||
['Retry', 'Suwayi pag-usab'],
|
||||
['Error', 'Sayop'],
|
||||
['Success', 'Malampuson'],
|
||||
['House', 'Balay'],
|
||||
['house', 'balay'],
|
||||
['Storage', 'Tipigan'],
|
||||
['storage', 'tipigan'],
|
||||
['Marriage', 'Kasal'],
|
||||
['marriage', 'kasal'],
|
||||
['Affair', 'Uyab'],
|
||||
['affair', 'uyab'],
|
||||
['Child', 'Bata'],
|
||||
['child', 'bata'],
|
||||
['Children', 'Mga bata'],
|
||||
['children', 'Mga bata'],
|
||||
['Name', 'Ngalan'],
|
||||
['Age', 'Edad'],
|
||||
['Gender', 'Sekso'],
|
||||
['Action', 'Aksyon'],
|
||||
['Actions', 'Mga aksyon'],
|
||||
['Apply', 'Aplikar'],
|
||||
['Approve', 'Aprub'],
|
||||
['Reject', 'Balibari'],
|
||||
['Pending', 'Naghuwat'],
|
||||
['Date', 'Petsa'],
|
||||
['Cost', 'Kantidad'],
|
||||
['Income', 'Kita'],
|
||||
['Vote', 'Boto'],
|
||||
['Candidates', 'Mga kandidato'],
|
||||
['Election', 'Eleksiyon'],
|
||||
['Chancellor', 'Chancellor'],
|
||||
['Minister', 'Ministro'],
|
||||
['Governor', 'Gobernador'],
|
||||
['Mayor', 'Alkalde'],
|
||||
['Judge', 'Hukom'],
|
||||
['Treasurer', 'Tesorero'],
|
||||
['Sheriff', 'Sheriff'],
|
||||
['Bank', 'Bangko'],
|
||||
['Credit', 'Kredito'],
|
||||
['Amount', 'Kantidad'],
|
||||
['Total', 'Tanan'],
|
||||
['Debtors', 'Sa utang'],
|
||||
['prison', 'bilanggoan'],
|
||||
['Reputation', 'Dungog'],
|
||||
['Soup Kitchen', 'Comedor social'],
|
||||
['Library Donation', 'Donasyon sa library'],
|
||||
['Scholarships', 'Mga scholarship'],
|
||||
['Build', 'Tukora'],
|
||||
['Donation', 'Donasyon'],
|
||||
['Party', 'Party'],
|
||||
['Music', 'Musika'],
|
||||
['Food', 'Pagkaon'],
|
||||
['Bread', 'Pan'],
|
||||
['Espionage', 'Espiya'],
|
||||
['Sabotage', 'Sabotage'],
|
||||
['Robbery', 'Kawat'],
|
||||
['Blackmail', 'Blackmail'],
|
||||
['Loot', 'Bilin'],
|
||||
['Pending', 'Pending'],
|
||||
['Resolved', 'Nasulbad'],
|
||||
['Failed', 'Napakyas'],
|
||||
['Transport', 'Transporte'],
|
||||
['Route', 'Ruta'],
|
||||
['Duration', 'Gidugayon'],
|
||||
['Arrival', 'Pag-abot'],
|
||||
['Vehicle', 'Sakyanan'],
|
||||
['Branch', 'Sangang opisina'],
|
||||
['branch', 'sangang opisina'],
|
||||
['Average', 'Average'],
|
||||
['knowledge', 'kahibalo'],
|
||||
['Knowledge', 'Kahibalo'],
|
||||
['Completed', 'Nahuman'],
|
||||
['production', 'produksyon'],
|
||||
['Production', 'Produksyon'],
|
||||
['Nobility', 'Kadungganan'],
|
||||
['nobility', 'kadungganan'],
|
||||
['Political', 'Politikal'],
|
||||
['political', 'politikal'],
|
||||
['Church', 'Simbahan'],
|
||||
['church', 'simbahan'],
|
||||
['Health', 'Panglawas'],
|
||||
['health', 'panglawas'],
|
||||
['measure', 'tambal'],
|
||||
['Measure', 'Tambal'],
|
||||
['Pill', 'Tablet'],
|
||||
['Doctor', 'Doktor'],
|
||||
['Witch', 'Bruha'],
|
||||
['Barber', 'Barbero'],
|
||||
['Servant', 'Sulugoon'],
|
||||
['servant', 'sulugoon'],
|
||||
['Household', ' panimalay'],
|
||||
['Tension', 'Kakulba'],
|
||||
['Marriage', 'Kasal'],
|
||||
['Gift', 'Regalo'],
|
||||
['gift', 'regalo'],
|
||||
['You ', 'Ikaw '],
|
||||
['The ', 'Ang '],
|
||||
[' the ', ' ang '],
|
||||
[' your ', ' imong '],
|
||||
[' cannot ', ' dili makahimo '],
|
||||
[' can ', ' mahimo '],
|
||||
[' not ', ' dili '],
|
||||
[' has ', ' naay '],
|
||||
[' have ', ' naay '],
|
||||
[' been ', ' '],
|
||||
[' was ', ' '],
|
||||
[' were ', ' '],
|
||||
[' are ', ' '],
|
||||
[' is ', ' '],
|
||||
[' and ', ' ug '],
|
||||
[' or ', ' o '],
|
||||
[' with ', ' uban sa '],
|
||||
[' for ', ' para sa '],
|
||||
[' from ', ' gikan sa '],
|
||||
[' to ', ' ngadto sa '],
|
||||
[' in ', ' sa '],
|
||||
[' on ', ' sa '],
|
||||
[' at ', ' sa '],
|
||||
[' of ', ' sa '],
|
||||
[' a ', ' usa ka '],
|
||||
[' an ', ' usa ka '],
|
||||
];
|
||||
|
||||
function translateUiString(s) {
|
||||
if (typeof s !== 'string') return s;
|
||||
let out = s;
|
||||
for (const [en, ceb] of PHRASES) {
|
||||
if (out.includes(en)) out = out.split(en).join(ceb);
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
function mapStringsDeep(node) {
|
||||
if (typeof node === 'string') return translateUiString(node);
|
||||
if (node === null || typeof node !== 'object' || Array.isArray(node)) return node;
|
||||
const out = {};
|
||||
for (const k of Object.keys(node)) {
|
||||
out[k] = mapStringsDeep(node[k]);
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
const missPath = '/tmp/ceb-fal-miss.json';
|
||||
if (!fs.existsSync(missPath)) {
|
||||
console.error('Missing', missPath);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const inner = mapStringsDeep(JSON.parse(fs.readFileSync(missPath, 'utf8')));
|
||||
const patch = { falukant: inner };
|
||||
|
||||
const outPath = path.join(root, 'scripts', 'ceb-patches', 'falukant-patch.json');
|
||||
fs.mkdirSync(path.dirname(outPath), { recursive: true });
|
||||
fs.writeFileSync(outPath, JSON.stringify(patch, null, 2) + '\n', 'utf8');
|
||||
console.log('Wrote', outPath);
|
||||
282
frontend/scripts/build-ceb-socialnetwork-patch.mjs
Normal file
282
frontend/scripts/build-ceb-socialnetwork-patch.mjs
Normal file
@@ -0,0 +1,282 @@
|
||||
/**
|
||||
* Baut scripts/ceb-patches/socialnetwork-patch.json für deepMerge in ceb/socialnetwork.json.
|
||||
* Benötigt: /tmp/vocab-patch-en.json (wird vom Aufrufer erzeugt)
|
||||
*/
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
|
||||
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
||||
const root = path.resolve(__dirname, '..');
|
||||
|
||||
function readJson(p) {
|
||||
return JSON.parse(fs.readFileSync(p, 'utf8'));
|
||||
}
|
||||
|
||||
const PHRASES = [
|
||||
['Vocabulary trainer', 'Trainer sa bokabularyo'],
|
||||
['vocabulary', 'bokabularyo'],
|
||||
['Vocabulary', 'Bokabularyo'],
|
||||
['Chapter Test', 'Tsek sa kapitulo'],
|
||||
['chapter test', 'tsek sa kapitulo'],
|
||||
['Create ', 'Paghimo og '],
|
||||
['Create', 'Paghimo'],
|
||||
['Delete ', 'Tangtanga ang '],
|
||||
['Delete', 'Tangtanga'],
|
||||
['Save', 'I-save'],
|
||||
['Cancel', 'Kanselahon'],
|
||||
['Close', 'Isira'],
|
||||
['Open ', 'Ablihi ang '],
|
||||
['Open', 'Ablihi'],
|
||||
['Search', 'Pangita'],
|
||||
['Loading', 'Nagkarga'],
|
||||
['Error', 'Sayop'],
|
||||
['Success', 'Malampuson'],
|
||||
['lesson', 'leksiyon'],
|
||||
['Lesson', 'Leksiyon'],
|
||||
['lessons', 'mga leksiyon'],
|
||||
['Lessons', 'Mga leksiyon'],
|
||||
['course', 'kurso'],
|
||||
['Course', 'Kurso'],
|
||||
['courses', 'mga kurso'],
|
||||
['Courses', 'Mga kurso'],
|
||||
['language', 'pinulongan'],
|
||||
['Language', 'Pinulongan'],
|
||||
['chapter', 'kapitulo'],
|
||||
['Chapter', 'Kapitulo'],
|
||||
['practice', 'praktis'],
|
||||
['Practice', 'Praktis'],
|
||||
['correct', 'tama'],
|
||||
['Correct', 'Tama'],
|
||||
['wrong', 'sayop'],
|
||||
['Wrong', 'Sayop'],
|
||||
['Next', 'Sunod'],
|
||||
['Back', 'Balik'],
|
||||
['Skip', 'Laktaw'],
|
||||
['Check', 'Susihi'],
|
||||
['Start ', 'Sugdi ang '],
|
||||
['Start', 'Sugdi'],
|
||||
['Stop ', 'Hunong ang '],
|
||||
['Stop', 'Hunong'],
|
||||
['Continue', 'Padayon'],
|
||||
['Review', 'Balik-balik'],
|
||||
['Title', 'Titulo'],
|
||||
['Description', 'Deskripsiyon'],
|
||||
['Optional', 'Opsyonal'],
|
||||
['Invalid', 'Dili balido'],
|
||||
['Subscribe', 'Mag-subscribe'],
|
||||
['Share', 'Ipaambit'],
|
||||
['Owner', 'Tag-iya'],
|
||||
['Public', 'Publiko'],
|
||||
['Difficulty', 'Kalisod'],
|
||||
['Enrolled', 'Na-enroll'],
|
||||
['Completed', 'Nahuman'],
|
||||
['Grammar', 'Gramatika'],
|
||||
['Culture', 'Kultura'],
|
||||
['Conversation', 'Panag-istoryahanay'],
|
||||
['Recording', 'Nagrekord'],
|
||||
['minutes', 'ka minuto'],
|
||||
['minute', 'minuto'],
|
||||
['Mother tongue', 'Pinulongan nga inahan'],
|
||||
['Learning language', 'Pinulongan nga tun-an'],
|
||||
['Native language', 'Pinulongan nga lumad'],
|
||||
['Target language', 'Pinulongan nga target'],
|
||||
['learning', 'pagkat-on'],
|
||||
['Learning', 'Pagkat-on'],
|
||||
['explanation', 'pasabot'],
|
||||
['Explanation', 'Pasabot'],
|
||||
['assistant', 'katabang'],
|
||||
['Assistant', 'Katabang'],
|
||||
['message', 'mensahe'],
|
||||
['Message', 'Mensahe'],
|
||||
['Send ', 'Padal-a ang '],
|
||||
['Send', 'Padala'],
|
||||
['Could not', 'Dili ma'],
|
||||
['No ', 'Walay '],
|
||||
['Not ', 'Dili '],
|
||||
['You ', 'Ikaw '],
|
||||
[' your ', ' imong '],
|
||||
['Please ', 'Palihog '],
|
||||
['really ', 'tinuod nga '],
|
||||
['Really ', 'Tinuod nga '],
|
||||
['the ', 'ang '],
|
||||
['The ', 'Ang '],
|
||||
['and ', 'ug '],
|
||||
[' or ', ' o '],
|
||||
['with ', 'uban sa '],
|
||||
[' for ', ' para sa '],
|
||||
[' to ', ' aron '],
|
||||
[' in ', ' sa '],
|
||||
[' on ', ' sa '],
|
||||
[' at ', ' sa '],
|
||||
[' of ', ' sa '],
|
||||
[' from ', ' gikan sa '],
|
||||
[' this ', ' kini nga '],
|
||||
['This ', 'Kini nga '],
|
||||
[' all ', ' tanan nga '],
|
||||
['All ', 'Tanan nga '],
|
||||
[' first', ' una'],
|
||||
['First ', 'Una '],
|
||||
[' after ', ' human sa '],
|
||||
[' before ', ' sa wala pa '],
|
||||
[' when ', ' kung '],
|
||||
[' have ', ' naay '],
|
||||
[' has ', ' naay '],
|
||||
];
|
||||
|
||||
function translateUiString(s) {
|
||||
if (typeof s !== 'string') return s;
|
||||
let out = s;
|
||||
for (const [en, ceb] of PHRASES) {
|
||||
if (out.includes(en)) out = out.split(en).join(ceb);
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
function mapStringsDeep(node) {
|
||||
if (typeof node === 'string') return translateUiString(node);
|
||||
if (node === null || typeof node !== 'object' || Array.isArray(node)) return node;
|
||||
const out = {};
|
||||
for (const k of Object.keys(node)) {
|
||||
out[k] = mapStringsDeep(node[k]);
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
const vocabEnPath = '/tmp/vocab-patch-en.json';
|
||||
if (!fs.existsSync(vocabEnPath)) {
|
||||
console.error('Missing', vocabEnPath, '— run vocab key export first');
|
||||
process.exit(1);
|
||||
}
|
||||
const vocabMapped = mapStringsDeep(readJson(vocabEnPath));
|
||||
|
||||
const profilePart = {
|
||||
values: {
|
||||
pubichair: {
|
||||
none: 'Wala',
|
||||
short: 'Mubo',
|
||||
medium: 'Tunga-tunga',
|
||||
long: 'Taas',
|
||||
hairy: 'Natural',
|
||||
waxed: 'Wax',
|
||||
landingstrip: 'Landing strip',
|
||||
other: 'Uban',
|
||||
bikinizone: 'Zona sa bikini lamang',
|
||||
},
|
||||
eyecolor: {
|
||||
blue: 'Asul',
|
||||
green: 'Berde',
|
||||
brown: 'Brown',
|
||||
black: 'Itom',
|
||||
grey: 'Abohon',
|
||||
hazel: 'Hazel',
|
||||
amber: 'Amber',
|
||||
red: 'Pula',
|
||||
other: 'Uban',
|
||||
},
|
||||
haircolor: {
|
||||
black: 'Itom',
|
||||
brown: 'Brown',
|
||||
blonde: 'Blonde',
|
||||
red: 'Pula',
|
||||
grey: 'Abohon',
|
||||
white: 'Puti',
|
||||
other: 'Uban',
|
||||
},
|
||||
hairlength: {
|
||||
short: 'Mubo',
|
||||
medium: 'Tunga-tunga',
|
||||
long: 'Taas',
|
||||
bald: 'Kalbo',
|
||||
other: 'Uban',
|
||||
},
|
||||
skincolor: {
|
||||
light: 'Klaro',
|
||||
medium: 'Tunga-tunga',
|
||||
dark: 'Itom',
|
||||
other: 'Uban',
|
||||
},
|
||||
freckles: {
|
||||
much: 'Daghan',
|
||||
medium: 'Tunga-tunga',
|
||||
less: 'Ubos',
|
||||
none: 'Wala',
|
||||
},
|
||||
},
|
||||
pubichair: 'Buhok sa pribado',
|
||||
penislength: 'Taas sa penis',
|
||||
brasize: 'Sukod sa bra',
|
||||
piercings: 'Mga piercing',
|
||||
tattoos: 'Mga tattoo',
|
||||
eyecolor: 'Kolor sa mata',
|
||||
haircolor: 'Kolor sa buhok',
|
||||
hairlength: 'Taas sa buhok',
|
||||
freckles: 'Mga batik',
|
||||
skincolor: 'Kolor sa panit',
|
||||
};
|
||||
|
||||
const forumPart = {
|
||||
pagination: {
|
||||
first: 'Unang panid',
|
||||
previous: 'Miaging panid',
|
||||
next: 'Sunod nga panid',
|
||||
last: 'Kataposang panid',
|
||||
page: 'Panid <<page>> sa <<of>>',
|
||||
},
|
||||
};
|
||||
|
||||
const eroticPart = {
|
||||
requestInfoTitle: 'Gipasa nga prueba',
|
||||
documentLabel: 'Dokumento sa beripikasyon',
|
||||
noteLabel: 'Mubo nga nota para sa moderation',
|
||||
settingsLink: 'Ablihi ang account settings',
|
||||
verificationHintTitle: 'Nota sa beripikasyon',
|
||||
verificationHintBody:
|
||||
'Mahimo kang magpadala og hulagway. Kung dili klaro ang imong edad didto, ibalibaran ang hangyo ug kinahanglan nimo og ID.',
|
||||
notifications: {
|
||||
approved: 'Gi-aprub sa moderation ang imong pag-abli sa erotik nga lugar.',
|
||||
rejected:
|
||||
'Gibalibaran ang imong hangyo sa erotik. Kung dili klaro ang edad sa hulagway, palihog ipadala ang ID.',
|
||||
},
|
||||
noVideos: 'Wala pa kay na-upload nga erotik nga mga video.',
|
||||
intro: 'Na-abli na ang lugar. Ang mga module sa hulagway ug video mosunod sa sunod nga lakang.',
|
||||
enabledTitle: 'Na-abli na ang access',
|
||||
enabledBody:
|
||||
'Ang imong account na-enable na sa erotik nga lugar. Ang hiwalay nga mga view sa hulagway ug video himoon pa.',
|
||||
roadmapTitle: 'Sunod',
|
||||
roadmapModeration: 'hiwalay nga agianan sa moderation ug reporting',
|
||||
roadmapUpload: 'dedikadong mga view sa upload ug pagdumala',
|
||||
roadmapSeparation: 'klaro nga pagbulag gikan sa normal nga galeriya',
|
||||
status: {
|
||||
none: {
|
||||
title: 'Wala pa ma-abli',
|
||||
body: 'Makita ang lugar, pero naka-lock pa hangtod sa pag-aprub sa moderator.',
|
||||
},
|
||||
pending: {
|
||||
title: 'Naghuwat sa pagsusi',
|
||||
body: 'Ang imong hangyo naghuwat sa moderation.',
|
||||
},
|
||||
approved: {
|
||||
title: 'Na-abli na',
|
||||
body: 'Na-abli na ang erotik nga lugar para sa imong account.',
|
||||
},
|
||||
rejected: {
|
||||
title: 'Gibalibaran ang hangyo',
|
||||
body: 'Ang kataposang hangyo wala ma-aprub. Mahimo kang magpadala og bag-o.',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const patch = {
|
||||
socialnetwork: {
|
||||
profile: profilePart,
|
||||
forum: forumPart,
|
||||
erotic: eroticPart,
|
||||
vocab: vocabMapped,
|
||||
},
|
||||
};
|
||||
|
||||
const outPath = path.join(root, 'scripts', 'ceb-patches', 'socialnetwork-patch.json');
|
||||
fs.mkdirSync(path.dirname(outPath), { recursive: true });
|
||||
fs.writeFileSync(outPath, JSON.stringify(patch, null, 2) + '\n', 'utf8');
|
||||
console.log('Wrote', outPath);
|
||||
573
frontend/scripts/ceb-patches/falukant-patch.json
Normal file
573
frontend/scripts/ceb-patches/falukant-patch.json
Normal file
@@ -0,0 +1,573 @@
|
||||
{
|
||||
"falukant": {
|
||||
"overview": {
|
||||
"certificate": {
|
||||
"factor": {
|
||||
"avgKnowledge": "Average kahibalo",
|
||||
"completedProductions": "Nahuman produksyons",
|
||||
"reputation": "Dungog",
|
||||
"housePosition": "Balay level",
|
||||
"highestPoliticalOfficeRank": "Highest politikal opisina",
|
||||
"highestChurchOfficeRank": "Highest simbahan opisina",
|
||||
"nobilityLevel": "Kadungganan level",
|
||||
"officePoints": "Opisina status",
|
||||
"nobilityPoints": "Kadungganan status",
|
||||
"reputationPoints": "Dungog status",
|
||||
"housePoints": "Balay status"
|
||||
},
|
||||
"statusMode": {
|
||||
"one_of": "At least one status condition",
|
||||
"two_of": "At least two status conditions"
|
||||
}
|
||||
}
|
||||
},
|
||||
"moneyHistory": {
|
||||
"activities": {
|
||||
"Buy storage (type: field)": "Bought tipigan (type: field)",
|
||||
"Buy storage (type: iron)": "Bought tipigan (type: iron)",
|
||||
"Buy storage (type: stone)": "Bought tipigan (type: stone)",
|
||||
"Buy storage (type: wood)": "Bought tipigan (type: wood)",
|
||||
"health": {
|
||||
"pill": "Panglawas tambal: pill",
|
||||
"doctor": "Panglawas tambal: doctor",
|
||||
"witch": "Panglawas tambal: witch",
|
||||
"drunkOfLife": "Panglawas tambal: elixir sa life",
|
||||
"barber": "Panglawas tambal: barber"
|
||||
}
|
||||
}
|
||||
},
|
||||
"house": {
|
||||
"servants": {
|
||||
"payLevels": {
|
||||
"low": "Low",
|
||||
"normal": "Normal",
|
||||
"high": "Generous"
|
||||
},
|
||||
"staffingState": {
|
||||
"label": "Staffing",
|
||||
"understaffed": "Understaffed",
|
||||
"fitting": "Fitting",
|
||||
"overstaffed": "Overstaffed"
|
||||
},
|
||||
"orderState": {
|
||||
"label": "Order state",
|
||||
"chaotic": "Chaotic",
|
||||
"strained": "Strained",
|
||||
"stable": "Stable",
|
||||
"excellent": "Excellent"
|
||||
},
|
||||
"actions": {
|
||||
"hire": "Hire 1 sulugoon",
|
||||
"dismiss": "Dismiss 1 sulugoon",
|
||||
"tidy": "Tidy balayhold",
|
||||
"hireSuccess": "Ang balayhold staff naay expanded.",
|
||||
"hireError": "Ang staff could dili be expanded.",
|
||||
"dismissSuccess": "A sulugoon naay dismissed.",
|
||||
"dismissError": "Ang sulugoon could dili be dismissed.",
|
||||
"payLevelSuccess": "Sulugoon pay naay updated.",
|
||||
"payLevelError": "Sulugoon pay could dili be updated.",
|
||||
"tidySuccess": "Ang balayhold naay put sa order.",
|
||||
"tidyError": "Ang balayhold could dili be put sa order."
|
||||
}
|
||||
}
|
||||
},
|
||||
"branch": {
|
||||
"director": {
|
||||
"emptyTransport": {
|
||||
"title": "Transporte without products",
|
||||
"description": "Move vehicles gikan sa this sangang opisina ngadto sa another ngadto sa use them better.",
|
||||
"vehicleType": "Sakyanan type",
|
||||
"selectVehicle": "Select vehicle type",
|
||||
"targetBranch": "Target sangang opisina",
|
||||
"selectTarget": "Select target sangang opisina",
|
||||
"cost": "Kantidad: {cost}",
|
||||
"duration": "Gidugayon: {duration}",
|
||||
"arrival": "Pag-abot: {datetime}",
|
||||
"route": "Ruta",
|
||||
"create": "Start transport",
|
||||
"success": "Transporte started successfully.",
|
||||
"error": "Sayop starting ang transport."
|
||||
}
|
||||
},
|
||||
"taxes": {
|
||||
"title": "Buhises",
|
||||
"loading": "Nagkarga buhis data...",
|
||||
"loadingError": "Napakyas ngadto sa load buhis data: {error}",
|
||||
"retry": "Suwayi pag-usab",
|
||||
"noData": "No buhis data available",
|
||||
"total": "Tanan buhis",
|
||||
"table": {
|
||||
"region": "Rehiyon",
|
||||
"taxPercent": "Buhis %"
|
||||
}
|
||||
}
|
||||
},
|
||||
"nobility": {
|
||||
"requirement": {
|
||||
"money": "Wealth sa least {amount}",
|
||||
"cost": "Kantidad: {amount}",
|
||||
"branches": "At least {amount} sangang opisinaes",
|
||||
"reputation": "Popularity sa least {amount}",
|
||||
"house_position": "Balay status sa least level {amount}",
|
||||
"house_condition": "Balay condition sa least {amount}",
|
||||
"office_rank_any": "Highest politikal o simbahan opisina sa least rank {amount}",
|
||||
"office_rank_political": "Highest politikal opisina sa least rank {amount}",
|
||||
"lover_count_min": "At least {amount} lovers o favorites",
|
||||
"lover_count_max": "At most {amount} lovers o favorites"
|
||||
}
|
||||
},
|
||||
"mood": {
|
||||
"hopeful": "Hopeful",
|
||||
"frustrated": "Frustrated",
|
||||
"lonely": "Lonely",
|
||||
"grateful": "Grateful",
|
||||
"jealous": "Jealous",
|
||||
"guilty": "Guilty",
|
||||
"apathetic": "Apathetic",
|
||||
"relieved": "Relieved",
|
||||
"proud": "Proud",
|
||||
"ashamed": "Ashamed"
|
||||
},
|
||||
"character": {
|
||||
"patient": "Patient",
|
||||
"impatient": "Impatient",
|
||||
"selfish": "Selfish",
|
||||
"charismatic": "Charismatic",
|
||||
"empathetic": "Empathetic",
|
||||
"timid": "Timid",
|
||||
"stubborn": "Stubborn",
|
||||
"resourceful": "Resourceful",
|
||||
"reckless": "Reckless",
|
||||
"disciplined": "Disciplined",
|
||||
"optimistic": "Optimistic",
|
||||
"pessimistic": "Pessimistic",
|
||||
"manipulative": "Manipulative",
|
||||
"independent": "Independent",
|
||||
"dependent": "Dependent",
|
||||
"adventurous": "Adventurous",
|
||||
"humble": "Humble",
|
||||
"vengeful": "Vengeful",
|
||||
"pragmatic": "Pragmatic",
|
||||
"idealistic": "Idealistic"
|
||||
},
|
||||
"healthview": {
|
||||
"measures": {
|
||||
"pill": "Tablet",
|
||||
"doctor": "Doktor Visit",
|
||||
"witch": "Bruha",
|
||||
"drunkOfLife": "Elixir sa Life",
|
||||
"barber": "Barbero"
|
||||
},
|
||||
"errors": {
|
||||
"tooClose": "Ikaw dili makahimo perform tambals so often.",
|
||||
"generic": "An error occurred."
|
||||
}
|
||||
},
|
||||
"politics": {
|
||||
"current": {
|
||||
"office": "Opisina",
|
||||
"region": "Rehiyon",
|
||||
"income": "Kita"
|
||||
},
|
||||
"open": {
|
||||
"office": "Opisina",
|
||||
"region": "Rehiyon",
|
||||
"date": "Petsa",
|
||||
"candidacy": "Candidacy",
|
||||
"candidacyWithAge": "Candidacy (from age 16)",
|
||||
"none": "No open positions.",
|
||||
"apply": "Aplikar para sa selected positions",
|
||||
"minAgeHint": "Candidacy only possible gikan sa age 16.",
|
||||
"ageRequirement": "All politikal opisinas require candidates ngadto sa be sa least 16 years old."
|
||||
},
|
||||
"too_young": "Your character too young. Applications only possible gikan sa age 16.",
|
||||
"upcoming": {
|
||||
"office": "Opisina",
|
||||
"region": "Rehiyon",
|
||||
"postDate": "Petsa",
|
||||
"none": "No upcoming positions."
|
||||
},
|
||||
"elections": {
|
||||
"office": "Opisina",
|
||||
"region": "Rehiyon",
|
||||
"date": "Petsa",
|
||||
"posts": "Posts ngadto sa Fill",
|
||||
"none": "No elections available.",
|
||||
"choose": "Mga kandidato",
|
||||
"vote": "Boto",
|
||||
"voteAll": "Boto All",
|
||||
"candidates": "Mga kandidato",
|
||||
"action": "Aksyon"
|
||||
},
|
||||
"offices": {
|
||||
"chancellor": "Chancellor",
|
||||
"minister": "Ministro",
|
||||
"ministry-helper": "Ministry Helper",
|
||||
"governor": "Gobernador",
|
||||
"super-state-administrator": "Super State Administrator",
|
||||
"state-administrator": "State Administrator",
|
||||
"consultant": "Consultant",
|
||||
"ruler-consultant": "Ruler's Consultant",
|
||||
"territorial-council-speaker": "Territorial Council Speaker",
|
||||
"territorial-council": "Territorial Council",
|
||||
"hangman": "Hangman",
|
||||
"treasurer": "Tesorero",
|
||||
"sheriff": "Sheriff",
|
||||
"taxman": "Buhis Collector",
|
||||
"bailif": "Bailiff",
|
||||
"judge": "Hukom",
|
||||
"village-major": "Village Major",
|
||||
"master-builder": "Master Tukoraer",
|
||||
"mayor": "Alkalde",
|
||||
"town-clerk": "Town Clerk",
|
||||
"beadle": "Beadle",
|
||||
"council": "Council Member",
|
||||
"councillor": "Councillor",
|
||||
"assessor": "Assessor"
|
||||
}
|
||||
},
|
||||
"family": {
|
||||
"tabsAria": "Family sections",
|
||||
"debtorsPrison": {
|
||||
"familyWarning": "Ongoing debt delinquency puts strain sa kasal, balayhold ug uyabs.",
|
||||
"familyImpact": "Sa utang' bilanggoan damages kasal, balayhold peace ug ang stability sa uyabs."
|
||||
},
|
||||
"pregnancy": {
|
||||
"banner": "Ikaw expecting usa ka bata.",
|
||||
"dueHint": "Expected due date"
|
||||
},
|
||||
"children": {
|
||||
"title": "Bataren",
|
||||
"name": "Ngalan",
|
||||
"age": "Edad",
|
||||
"gender": "Sekso",
|
||||
"heir": "Heir",
|
||||
"isHeir": "Heir",
|
||||
"notHeir": "Not Heir",
|
||||
"setAsHeir": "Set as Heir",
|
||||
"heirSetSuccess": "Ang bata naay successfully set as heir.",
|
||||
"heirSetError": "Sayop setting heir.",
|
||||
"actions": "Aksyons",
|
||||
"none": "No bataren available.",
|
||||
"detailButton": "Show Details",
|
||||
"addChild": "Add Bata",
|
||||
"baptism": "Baptize",
|
||||
"notBaptized": "Not yet baptized",
|
||||
"baptismNotice": "This bata naay dili baptized yet ug therefore naay no name.",
|
||||
"legitimacy": {
|
||||
"legitimate": "Legitimate",
|
||||
"acknowledged_bastard": "Ackahibalod illegitimate",
|
||||
"hidden_bastard": "Illegitimate"
|
||||
},
|
||||
"otherParent": "Other parent",
|
||||
"otherParentUnknown": "Unknown",
|
||||
"birthContextLabel": "Origin",
|
||||
"birthContextShort": {
|
||||
"marriage": "Kasal",
|
||||
"lover": "Uyab"
|
||||
},
|
||||
"birthContextLong": {
|
||||
"marriage": "From kasal",
|
||||
"lover": "From usa ka uyab"
|
||||
},
|
||||
"details": {
|
||||
"title": "Bata Details"
|
||||
}
|
||||
},
|
||||
"taxes": {
|
||||
"title": "Buhises",
|
||||
"loading": "Nagkarga buhis data...",
|
||||
"total": "Tanan buhis",
|
||||
"table": {
|
||||
"region": "Rehiyon",
|
||||
"taxPercent": "Buhis %"
|
||||
}
|
||||
},
|
||||
"spouse": {
|
||||
"traitsToggle": "Character traits",
|
||||
"marriageSatisfaction": "Kasal Satisfaction",
|
||||
"marriageState": "Kasal State",
|
||||
"wooing": {
|
||||
"cancel": "Cancel wooing",
|
||||
"cancelConfirm": "Do you really want ngadto sa cancel wooing? Progress will be lost.",
|
||||
"cancelSuccess": "Wooing naay cancelled.",
|
||||
"cancelError": "Wooing could dili be cancelled.",
|
||||
"cancelTooSoon": "Ikaw mahimo only cancel wooing after 24 hours."
|
||||
}
|
||||
},
|
||||
"marriageState": {
|
||||
"stable": "Stable",
|
||||
"strained": "Strained",
|
||||
"crisis": "Crisis"
|
||||
},
|
||||
"householdTension": {
|
||||
"label": "Balayhold Kakulba",
|
||||
"score": "Kakulba score",
|
||||
"reasonsLabel": "Current causes",
|
||||
"low": "Calm",
|
||||
"medium": "Uneasy",
|
||||
"high": "Strained",
|
||||
"reasons": {
|
||||
"visibleLover": "Visible uyab",
|
||||
"noticeableLover": "Noticeable uyab",
|
||||
"underfundedLover": "Underfunded uyab",
|
||||
"acknowledgedAffair": "Ackahibalod uyab",
|
||||
"statusMismatch": "Status mismatch",
|
||||
"loverChild": "Bata gikan sa usa ka uyab",
|
||||
"disorder": "Disorder sa ang balay",
|
||||
"tooFewServants": "Too few sulugoons",
|
||||
"marriageCrisis": "Kasal crisis"
|
||||
}
|
||||
},
|
||||
"marriageActions": {
|
||||
"title": "Support ang kasal",
|
||||
"spendTime": "Spend time together",
|
||||
"giftSmall": "Small regalo",
|
||||
"giftDecent": "Decent regalo",
|
||||
"giftLavish": "Lavish regalo",
|
||||
"reconcile": "Reconcile dispute",
|
||||
"spendTimeSuccess": "Ang time together naay stabilized ang kasal.",
|
||||
"giftSuccess": "Ang regalo naay improved ang kasal.",
|
||||
"reconcileSuccess": "Ang dispute naay eased para sa now.",
|
||||
"actionError": "Ang action could dili be completed."
|
||||
},
|
||||
"notifications": {
|
||||
"scandal": "A family scandal shaking imong balay.",
|
||||
"loverBirth": "A bata naay born gikan sa usa ka uyab."
|
||||
},
|
||||
"sendgift": {
|
||||
"error": {
|
||||
"nogiftselected": "Please select usa ka regalo.",
|
||||
"generic": "An unknown error occurred.",
|
||||
"tooOften": "Ikaw can't send regalos that often.",
|
||||
"insufficientFunds": "Ikaw do dili naay enough money."
|
||||
},
|
||||
"success": "Ang regalo naay given.",
|
||||
"nextGiftAt": "Next regalo from"
|
||||
}
|
||||
},
|
||||
"church": {
|
||||
"summary": {
|
||||
"highestCurrentOffice": "Highest current opisina",
|
||||
"availableApplications": "Possible applications",
|
||||
"supervisedApplications": "Applications ngadto sa decide",
|
||||
"guidance": "Simbahan opisinas usually progress step by step. Applications normally decided by ang next higher opisina; if no player holds it, usa ka NPC may later decide.",
|
||||
"none": "No simbahan opisina yet"
|
||||
},
|
||||
"current": {
|
||||
"office": "Opisina",
|
||||
"region": "Rehiyon",
|
||||
"holder": "Holder",
|
||||
"supervisor": "Supervisor",
|
||||
"none": "No current positions available."
|
||||
},
|
||||
"available": {
|
||||
"office": "Opisina",
|
||||
"region": "Rehiyon",
|
||||
"supervisor": "Supervisor",
|
||||
"decision": "Decision by",
|
||||
"decisionType": {
|
||||
"entry": "Direct entry",
|
||||
"player": "Player",
|
||||
"npc": "NPC",
|
||||
"interim": "Interim"
|
||||
},
|
||||
"seats": "Available Seats",
|
||||
"action": "Aksyon",
|
||||
"apply": "Aplikar",
|
||||
"applySuccess": "Application submitted successfully.",
|
||||
"applyError": "Sayop submitting application.",
|
||||
"errors": {
|
||||
"characterNotFound": "Your character could dili be found.",
|
||||
"officeTypeNotFound": "Ang simbahan opisina could dili be found.",
|
||||
"churchCareerTooLow": "Your previous simbahan career dili yet sufficient para sa this opisina.",
|
||||
"noAvailableSeats": "There currently no free seats para sa this simbahan opisina.",
|
||||
"applicationAlreadyExists": "There already usa ka open application para sa this simbahan opisina sa this rehiyon."
|
||||
},
|
||||
"none": "No available positions."
|
||||
},
|
||||
"applications": {
|
||||
"office": "Opisina",
|
||||
"region": "Rehiyon",
|
||||
"applicant": "Applicant",
|
||||
"date": "Petsa",
|
||||
"action": "Aksyon",
|
||||
"approve": "Aprub",
|
||||
"reject": "Balibari",
|
||||
"approveSuccess": "Application approved.",
|
||||
"rejectSuccess": "Application rejected.",
|
||||
"decideError": "Sayop making decision.",
|
||||
"none": "No applications available."
|
||||
},
|
||||
"offices": {
|
||||
"lay-preacher": "Lay Preacher",
|
||||
"village-priest": "Village Priest",
|
||||
"parish-priest": "Parish Priest",
|
||||
"dean": "Dean",
|
||||
"archdeacon": "Archdeacon",
|
||||
"bishop": "Bishop",
|
||||
"archbishop": "Archbishop",
|
||||
"cardinal": "Cardinal",
|
||||
"pope": "Pope"
|
||||
},
|
||||
"baptism": {
|
||||
"title": "Baptism",
|
||||
"table": {
|
||||
"name": "First Ngalan",
|
||||
"gender": "Sekso",
|
||||
"age": "Edad",
|
||||
"baptise": "Baptize (50)",
|
||||
"newName": "Suggest Ngalan"
|
||||
},
|
||||
"gender": {
|
||||
"male": "Boy",
|
||||
"female": "Girl"
|
||||
},
|
||||
"success": "Ang bata naay baptized.",
|
||||
"error": "Ang bata could dili be baptized."
|
||||
}
|
||||
},
|
||||
"bank": {
|
||||
"debtorsPrison": {
|
||||
"titleWarning": "Kredito delinquency",
|
||||
"titlePrison": "Sa utang' bilanggoan",
|
||||
"descriptionWarning": "Your credits overdue. If you continue ngadto sa default, forced tambals will follow.",
|
||||
"descriptionPrison": "Ikaw sa debtors' bilanggoan. New credits blocked ug imong assets will be liquidated step by step.",
|
||||
"daysOverdue": "Days overdue",
|
||||
"creditworthiness": "Kreditoworthiness",
|
||||
"nextForcedAction": "Next forced action",
|
||||
"creditBlocked": "Ikaw dili makahimo take new credits while imbilanggoaned para sa debt.",
|
||||
"creditError": "Ang credit could dili be taken.",
|
||||
"actions": {
|
||||
"reminder": "First reminder",
|
||||
"final_warning": "Final warning",
|
||||
"debtors_prison": "Commitment ngadto sa debtors' bilanggoan",
|
||||
"asset_seizure": "Asset seizure"
|
||||
}
|
||||
},
|
||||
"credits": {
|
||||
"table": {
|
||||
"name": "Ngalan",
|
||||
"amount": "Kantidad",
|
||||
"reason": "Reason",
|
||||
"date": "Petsa"
|
||||
},
|
||||
"payoff": {
|
||||
"title": "Take usa ka new credit",
|
||||
"height": "Kredito amount",
|
||||
"remaining": "Remaining possible credit amount",
|
||||
"fee": "Kredito interest",
|
||||
"feeHeight": "Installment (10 payments)",
|
||||
"total": "Tanan",
|
||||
"confirm": "Take credit"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reputation": {
|
||||
"actions": {
|
||||
"running": "Running...",
|
||||
"dailyLimit": "Daily limit: {remaining} sa {cap} actions remaining",
|
||||
"cooldown": "Cooldown: {minutes} minutes remaining",
|
||||
"type": {
|
||||
"soup_kitchen": "Comedor social",
|
||||
"library_donation": "Donasyon sa library",
|
||||
"scholarships": "Mga scholarship",
|
||||
"church_hospice": "Simbahan Hospice",
|
||||
"school_funding": "School Funding",
|
||||
"orphanage_build": "Tukora Orphanage",
|
||||
"bridge_build": "Tukora Bridge",
|
||||
"hospital_donation": "Hospital Donasyon",
|
||||
"patronage": "Patronage",
|
||||
"statue_build": "Tukora Statue",
|
||||
"well_build": "Tukora Well"
|
||||
}
|
||||
},
|
||||
"party": {
|
||||
"newpartyview": {
|
||||
"open": "Create New Party",
|
||||
"close": "Hide New Party",
|
||||
"type": "Party Type"
|
||||
},
|
||||
"music": {
|
||||
"label": "Musika",
|
||||
"none": "No Musika",
|
||||
"bard": "A Bard",
|
||||
"villageBand": "A Village Band",
|
||||
"chamberOrchestra": "A Chamber Orchestra",
|
||||
"symphonyOrchestra": "A Symphony Orchestra",
|
||||
"symphonyOrchestraWithChorusAndSolists": "A Symphony Orchestra uban sa Chorus ug Soloists"
|
||||
},
|
||||
"banquette": {
|
||||
"label": "Pagkaon",
|
||||
"bread": "Pan",
|
||||
"roastWithBeer": "Roast uban sa Beer",
|
||||
"poultryWithVegetablesAndWine": "Poultry uban sa Vegetables ug Wine",
|
||||
"extensiveBuffet": "Festive Meal"
|
||||
},
|
||||
"servants": {
|
||||
"label": "One sulugoon per ",
|
||||
"perPersons": " persons"
|
||||
},
|
||||
"esteemedInvites": {
|
||||
"label": "Invited Estates"
|
||||
},
|
||||
"type": "Party Type",
|
||||
"cost": "Kantidad",
|
||||
"date": "Petsa"
|
||||
}
|
||||
},
|
||||
"underground": {
|
||||
"activities": {
|
||||
"additionalInfo": "Additional information",
|
||||
"blackmailAmount": "Blackmail amount",
|
||||
"discoveries": "Discoveries",
|
||||
"visibilityDelta": "Visibility",
|
||||
"reputationDelta": "Dungog",
|
||||
"victimPlaceholder": "Enter username",
|
||||
"sabotageTarget": "Sabotage target",
|
||||
"corruptGoal": "Corruption goal",
|
||||
"affairGoal": "Investigation goal",
|
||||
"raidRegion": "Raid rehiyon",
|
||||
"raidRegionPlaceholder": "Select rehiyon",
|
||||
"bandSize": "Band size",
|
||||
"raidSummary": "Gang ({bandSize}) sa {rehiyon}",
|
||||
"attempts": "Attempts",
|
||||
"successes": "Malampusones",
|
||||
"lastOutcome": "Last outcome",
|
||||
"raidResultTitle": "Latest raid",
|
||||
"lastTargetTransport": "Latest target transport",
|
||||
"loot": "Bilin"
|
||||
},
|
||||
"types": {
|
||||
"spyin": "Espiya",
|
||||
"assassin": "Assassination",
|
||||
"sabotage": "Sabotage",
|
||||
"corrupt_politician": "Corruption",
|
||||
"rob": "Kawat",
|
||||
"investigate_affair": "Investigate uyab",
|
||||
"raid_transport": "Raid transports"
|
||||
},
|
||||
"targets": {
|
||||
"house": "Balay",
|
||||
"storage": "Tipigan"
|
||||
},
|
||||
"goals": {
|
||||
"elect": "Appointment",
|
||||
"taxIncrease": "Raise buhises",
|
||||
"taxDecrease": "Lower buhises",
|
||||
"expose": "Expose",
|
||||
"blackmail": "Blackmail"
|
||||
},
|
||||
"status": {
|
||||
"pending": "Naghuwat",
|
||||
"resolved": "Nasulbad",
|
||||
"failed": "Napakyas"
|
||||
},
|
||||
"raidOutcomes": {
|
||||
"repelled": "Repelled",
|
||||
"partial_success": "Partial success",
|
||||
"major_success": "Major success"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
386
frontend/scripts/ceb-patches/socialnetwork-patch.json
Normal file
386
frontend/scripts/ceb-patches/socialnetwork-patch.json
Normal file
@@ -0,0 +1,386 @@
|
||||
{
|
||||
"socialnetwork": {
|
||||
"profile": {
|
||||
"values": {
|
||||
"pubichair": {
|
||||
"none": "Wala",
|
||||
"short": "Mubo",
|
||||
"medium": "Tunga-tunga",
|
||||
"long": "Taas",
|
||||
"hairy": "Natural",
|
||||
"waxed": "Wax",
|
||||
"landingstrip": "Landing strip",
|
||||
"other": "Uban",
|
||||
"bikinizone": "Zona sa bikini lamang"
|
||||
},
|
||||
"eyecolor": {
|
||||
"blue": "Asul",
|
||||
"green": "Berde",
|
||||
"brown": "Brown",
|
||||
"black": "Itom",
|
||||
"grey": "Abohon",
|
||||
"hazel": "Hazel",
|
||||
"amber": "Amber",
|
||||
"red": "Pula",
|
||||
"other": "Uban"
|
||||
},
|
||||
"haircolor": {
|
||||
"black": "Itom",
|
||||
"brown": "Brown",
|
||||
"blonde": "Blonde",
|
||||
"red": "Pula",
|
||||
"grey": "Abohon",
|
||||
"white": "Puti",
|
||||
"other": "Uban"
|
||||
},
|
||||
"hairlength": {
|
||||
"short": "Mubo",
|
||||
"medium": "Tunga-tunga",
|
||||
"long": "Taas",
|
||||
"bald": "Kalbo",
|
||||
"other": "Uban"
|
||||
},
|
||||
"skincolor": {
|
||||
"light": "Klaro",
|
||||
"medium": "Tunga-tunga",
|
||||
"dark": "Itom",
|
||||
"other": "Uban"
|
||||
},
|
||||
"freckles": {
|
||||
"much": "Daghan",
|
||||
"medium": "Tunga-tunga",
|
||||
"less": "Ubos",
|
||||
"none": "Wala"
|
||||
}
|
||||
},
|
||||
"pubichair": "Buhok sa pribado",
|
||||
"penislength": "Taas sa penis",
|
||||
"brasize": "Sukod sa bra",
|
||||
"piercings": "Mga piercing",
|
||||
"tattoos": "Mga tattoo",
|
||||
"eyecolor": "Kolor sa mata",
|
||||
"haircolor": "Kolor sa buhok",
|
||||
"hairlength": "Taas sa buhok",
|
||||
"freckles": "Mga batik",
|
||||
"skincolor": "Kolor sa panit"
|
||||
},
|
||||
"forum": {
|
||||
"pagination": {
|
||||
"first": "Unang panid",
|
||||
"previous": "Miaging panid",
|
||||
"next": "Sunod nga panid",
|
||||
"last": "Kataposang panid",
|
||||
"page": "Panid <<page>> sa <<of>>"
|
||||
}
|
||||
},
|
||||
"erotic": {
|
||||
"requestInfoTitle": "Gipasa nga prueba",
|
||||
"documentLabel": "Dokumento sa beripikasyon",
|
||||
"noteLabel": "Mubo nga nota para sa moderation",
|
||||
"settingsLink": "Ablihi ang account settings",
|
||||
"verificationHintTitle": "Nota sa beripikasyon",
|
||||
"verificationHintBody": "Mahimo kang magpadala og hulagway. Kung dili klaro ang imong edad didto, ibalibaran ang hangyo ug kinahanglan nimo og ID.",
|
||||
"notifications": {
|
||||
"approved": "Gi-aprub sa moderation ang imong pag-abli sa erotik nga lugar.",
|
||||
"rejected": "Gibalibaran ang imong hangyo sa erotik. Kung dili klaro ang edad sa hulagway, palihog ipadala ang ID."
|
||||
},
|
||||
"noVideos": "Wala pa kay na-upload nga erotik nga mga video.",
|
||||
"intro": "Na-abli na ang lugar. Ang mga module sa hulagway ug video mosunod sa sunod nga lakang.",
|
||||
"enabledTitle": "Na-abli na ang access",
|
||||
"enabledBody": "Ang imong account na-enable na sa erotik nga lugar. Ang hiwalay nga mga view sa hulagway ug video himoon pa.",
|
||||
"roadmapTitle": "Sunod",
|
||||
"roadmapModeration": "hiwalay nga agianan sa moderation ug reporting",
|
||||
"roadmapUpload": "dedikadong mga view sa upload ug pagdumala",
|
||||
"roadmapSeparation": "klaro nga pagbulag gikan sa normal nga galeriya",
|
||||
"status": {
|
||||
"none": {
|
||||
"title": "Wala pa ma-abli",
|
||||
"body": "Makita ang lugar, pero naka-lock pa hangtod sa pag-aprub sa moderator."
|
||||
},
|
||||
"pending": {
|
||||
"title": "Naghuwat sa pagsusi",
|
||||
"body": "Ang imong hangyo naghuwat sa moderation."
|
||||
},
|
||||
"approved": {
|
||||
"title": "Na-abli na",
|
||||
"body": "Na-abli na ang erotik nga lugar para sa imong account."
|
||||
},
|
||||
"rejected": {
|
||||
"title": "Gibalibaran ang hangyo",
|
||||
"body": "Ang kataposang hangyo wala ma-aprub. Mahimo kang magpadala og bag-o."
|
||||
}
|
||||
}
|
||||
},
|
||||
"vocab": {
|
||||
"title": "Trainer sa bokabularyo",
|
||||
"description": "Paghimo og pinulongans (or subscribe aron them) ug share them uban sa friends.",
|
||||
"newLanguage": "New pinulongan",
|
||||
"newLanguageTitle": "Paghimo og new pinulongan",
|
||||
"languageName": "Pinulongan name",
|
||||
"create": "Paghimo",
|
||||
"saving": "Saving...",
|
||||
"created": "Pinulongan created.",
|
||||
"createdTitle": "Trainer sa bokabularyo",
|
||||
"createdMessage": "Pinulongan created. Ang menu will refresh.",
|
||||
"createError": "Dili ma create pinulongan.",
|
||||
"openLanguage": "Ablihi",
|
||||
"none": "Ikaw naay no pinulongans yet (created o subscribed).",
|
||||
"owner": "Owned",
|
||||
"subscribed": "Mag-subscribed",
|
||||
"languageTitle": "Trainer sa bokabularyo: {name}",
|
||||
"notFound": "Pinulongan not found o no access.",
|
||||
"shareCode": "Ipaambit code",
|
||||
"shareHint": "Padal-a ang kini nga code aron friends so they can subscribe aron kini nga pinulongan.",
|
||||
"subscribeByCode": "Mag-subscribe by code",
|
||||
"subscribeTitle": "Mag-subscribe aron pinulongan",
|
||||
"subscribeHint": "Enter a share code you received gikan sa a friend.",
|
||||
"subscribe": "Mag-subscribe",
|
||||
"subscribeSuccess": "Mag-subscribed. Ang menu will refresh.",
|
||||
"subscribeError": "Mag-subscribe failed. Dili balido code o no access.",
|
||||
"trainerPlaceholder": "Trainer features (words/quizzes) will be ang next step.",
|
||||
"chapters": "Kapitulos",
|
||||
"newChapter": "New kapitulo",
|
||||
"createChapter": "Paghimo og kapitulo",
|
||||
"createChapterError": "Dili ma create kapitulo.",
|
||||
"noChapters": "Walay kapitulos yet.",
|
||||
"chapterTitle": "Kapitulo: {title}",
|
||||
"addVocab": "Add bokabularyo",
|
||||
"learningWord": "To learn",
|
||||
"referenceWord": "Reference",
|
||||
"add": "Add",
|
||||
"addVocabError": "Dili ma add bokabularyo.",
|
||||
"noVocabs": "Walay bokabularyo sa kini nga kapitulo yet.",
|
||||
"practice": {
|
||||
"open": "Praktis",
|
||||
"title": "Praktis bokabularyo",
|
||||
"allVocabs": "Tanan nga bokabularyo",
|
||||
"simple": "Simple praktis",
|
||||
"noPool": "Walay bokabularyo aron praktis.",
|
||||
"dirLearningToRef": "To learn → Reference",
|
||||
"dirRefToLearning": "Reference → To learn",
|
||||
"check": "Susihi",
|
||||
"next": "Sunod",
|
||||
"skip": "Laktaw",
|
||||
"correct": "Tama!",
|
||||
"wrong": "Sayop.",
|
||||
"acceptable": "Acceptable answers:",
|
||||
"stats": "Stats",
|
||||
"success": "Malampuson",
|
||||
"fail": "Fail"
|
||||
},
|
||||
"search": {
|
||||
"open": "Pangita",
|
||||
"title": "Pangita bokabularyo",
|
||||
"term": "Pangita term",
|
||||
"motherTongue": "Pinulongan nga inahan",
|
||||
"learningLanguage": "Pagkat-on pinulongan",
|
||||
"lesson": "Leksiyon",
|
||||
"search": "Pangita",
|
||||
"noResults": "Walay results.",
|
||||
"error": "Pangita failed."
|
||||
},
|
||||
"courses": {
|
||||
"title": "Pinulongan Pagkat-on Kursos",
|
||||
"create": "Paghimo og Kurso",
|
||||
"myCourses": "My Kursos",
|
||||
"allCourses": "Tanan nga Kursos",
|
||||
"none": "Walay kursos found.",
|
||||
"owner": "Tag-iya",
|
||||
"enrolled": "Na-enroll",
|
||||
"public": "Publiko",
|
||||
"difficulty": "Kalisod",
|
||||
"lessons": "Leksiyons",
|
||||
"enroll": "Enroll",
|
||||
"continue": "Padayon",
|
||||
"edit": "Edit",
|
||||
"addLesson": "Add Leksiyon",
|
||||
"completed": "Nahuman",
|
||||
"score": "Score",
|
||||
"review": "Balik-balik",
|
||||
"start": "Sugdi",
|
||||
"noLessons": "Kini nga kurso naay no leksiyons yet.",
|
||||
"lessonNumber": "Leksiyon Number",
|
||||
"chapter": "Kapitulo",
|
||||
"selectChapter": "Select Kapitulo",
|
||||
"selectLanguage": "Select Pinulongan",
|
||||
"confirmDelete": "Tinuod nga delete leksiyon?",
|
||||
"titleLabel": "Titulo",
|
||||
"descriptionLabel": "Deskripsiyon",
|
||||
"languageLabel": "Pinulongan",
|
||||
"findByCode": "Find Kurso by Code",
|
||||
"shareCode": "Ipaambit Code",
|
||||
"searchPlaceholder": "Pangita kursos...",
|
||||
"allLanguages": "Tanan nga Pinulongans",
|
||||
"targetLanguage": "Target Pinulongan",
|
||||
"nativeLanguage": "Native Pinulongan",
|
||||
"allNativeLanguages": "Tanan nga Native Pinulongans",
|
||||
"myNativeLanguage": "My Native Pinulongan",
|
||||
"forAllLanguages": "For Tanan nga Pinulongans",
|
||||
"optional": "Opsyonal",
|
||||
"invalidCode": "Dili balido code",
|
||||
"courseNotFound": "Kurso not found",
|
||||
"grammarExercises": "Tsek sa kapitulo",
|
||||
"exerciseFlowIntro": "Work through ang tasks sa order. Every tama answer moves you closer aron completing ang leksiyon.",
|
||||
"exerciseProgressLabel": "Progress",
|
||||
"exerciseTargetLabel": "Required",
|
||||
"exerciseCardLabel": "Task {number}",
|
||||
"exerciseSequentialProgress": "Question {current} sa {total}",
|
||||
"exerciseSequentialBack": "Balik",
|
||||
"exerciseSequentialNext": "Sunod",
|
||||
"exerciseWrongTitle": "Dili quite right",
|
||||
"exerciseReinforcementGoPractice": "Go aron praktis",
|
||||
"exerciseReinforcementStay": "Stay sa ang test",
|
||||
"exerciseReinforcementGoPracticeAck": "Read, go aron praktis",
|
||||
"exerciseReinforcementStayAck": "Read, stay sa ang test",
|
||||
"exerciseStatusOpen": "Ablihi",
|
||||
"exerciseStatusCorrect": "Done",
|
||||
"exerciseStatusRetry": "Try again",
|
||||
"exerciseAnswerAllHint": "Answer tanan nga {total} tasks una. Nahuman so far: {answered}. Ikaw need sa least {target}% aron pass.",
|
||||
"exerciseNeedMoreCorrectHint": "Ikaw currently naay {score}%. Ikaw need sa least {target}% aron complete kini nga leksiyon.",
|
||||
"exercisePassedHint": "Target reached: {score}% out sa ang required {target}%. Once tanan nga tasks naay been answered, ang tsek sa kapitulo is passed.",
|
||||
"exerciseReinforcementHint": "After a mistake, ang flow returns briefly aron pagkat-on mode. Praktis {count} more trainer questions ug ang tsek sa kapitulo will unlock again.",
|
||||
"exercisePrepReinforcementHint": "After a mistake, go through ang prepared terms once more. Then ang tsek sa kapitulo will unlock again.",
|
||||
"exerciseGrammarLead": "Key grammar para sa kini nga test",
|
||||
"noExercises": "Walay test available",
|
||||
"enterAnswer": "Enter answer",
|
||||
"checkAnswer": "Susihi Answer",
|
||||
"correct": "Tama!",
|
||||
"wrong": "Sayop",
|
||||
"explanation": "Pasabot",
|
||||
"learn": "Learn",
|
||||
"exercises": "Tsek sa kapitulo",
|
||||
"learnVocabulary": "Learn Bokabularyo",
|
||||
"lessonOverviewText": "Kini nga leksiyon combines bokabularyo, patterns, short grammar impulses, ug active speaking praktis.",
|
||||
"lessonDescription": "Leksiyon Deskripsiyon",
|
||||
"culturalNotes": "Cultural Notes",
|
||||
"grammarExplanations": "Gramatika Pasabots",
|
||||
"grammarImpulse": "Gramatika Focus",
|
||||
"learningGoals": "Pagkat-on Goals",
|
||||
"corePatterns": "Core Patterns",
|
||||
"corePatternsHint": "Read ang target pinulongan una, then ang meaning below — you learn each pattern both ways.",
|
||||
"learningGrammarTitle": "Briefly frame ang grammar",
|
||||
"learningGrammarIntro": "Read these 1-2 hints human sa ang key terms. Then you go into ang trainer uban sa better orientation.",
|
||||
"vocabPrepTitle": "Preparation sa wala pa ang bokabularyo trainer",
|
||||
"vocabPrepStep1": "Read through core patterns ug ang word list (native pinulongan ↔ target pinulongan) once.",
|
||||
"vocabPrepProgress": "Pass {pass}: item {current} sa {total}",
|
||||
"vocabPrepTargetLabel": "Target pinulongan",
|
||||
"vocabPrepGlossLabel": "Meaning",
|
||||
"vocabPrepNextItem": "Sunod item",
|
||||
"vocabPrepConfirm1": "Una pass done",
|
||||
"vocabPrepStep2": "Go through ang same items again (active review, not testing yet).",
|
||||
"vocabPrepConfirm2": "Second pass done",
|
||||
"vocabPrepReady": "Ikaw can start ang bokabularyo trainer now.",
|
||||
"learningPathLabel": "Main path",
|
||||
"learningPathTitle": "Your pagkat-on flow para sa kini nga leksiyon",
|
||||
"learningPathIntro": "Work through these steps sa order: prepare, review briefly, train, then move aron ang tsek sa kapitulo.",
|
||||
"lessonDetailsToggle": "Show more leksiyon details",
|
||||
"deepenSectionTitle": "Deepen ug review",
|
||||
"assistantSectionTitle": "Deepen uban sa pinulongan katabang",
|
||||
"vocabOverviewToggle": "Show full overview sa terms",
|
||||
"vocabTrainerLockedHint": "Palihog confirm two preparation steps under “Preparation sa wala pa ang bokabularyo trainer” una.",
|
||||
"exerciseUnlockHintAfterPrep": "Work through ang prepared terms una. Ang tsek sa kapitulo will unlock afterwards.",
|
||||
"speakingTasks": "Speaking Tasks",
|
||||
"speakingPrompt": "Speaking Prompt",
|
||||
"practicalTasks": "Practical Tasks",
|
||||
"importantVocab": "Important Bokabularyo",
|
||||
"vocabInfoText": "These terms are used sa ang test. Learn them here passively sa wala pa switching aron ang tsek sa kapitulo.",
|
||||
"noVocabInfo": "Read ang description above ug ang pasabots sa ang test aron learn ang most important terms.",
|
||||
"vocabTrainer": "Bokabularyo Trainer",
|
||||
"vocabTrainerDescription": "Praktis ang most important terms sa kini nga leksiyon interactively.",
|
||||
"startVocabTrainer": "Sugdi ang Bokabularyo Trainer",
|
||||
"stopTrainer": "Hunong ang Trainer",
|
||||
"translateTo": "Translate into Bisaya",
|
||||
"translateFrom": "Translate into German",
|
||||
"next": "Sunod",
|
||||
"totalAttempts": "Attempts",
|
||||
"successRate": "Malampuson Rate",
|
||||
"modeMultipleChoice": "Multiple Choice",
|
||||
"modeTyping": "Text Input",
|
||||
"currentLesson": "Current Leksiyon",
|
||||
"mixedReview": "Balik-balik",
|
||||
"lessonCompleted": "Leksiyon completed!",
|
||||
"goToNextLesson": "Go aron next leksiyon?",
|
||||
"allLessonsCompleted": "Tanan nga leksiyons completed!",
|
||||
"startExercises": "Sugdi ang Tsek sa kapitulo",
|
||||
"lessonTypeLabel": "Leksiyon Type",
|
||||
"recommendedDuration": "Recommended Duration",
|
||||
"exerciseLoad": "Exercise Load",
|
||||
"exercisesShort": "exercises",
|
||||
"durationFlexible": "Flexible",
|
||||
"durationMinutes": "{ka minuto} ka minuto",
|
||||
"lessonTypeVocab": "Bokabularyo",
|
||||
"lessonTypeGrammar": "Gramatika",
|
||||
"lessonTypeConversation": "Panag-istoryahanay",
|
||||
"lessonTypeCulture": "Kultura",
|
||||
"lessonTypeReview": "Balik-balik",
|
||||
"correctAnswer": "Tama Answer",
|
||||
"alternatives": "Alternative Answers",
|
||||
"notStarted": "Dili Sugdied",
|
||||
"continueCurrentLesson": "Padayon Current Leksiyon",
|
||||
"previousLessonRequired": "Palihog complete ang previous leksiyon una",
|
||||
"lessonNumberShort": "#",
|
||||
"buildSentencePlaceholder": "Build imong sentence here",
|
||||
"completeDialogPlaceholder": "Complete ang missing dialog line",
|
||||
"situationalResponsePlaceholder": "Write imong response aron ang situation",
|
||||
"patternDrillPlaceholder": "Paghimo og a fitting sentence uban sa ang pattern",
|
||||
"modelSentence": "Model sentence",
|
||||
"modelDialogLine": "Possible dialog line",
|
||||
"modelResponse": "Possible response",
|
||||
"modelPattern": "Possible pattern example",
|
||||
"patternPrompt": "Pattern",
|
||||
"readingAloudInstruction": "Read ang text aloud. Click 'Sugdi ang Nagrekord' ug begin speaking.",
|
||||
"speakingFromMemoryInstruction": "Speak freely gikan sa memory. Use ang displayed keywords.",
|
||||
"startRecording": "Sugdi ang Nagrekord",
|
||||
"stopRecording": "Hunong ang Nagrekord",
|
||||
"startSpeaking": "Sugdi ang Speaking",
|
||||
"recording": "Nagrekord...",
|
||||
"listening": "Listening...",
|
||||
"recordingStopped": "Nagrekord stopped",
|
||||
"recordingError": "Nagrekord error",
|
||||
"recognizedText": "Recognized Text",
|
||||
"speechRecognitionNotSupported": "Speech Recognition is not supported by kini nga browser. Palihog use Chrome o Edge.",
|
||||
"speakingFallbackInstruction": "Your browser does not support speech input here. Write down what you would say instead ug check it normally.",
|
||||
"speakingFallbackPlaceholder": "Write what you would say here ...",
|
||||
"keywords": "Keywords",
|
||||
"switchBackToMultipleChoice": "Switch back aron Multiple Choice",
|
||||
"languageAssistantEyebrow": "Pinulongan katabang",
|
||||
"languageAssistantCourseTitle": "AI support para sa kini nga kurso",
|
||||
"languageAssistantCourseReady": "Ang pinulongan katabang is configured ug available inside leksiyons para sa pasabots, tamaions, ug short dialogue praktis.",
|
||||
"languageAssistantCourseSetup": "Set up ang pinulongan katabang so you can ask leksiyon-specific questions ug praktis short dialogues.",
|
||||
"languageAssistantOpenLesson": "Ablihi ang sa current leksiyon",
|
||||
"languageAssistantTitle": "Praktis uban sa ang pinulongan katabang",
|
||||
"languageAssistantIntro": "Use ang AI directly inside ang current leksiyon: get grammar explained, praktis short dialogues, o naay imong own sentences tamaed.",
|
||||
"languageAssistantSettings": "Configure katabang",
|
||||
"languageAssistantSetupHint": "Ang pinulongan katabang is not configured yet o is currently disabled. Palihog save imong model ug API access sa ang settings una.",
|
||||
"languageAssistantModePractice": "Praktis",
|
||||
"languageAssistantModeExplain": "Explain",
|
||||
"languageAssistantModeCorrect": "Tama",
|
||||
"languageAssistantPromptExplain": "Explain grammar",
|
||||
"languageAssistantPromptPractice": "Praktis mini dialogue",
|
||||
"languageAssistantPromptCorrect": "Improve my sentence",
|
||||
"languageAssistantSpeakerAi": "Pinulongan katabang",
|
||||
"languageAssistantSpeakerYou": "You",
|
||||
"languageAssistantInputLabel": "Your mensahe",
|
||||
"languageAssistantInputPlaceholder": "Ask a leksiyon question o write imong own sentence para sa tamaion.",
|
||||
"languageAssistantSend": "Padal-a ang aron katabang",
|
||||
"languageAssistantSending": "Getting answer ...",
|
||||
"languageAssistantError": "Ang pinulongan katabang could not answer right now.",
|
||||
"languageAssistantPresetExplainStart": "Palihog explain ang main patterns ug grammar sa ang leksiyon",
|
||||
"languageAssistantPatternHint": "Focus especially sa kini nga pattern",
|
||||
"languageAssistantPresetPracticeStart": "Let's praktis a short everyday dialogue para sa ang leksiyon \"{leksiyon}\". Palihog ask me questions ug wait para sa my answers.",
|
||||
"languageAssistantPresetCorrectStart": "I want aron write my own sentences para sa ang leksiyon \"{leksiyon}\". Palihog tama my answers briefly ug clearly.",
|
||||
"thisLesson": "this leksiyon",
|
||||
"quickReviewTitle": "Quick Balik-balik",
|
||||
"quickReviewIntro": "Short session uban sa {count} terms. After completion, ang scheduled review is marked as done.",
|
||||
"quickReviewDoneTitle": "Done",
|
||||
"quickReviewDoneScore": "Tama: {tama} / {total}",
|
||||
"quickReviewBackToCourse": "Balik aron kurso",
|
||||
"quickReviewProgress": "Term {current} sa {total}",
|
||||
"quickReviewPromptMeaning": "What does \"{term}\" mean?",
|
||||
"quickReviewPromptTarget": "Type sa target pinulongan: \"{term}\"",
|
||||
"quickReviewAcknowledge": "Read, continue",
|
||||
"courseTodayPlanIntroNoDueReview": "Walay quick review is due today. Sugdi ang uban sa ang open leksiyons sa imong current block, then do intensive review if shown. Quick reviews reappear automatically sa ang 1/3/7-day rhythm."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
45
frontend/scripts/merge-ceb-locale-patch.mjs
Normal file
45
frontend/scripts/merge-ceb-locale-patch.mjs
Normal file
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env node
|
||||
/**
|
||||
* Tiefes Zusammenführen eines Patch-Objekts in eine Ceb-Locale-Datei.
|
||||
* Nutzung: node merge-ceb-locale-patch.mjs <ziel.json> <patch.json>
|
||||
*/
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
|
||||
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
||||
|
||||
function isPlainObject(value) {
|
||||
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
||||
}
|
||||
|
||||
function deepMerge(target, source) {
|
||||
if (!isPlainObject(source)) return target;
|
||||
const base = isPlainObject(target) ? { ...target } : {};
|
||||
for (const key of Object.keys(source)) {
|
||||
const sv = source[key];
|
||||
const tv = base[key];
|
||||
if (isPlainObject(sv) && isPlainObject(tv)) {
|
||||
base[key] = deepMerge(tv, sv);
|
||||
} else if (isPlainObject(sv)) {
|
||||
base[key] = deepMerge({}, sv);
|
||||
} else {
|
||||
base[key] = sv;
|
||||
}
|
||||
}
|
||||
return base;
|
||||
}
|
||||
|
||||
const targetPath = path.resolve(process.argv[2] || '');
|
||||
const patchPath = path.resolve(process.argv[3] || '');
|
||||
|
||||
if (!targetPath || !patchPath || !fs.existsSync(targetPath) || !fs.existsSync(patchPath)) {
|
||||
console.error('Usage: node merge-ceb-locale-patch.mjs <target.json> <patch.json>');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const base = JSON.parse(fs.readFileSync(targetPath, 'utf8'));
|
||||
const patch = JSON.parse(fs.readFileSync(patchPath, 'utf8'));
|
||||
const merged = deepMerge(base, patch);
|
||||
fs.writeFileSync(targetPath, JSON.stringify(merged, null, 4) + '\n', 'utf8');
|
||||
console.log('Merged patch into', targetPath);
|
||||
@@ -80,6 +80,73 @@ import esMessage from './locales/es/message.json';
|
||||
import esPersonal from './locales/es/personal.json';
|
||||
import esSeo from './locales/es/seo.json';
|
||||
|
||||
function isPlainObject(value) {
|
||||
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
||||
}
|
||||
|
||||
/** Tiefes Zusammenführen von Locale-Chunks (ceb überschreibt en nur auf Blattebene, ohne ganze Teilbäume zu verwerfen). */
|
||||
function deepMerge(target, source) {
|
||||
if (!isPlainObject(source)) return target;
|
||||
const base = isPlainObject(target) ? { ...target } : {};
|
||||
for (const key of Object.keys(source)) {
|
||||
const sv = source[key];
|
||||
const tv = base[key];
|
||||
if (isPlainObject(sv) && isPlainObject(tv)) {
|
||||
base[key] = deepMerge(tv, sv);
|
||||
} else if (isPlainObject(sv)) {
|
||||
base[key] = deepMerge({}, sv);
|
||||
} else {
|
||||
base[key] = sv;
|
||||
}
|
||||
}
|
||||
return base;
|
||||
}
|
||||
|
||||
function mergeLocaleChunks(chunks) {
|
||||
return chunks.reduce((acc, chunk) => deepMerge(acc, chunk), {});
|
||||
}
|
||||
|
||||
const cebLocaleChunks = [
|
||||
enGeneral,
|
||||
enHeader,
|
||||
enNavigation,
|
||||
enHome,
|
||||
enChat,
|
||||
enRegister,
|
||||
enPasswordReset,
|
||||
enError,
|
||||
enActivate,
|
||||
enSettings,
|
||||
enAdmin,
|
||||
enSocialNetwork,
|
||||
enFriends,
|
||||
enFalukant,
|
||||
enBlog,
|
||||
enMinigames,
|
||||
enMessage,
|
||||
enPersonal,
|
||||
enSeo,
|
||||
cebGeneral,
|
||||
cebHeader,
|
||||
cebNavigation,
|
||||
cebHome,
|
||||
cebRegister,
|
||||
cebActivate,
|
||||
cebError,
|
||||
cebMessage,
|
||||
cebSettings,
|
||||
cebAdmin,
|
||||
cebPasswordReset,
|
||||
cebSocialNetwork,
|
||||
cebFriends,
|
||||
cebChat,
|
||||
cebPersonal,
|
||||
cebFalukant,
|
||||
cebBlog,
|
||||
cebMinigames,
|
||||
cebSeo,
|
||||
];
|
||||
|
||||
const messages = {
|
||||
en: {
|
||||
...enGeneral,
|
||||
@@ -102,45 +169,7 @@ const messages = {
|
||||
...enPersonal,
|
||||
...enSeo,
|
||||
},
|
||||
ceb: {
|
||||
...enGeneral,
|
||||
...enHeader,
|
||||
...enNavigation,
|
||||
...enHome,
|
||||
...enChat,
|
||||
...enRegister,
|
||||
...enPasswordReset,
|
||||
...enError,
|
||||
...enActivate,
|
||||
...enSettings,
|
||||
...enAdmin,
|
||||
...enSocialNetwork,
|
||||
...enFriends,
|
||||
...enFalukant,
|
||||
...enBlog,
|
||||
...enMinigames,
|
||||
...enMessage,
|
||||
...enPersonal,
|
||||
...cebGeneral,
|
||||
...cebHeader,
|
||||
...cebNavigation,
|
||||
...cebHome,
|
||||
...cebRegister,
|
||||
...cebActivate,
|
||||
...cebError,
|
||||
...cebMessage,
|
||||
...cebSettings,
|
||||
...cebAdmin,
|
||||
...cebPasswordReset,
|
||||
...cebSocialNetwork,
|
||||
...cebFriends,
|
||||
...cebChat,
|
||||
...cebPersonal,
|
||||
...cebFalukant,
|
||||
...cebBlog,
|
||||
...cebMinigames,
|
||||
...cebSeo,
|
||||
},
|
||||
ceb: mergeLocaleChunks(cebLocaleChunks),
|
||||
de: {
|
||||
'Ok': 'Ok',
|
||||
...deGeneral,
|
||||
|
||||
@@ -1,68 +1,482 @@
|
||||
{
|
||||
"admin": {
|
||||
"interests": {
|
||||
"title": "[Admin] - Pagdumala sa mga interes"
|
||||
},
|
||||
"contacts": {
|
||||
"title": "[Admin] - Mga hangyo sa pakigkontak",
|
||||
"date": "Petsa",
|
||||
"from": "Gikan kang",
|
||||
"actions": "Mga aksyon",
|
||||
"open": "Ablihi",
|
||||
"finished": "Tapusa"
|
||||
},
|
||||
"editcontactrequest": {
|
||||
"title": "[Admin] - Usba ang hangyo sa pakigkontak"
|
||||
},
|
||||
"user": {
|
||||
"name": "Ngalan sa user",
|
||||
"active": "Aktibo",
|
||||
"blocked": "Gi-block",
|
||||
"actions": "Mga aksyon",
|
||||
"search": "Pangita"
|
||||
},
|
||||
"vocabLessonReset": {
|
||||
"title": "Kurso sa pinulongan: pag-uswag sa leksiyon",
|
||||
"intro": "Tangtanga ang pag-uswag, mga resulta sa ehersisyo ug natipig nga kahimtang sa usa ka leksiyon lamang (dili ang tibuok kurso). Makita ra ang mga kurso nga na-enroll niini nga tiggamit.",
|
||||
"loadCourses": "Ikarga ang na-enroll nga mga kurso",
|
||||
"selectCourse": "Kurso",
|
||||
"selectLesson": "Leksiyon",
|
||||
"reset": "I-reset ang leksiyon niining user",
|
||||
"confirmTitle": "Tangtanga ang pag-uswag sa leksiyon",
|
||||
"confirm": "Tinuod nga tangtangon ang pag-uswag sa leksiyon nga «{lesson}» ni {username}?",
|
||||
"success": "Na-reset na ang pag-uswag sa leksiyon.",
|
||||
"error": "Dili ma-reset.",
|
||||
"pickUserFirst": "Una pagpili ug user.",
|
||||
"noEnrolledCourses": "Kini nga tiggamit wala na-enroll sa bisan unsang kurso sa pinulongan.",
|
||||
"loadCoursesError": "Dili makarga ang lista sa mga kurso.",
|
||||
"loadingLessons": "Nagkarga sa mga leksiyon …"
|
||||
},
|
||||
"vocabLessonMarkComplete": {
|
||||
"divider": "Ayuhon ang pag-uswag (dili paghimo og peke nga resulta sa ehersisyo)",
|
||||
"throughLabel": "Tanang leksiyon hangtod sa numero (lakip)",
|
||||
"hint": "I-mark ang kulang o abli nga mga row nga nahuman, lakip ang target score ug unang review wave. Ang nahuman na dili usbon.",
|
||||
"submit": "I-mark nga nahuman hangtod dinhi",
|
||||
"confirmTitle": "I-mark ang mga leksiyon nga nahuman",
|
||||
"confirm": "I-mark nga nahuman ang tanang leksiyon nga numero ≤ {n} ni {username} niining kurso?",
|
||||
"success": "{marked} ka leksiyon nga bag-ong gi-mark nga nahuman ({unchanged} klaro nang nahuman).",
|
||||
"successNone": "Walay pagbag-o: tanang leksiyon nga naapektuhan ({unchanged}) klaro nang nahuman.",
|
||||
"error": "Dili ma-mark nga nahuman."
|
||||
},
|
||||
"rights": {
|
||||
"add": "Idugang ang katungod",
|
||||
"select": "Palihog pagpili",
|
||||
"current": "Karon nga mga katungod"
|
||||
},
|
||||
"forum": {
|
||||
"title": "[Admin] - Forum",
|
||||
"currentForums": "Anaa nang mga forum",
|
||||
"edit": "Usba",
|
||||
"delete": "Tangtanga",
|
||||
"createForum": "Paghimo",
|
||||
"forumName": "Titulo",
|
||||
"create": "Paghimo",
|
||||
"selectPermissions": "Palihog pagpili",
|
||||
"confirmDeleteTitle": "Tangtanga ang forum"
|
||||
"admin": {
|
||||
"interests": {
|
||||
"title": "[Admin] - Pagdumala sa mga interes",
|
||||
"newinterests": {
|
||||
"name": "Ngalan sa interes",
|
||||
"status": "Na-aprub",
|
||||
"adultonly": "Hamtong lamang",
|
||||
"translations": "Mga hubad",
|
||||
"isactive": "Aktibo",
|
||||
"isadult": "Hamtong lamang",
|
||||
"delete": "Tangtanga"
|
||||
}
|
||||
},
|
||||
"contacts": {
|
||||
"title": "[Admin] - Mga hangyo sa pakigkontak",
|
||||
"date": "Petsa",
|
||||
"from": "Gikan kang",
|
||||
"actions": "Mga aksyon",
|
||||
"open": "Usba",
|
||||
"finished": "Humana"
|
||||
},
|
||||
"editcontactrequest": {
|
||||
"title": "[Admin] - Usba ang hangyo sa pakigkontak"
|
||||
},
|
||||
"user": {
|
||||
"name": "Ngalan sa user",
|
||||
"active": "Aktibo",
|
||||
"blocked": "Gi-block",
|
||||
"actions": "Mga aksyon",
|
||||
"search": "Pangita"
|
||||
},
|
||||
"vocabLessonReset": {
|
||||
"title": "Kurso sa pinulongan: pag-uswag sa leksiyon",
|
||||
"intro": "Tangtanga ang pag-uswag, mga resulta sa ehersisyo ug natipig nga kahimtang sa usa ka leksiyon lamang (dili ang tibuok kurso). Makita ra ang mga kurso nga na-enroll niini nga tiggamit.",
|
||||
"loadCourses": "Ikarga ang na-enroll nga mga kurso",
|
||||
"selectCourse": "Kurso",
|
||||
"selectLesson": "Leksiyon",
|
||||
"reset": "I-reset ang leksiyon niining user",
|
||||
"confirmTitle": "Tangtanga ang pag-uswag sa leksiyon",
|
||||
"confirm": "Tinuod nga tangtangon ang pag-uswag sa leksiyon nga «{lesson}» ni {username}?",
|
||||
"success": "Na-reset na ang pag-uswag sa leksiyon.",
|
||||
"error": "Dili ma-reset.",
|
||||
"pickUserFirst": "Una pagpili ug user.",
|
||||
"noEnrolledCourses": "Kini nga tiggamit wala na-enroll sa bisan unsang kurso sa pinulongan.",
|
||||
"loadCoursesError": "Dili makarga ang lista sa mga kurso.",
|
||||
"loadingLessons": "Nagkarga sa mga leksiyon …"
|
||||
},
|
||||
"vocabLessonMarkComplete": {
|
||||
"divider": "Ayuhon ang pag-uswag (dili paghimo og peke nga resulta sa ehersisyo)",
|
||||
"throughLabel": "Tanang leksiyon hangtod sa numero (lakip)",
|
||||
"hint": "I-mark ang kulang o abli nga mga row nga nahuman, lakip ang target score ug unang review wave. Ang nahuman na dili usbon.",
|
||||
"submit": "I-mark nga nahuman hangtod dinhi",
|
||||
"confirmTitle": "I-mark ang mga leksiyon nga nahuman",
|
||||
"confirm": "I-mark nga nahuman ang tanang leksiyon nga numero ≤ {n} ni {username} niining kurso?",
|
||||
"success": "{marked} ka leksiyon nga bag-ong gi-mark nga nahuman ({unchanged} klaro nang nahuman).",
|
||||
"successNone": "Walay pagbag-o: tanang leksiyon nga naapektuhan ({unchanged}) klaro nang nahuman.",
|
||||
"error": "Dili ma-mark nga nahuman."
|
||||
},
|
||||
"adultVerification": {
|
||||
"title": "[Admin] - Pag-aprub sa erotik",
|
||||
"intro": "Ang mga hamtong nga tiggamit makahimo og hangyo sa pag-abli sa erotik nga lugar. Dinhi masusi, ma-aprub o ma-balibaran ang mga hangyo.",
|
||||
"username": "User",
|
||||
"age": "Edad",
|
||||
"statusLabel": "Status",
|
||||
"requestLabel": "Prueba",
|
||||
"actions": "Mga aksyon",
|
||||
"approve": "Aprub",
|
||||
"reject": "Balibari",
|
||||
"resetPending": "Ibutang nga pending",
|
||||
"openDocument": "Ablihi ang dokumento",
|
||||
"previewTitle": "Preview sa prueba",
|
||||
"closePreview": "Isira ang preview",
|
||||
"previewUnavailable": "Walay inline preview niini nga matang sa file.",
|
||||
"documentMissing": "Wala makit-i ang verification file sa server.",
|
||||
"empty": "Walay angay nga hangyo.",
|
||||
"loadError": "Dili makarga ang mga pag-aprub.",
|
||||
"updateError": "Dili ma-update ang status.",
|
||||
"documentError": "Dili maablihi ang dokumento.",
|
||||
"filters": {
|
||||
"pending": "Pending",
|
||||
"approved": "Na-aprub",
|
||||
"rejected": "Gibalibaran",
|
||||
"all": "Tanan"
|
||||
},
|
||||
"status": {
|
||||
"none": "Wala mangayo",
|
||||
"pending": "Pending",
|
||||
"approved": "Na-aprub",
|
||||
"rejected": "Gibalibaran"
|
||||
},
|
||||
"messages": {
|
||||
"approved": "Gi-aprub na.",
|
||||
"rejected": "Gibalibaran ang pag-aprub.",
|
||||
"pending": "Gi-ibalik sa pending ang hangyo."
|
||||
}
|
||||
},
|
||||
"eroticModeration": {
|
||||
"title": "[Admin] - Moderasyon sa erotik",
|
||||
"intro": "Ang gi-report nga erotik nga mga hulagway ug video masusi dinhi, matago, matangtang, o i-escalate batok sa account.",
|
||||
"empty": "Walay angay nga report.",
|
||||
"loadError": "Dili makarga ang mga report.",
|
||||
"actionError": "Dili matuman ang aksyon sa moderation.",
|
||||
"actionSuccess": "Nasave na ang aksyon sa moderation.",
|
||||
"target": "Target",
|
||||
"owner": "Tag-iya",
|
||||
"reporter": "Nag-report",
|
||||
"reason": "Rason",
|
||||
"statusLabel": "Status",
|
||||
"meta": "Oras / aksyon",
|
||||
"actions": "Mga aksyon",
|
||||
"image": "Hulagway",
|
||||
"video": "Video",
|
||||
"hidden": "Gitago",
|
||||
"preview": "Preview",
|
||||
"previewError": "Dili makarga ang preview.",
|
||||
"dismiss": "Isalikway",
|
||||
"hide": "Itago",
|
||||
"restore": "Ibalik",
|
||||
"delete": "Tangtanga",
|
||||
"blockUploads": "I-block ang mga upload",
|
||||
"revokeAccess": "Kuhaa ang erotik access",
|
||||
"notePrompt": "Nota para niini nga aksyon sa moderation",
|
||||
"actionLabels": {
|
||||
"dismiss": "Gisalikway",
|
||||
"hide_content": "Gitago",
|
||||
"restore_content": "Gibalik",
|
||||
"delete_content": "Gitantang",
|
||||
"block_uploads": "Gi-block ang upload",
|
||||
"revoke_access": "Gikuha ang access"
|
||||
},
|
||||
"filters": {
|
||||
"open": "Abli",
|
||||
"actioned": "Naaksyonan",
|
||||
"dismissed": "Gisalikway",
|
||||
"all": "Tanan"
|
||||
},
|
||||
"status": {
|
||||
"open": "Abli",
|
||||
"actioned": "Naaksyonan",
|
||||
"dismissed": "Gisalikway"
|
||||
}
|
||||
},
|
||||
"rights": {
|
||||
"add": "Idugang ang katungod",
|
||||
"select": "Palihog pagpili",
|
||||
"current": "Karon nga mga katungod"
|
||||
},
|
||||
"forum": {
|
||||
"title": "[Admin] - Forum",
|
||||
"currentForums": "Anaa nang mga forum",
|
||||
"edit": "Usba",
|
||||
"delete": "Tangtanga",
|
||||
"createForum": "Paghimo",
|
||||
"forumName": "Titulo",
|
||||
"create": "Paghimo",
|
||||
"permissions": {
|
||||
"label": "Permiso",
|
||||
"all": "Tanan",
|
||||
"admin": "Admin lamang",
|
||||
"teammember": "Miyembro sa team lamang",
|
||||
"user": "Piniling user lamang",
|
||||
"age": "Edad 14+ lamang"
|
||||
},
|
||||
"selectPermissions": "Palihog pagpili",
|
||||
"confirmDeleteMessage": "Tinuod nga gusto nimong tangtangon kini nga forum?",
|
||||
"confirmDeleteTitle": "Tangtanga ang forum"
|
||||
},
|
||||
"match3": {
|
||||
"title": "Pagdumala sa Match3 nga mga level",
|
||||
"newLevel": "Paghimo og bag-ong level",
|
||||
"editLevel": "Usba ang level",
|
||||
"deleteLevel": "Tangtanga ang level",
|
||||
"confirmDelete": "Tinuod nga gusto nimong tangtangon kini nga level?",
|
||||
"levelName": "Ngalan",
|
||||
"levelDescription": "Deskripsiyon",
|
||||
"boardWidth": "Lapad",
|
||||
"boardHeight": "Taas",
|
||||
"moveLimit": "Limit sa lihok",
|
||||
"levelOrder": "Order",
|
||||
"boardLayout": "Layout sa board",
|
||||
"tileTypes": "Anaa nga matang sa tile",
|
||||
"actions": "Mga aksyon",
|
||||
"edit": "Usba",
|
||||
"delete": "Tangtanga",
|
||||
"save": "I-save",
|
||||
"cancel": "Kanselahon",
|
||||
"update": "I-update",
|
||||
"create": "Paghimo",
|
||||
"boardControls": {
|
||||
"fillAll": "I-activate tanan",
|
||||
"clearAll": "I-deactivate tanan",
|
||||
"invert": "Baliktad"
|
||||
},
|
||||
"loading": "Nagkarga sa mga level …",
|
||||
"retry": "Suwayi pag-usab",
|
||||
"availableLevels": "Anaa nga mga level: {count}",
|
||||
"levelFormat": "Level {number}: {name}",
|
||||
"levelObjectives": "Mga tumong sa level",
|
||||
"objectivesTitle": "Kondisyon sa kadaogan",
|
||||
"addObjective": "Idugang ang tumong",
|
||||
"removeObjective": "Kuhaa",
|
||||
"objectiveType": "Matang",
|
||||
"objectiveTypeScore": "Mangolekta og score",
|
||||
"objectiveTypeMatches": "Paghimog match",
|
||||
"objectiveTypeMoves": "Gamita ang mga lihok",
|
||||
"objectiveTypeTime": "Hupti ang oras",
|
||||
"objectiveTypeSpecial": "Espesyal nga tumong",
|
||||
"objectiveOperator": "Operator",
|
||||
"operatorGreaterEqual": "Mas dako o pareho (≥)",
|
||||
"operatorLessEqual": "Mas gamay o pareho (≤)",
|
||||
"operatorEqual": "Pareho (=)",
|
||||
"operatorGreater": "Mas dako kay (>)",
|
||||
"operatorLess": "Mas gamay kay (<)",
|
||||
"objectiveTarget": "Target nga bili",
|
||||
"objectiveTargetPlaceholder": "pananglitan 100",
|
||||
"objectiveOrder": "Order",
|
||||
"objectiveOrderPlaceholder": "1, 2, 3 …",
|
||||
"objectiveDescription": "Deskripsiyon",
|
||||
"objectiveDescriptionPlaceholder": "pananglitan mangolekta og 100 puntos",
|
||||
"objectiveRequired": "Gikinahanglan aron mahuman ang level",
|
||||
"noObjectives": "Walay kondisyon sa kadaogan. I-klik ang «Idugang ang tumong»."
|
||||
},
|
||||
"falukant": {
|
||||
"edituser": {
|
||||
"title": "Usba ang Falukant user",
|
||||
"username": "Ngalan sa user",
|
||||
"characterName": "Ngalan sa karakter",
|
||||
"user": "User",
|
||||
"success": "Nasave na ang mga kausaban.",
|
||||
"error": "Dili masave ang mga kausaban.",
|
||||
"errorLoadingBranches": "Sayop sa pagkarga sa mga sangang opisina.",
|
||||
"errorUpdatingStock": "Sayop sa pag-update sa bodega.",
|
||||
"stockUpdated": "Malampuson nga na-update ang bodega.",
|
||||
"search": "Pangita",
|
||||
"tabs": {
|
||||
"userdata": "Datos sa user",
|
||||
"branches": "Mga sangang opisina"
|
||||
},
|
||||
"branches": {
|
||||
"title": "Mga sangang opisina ug bodega",
|
||||
"noStocks": "Walay bodega",
|
||||
"noBranches": "Walay nakit-an nga sangang opisina",
|
||||
"addStock": "Idugang ang bodega",
|
||||
"stockType": "Matang sa bodega",
|
||||
"selectStockType": "Pilia ang matang sa bodega",
|
||||
"quantity": "Kantidad",
|
||||
"allStocksAdded": "Anaa na ang tanang matang sa bodega"
|
||||
},
|
||||
"errorLoadingStockTypes": "Sayop sa pagkarga sa mga matang sa bodega.",
|
||||
"errorAddingStock": "Sayop sa pagdugang sa bodega.",
|
||||
"stockAdded": "Malampuson nga nadugang ang bodega.",
|
||||
"invalidStockData": "Palihog sulodi ang balido nga matang ug kantidad.",
|
||||
"pregnancy": {
|
||||
"title": "Pagmabdus (admin)",
|
||||
"characterId": "ID sa karakter",
|
||||
"status": "Status",
|
||||
"statusActive": "Nagpaabot hangtod",
|
||||
"statusNone": "Dili mabdus",
|
||||
"fatherId": "ID sa amahan nga karakter (opsyonal)",
|
||||
"fatherSelect": "Amahan (asawa / nobyo / uyab)",
|
||||
"fatherNone": "— walay natipig nga amahan —",
|
||||
"fatherHintList": "Gikan sa relasyon niini nga karakter (kaminyoon, engagement, aktibong uyab).",
|
||||
"fatherHintManual": "Walay angay nga partner sa database: isulod ang ID sa amahan nga karakter.",
|
||||
"fatherManualPlaceholder": "ID sa karakter",
|
||||
"dueDays": "Mga adlaw hangtod sa due date",
|
||||
"dueDaysHint": "0 = due karon (mahimong mosunod ang pagkatawo depende sa lohika sa dula).",
|
||||
"force": "Ibutang ang pagmabdus",
|
||||
"clear": "Tangtanga ang pagmabdus",
|
||||
"successForce": "Na-set na ang pagmabdus.",
|
||||
"successClear": "Natangtang na ang pagmabdus.",
|
||||
"error": "Napakyas ang aksyon.",
|
||||
"relationship": {
|
||||
"married": "Asawa",
|
||||
"engaged": "Nobyo/nobya",
|
||||
"lover": "Uyab"
|
||||
}
|
||||
},
|
||||
"birth": {
|
||||
"title": "Pugson ang pagkatawo (admin)",
|
||||
"motherHint": "Ang karakter sa ibabaw gamiton isip inahan.",
|
||||
"fatherId": "ID sa amahan nga karakter",
|
||||
"fatherSelect": "Amahan (asawa / nobyo / uyab)",
|
||||
"fatherChoose": "— pilia ang amahan —",
|
||||
"fatherHintList": "Gikan sa relasyon niini nga karakter.",
|
||||
"fatherHintManual": "Walay partner sa lista: isulod ang ID sa amahan.",
|
||||
"fatherRequired": "Palihog pilia ang amahan o isulod ang ID sa karakter.",
|
||||
"context": "Konteksto",
|
||||
"contextMarriage": "Kaminyoon",
|
||||
"contextLover": "Uyab",
|
||||
"legitimacy": "Legitimidad",
|
||||
"legitimate": "Legitimo",
|
||||
"ackBastard": "Giila nga bastardo",
|
||||
"hiddenBastard": "Tago nga bastardo",
|
||||
"gender": "Sekso sa bata",
|
||||
"genderRandom": "Random",
|
||||
"male": "Lalaki",
|
||||
"female": "Babaye",
|
||||
"force": "Pugson ang pagkatawo",
|
||||
"success": "Nahimo ang bata (bautismo pending).",
|
||||
"error": "Dili mapugos ang pagkatawo."
|
||||
}
|
||||
},
|
||||
"createNPC": {
|
||||
"title": "Paghimo og mga NPC",
|
||||
"region": "Lungsod",
|
||||
"allRegions": "Tanan nga lungsod",
|
||||
"ageRange": "Sakup sa edad",
|
||||
"to": "hangtod",
|
||||
"years": "ka tuig",
|
||||
"titleRange": "Sakup sa titulo",
|
||||
"count": "Isip kada kombinasyon lungsod–titulo",
|
||||
"countHelp": "Kini nga isip himoon sa matag kombinasyon sa napiling lungsod ug titulo.",
|
||||
"create": "Paghimo og mga NPC",
|
||||
"creating": "Naghimo …",
|
||||
"result": "Resulta",
|
||||
"createdCount": "{count} ka NPC ang nahimo.",
|
||||
"combinationInfo": "{perCombination} ka NPC matag kombinasyon × {combinations} ka kombinasyon = {count} ka NPC tanan",
|
||||
"age": "Edad",
|
||||
"errorLoadingRegions": "Sayop sa pagkarga sa mga lungsod.",
|
||||
"errorLoadingTitles": "Sayop sa pagkarga sa mga titulo.",
|
||||
"errorCreating": "Sayop sa paghimo sa mga NPC.",
|
||||
"invalidAgeRange": "Dili balido nga sakup sa edad.",
|
||||
"invalidTitleRange": "Dili balido nga sakup sa titulo.",
|
||||
"invalidCount": "Dili balido nga isip (1–500).",
|
||||
"progress": "Progreso",
|
||||
"progressDetails": "{current} sa {total} ka NPC ang nahimo",
|
||||
"timeRemainingSeconds": "Nahibilin nga oras: {seconds} ka segundo",
|
||||
"timeRemainingMinutes": "Nahibilin nga oras: {minutes} ka minuto {seconds} ka segundo",
|
||||
"almostDone": "Hapit na …",
|
||||
"jobNotFound": "Wala makit-i ang trabaho o na-expire na."
|
||||
}
|
||||
},
|
||||
"chatrooms": {
|
||||
"title": "[Admin] - Pagdumala sa chat room",
|
||||
"roomName": "Ngalan sa room",
|
||||
"create": "Paghimo og chat room",
|
||||
"edit": "Usba ang chat room",
|
||||
"type": "Matang",
|
||||
"isPublic": "Makita sa publiko",
|
||||
"isAdultOnly": "Erotik nga lugar lamang",
|
||||
"actions": "Mga aksyon",
|
||||
"genderRestriction": {
|
||||
"show": "Tugoti ang limit sa sekso",
|
||||
"label": "Limit sa sekso"
|
||||
},
|
||||
"minAge": {
|
||||
"show": "Butangi ang minimum nga edad",
|
||||
"label": "Minimum nga edad"
|
||||
},
|
||||
"maxAge": {
|
||||
"show": "Butangi ang maximum nga edad",
|
||||
"label": "Maximum nga edad"
|
||||
},
|
||||
"password": {
|
||||
"show": "Tugoti ang proteksyon sa password",
|
||||
"label": "Password"
|
||||
},
|
||||
"friendsOfOwnerOnly": "Mga higala sa tag-iya lamang",
|
||||
"requiredUserRight": {
|
||||
"show": "Butangi ang gikinahanglan nga katungod sa user",
|
||||
"label": "Gikinahanglan nga katungod sa user"
|
||||
},
|
||||
"roomtype": {
|
||||
"chat": "Chat",
|
||||
"dice": "Dado",
|
||||
"poker": "Poker",
|
||||
"hangman": "Hangman"
|
||||
},
|
||||
"rights": {
|
||||
"talk": "Makistorya",
|
||||
"scream": "Mosinggit",
|
||||
"whisper": "Whisper",
|
||||
"start game": "Sugdi ang dula",
|
||||
"open room": "Ablihi ang room",
|
||||
"systemmessage": "Mensahe sa sistema"
|
||||
},
|
||||
"confirmDelete": "Tinuod nga gusto nimong tangtangon kini nga chat room?"
|
||||
},
|
||||
"userStatistics": {
|
||||
"title": "[Admin] - Estadistika sa user",
|
||||
"totalUsers": "Tanan nga mga user",
|
||||
"genderDistribution": "Distribusyon sa sekso",
|
||||
"ageDistribution": "Distribusyon sa edad"
|
||||
},
|
||||
"taxiTools": {
|
||||
"title": "Mga himan sa taxi",
|
||||
"description": "Pagdumala sa mga mapa, level ug setting sa taxi",
|
||||
"mapEditor": {
|
||||
"title": "Usba ang mapa",
|
||||
"availableMaps": "Anaa nga mga mapa: {count}",
|
||||
"newMap": "Paghimo og bag-ong mapa",
|
||||
"mapFormat": "{name} (Posisyon: {x},{y})",
|
||||
"mapName": "Ngalan sa mapa",
|
||||
"mapDescription": "Deskripsiyon",
|
||||
"mapWidth": "Lapad",
|
||||
"mapHeight": "Taas",
|
||||
"tileSize": "Sukod sa tile",
|
||||
"positionX": "Posisyon X",
|
||||
"positionY": "Posisyon Y",
|
||||
"mapType": "Matang sa mapa",
|
||||
"mapLayout": "Layout sa mapa",
|
||||
"tilePalette": "Palette sa tile",
|
||||
"streetNames": "Ngalan sa dalan",
|
||||
"extraElements": "Dugang nga elemento",
|
||||
"streetNameHorizontal": "Ngalan sa dalan (pahigda)",
|
||||
"streetNameVertical": "Ngalan sa dalan (patindog)",
|
||||
"continueHorizontal": "Padayon sa laing direksiyon (→)",
|
||||
"continueVertical": "Padayon sa laing direksiyon (↓)",
|
||||
"continueOther": "Padayon sa laing direksiyon",
|
||||
"position": "Posisyon",
|
||||
"fillAllRoads": "Tanan nga dalan",
|
||||
"clearAll": "Hawani tanan",
|
||||
"generateRandom": "Himoa nga random",
|
||||
"delete": "Tangtanga",
|
||||
"update": "I-update",
|
||||
"cancel": "Kanselahon",
|
||||
"create": "Paghimo",
|
||||
"createSuccess": "Malampuson nga nahimo ang mapa!",
|
||||
"updateSuccess": "Malampuson nga na-update ang mapa!",
|
||||
"deleteSuccess": "Malampuson nga natangtang ang mapa!"
|
||||
}
|
||||
},
|
||||
"servicesStatus": {
|
||||
"title": "Status sa serbisyo",
|
||||
"description": "Tan-awa ang status sa Backend, Chat ug Daemon",
|
||||
"status": {
|
||||
"connected": "Na-connect",
|
||||
"connecting": "Nag-connect …",
|
||||
"disconnected": "Wala na-connect",
|
||||
"error": "Sayop",
|
||||
"unknown": "Wala mailhi"
|
||||
},
|
||||
"backend": {
|
||||
"title": "Backend",
|
||||
"connected": "Naabot ang backend service ug na-connect"
|
||||
},
|
||||
"chat": {
|
||||
"title": "Chat",
|
||||
"connected": "Naabot ang chat service ug na-connect"
|
||||
},
|
||||
"daemon": {
|
||||
"title": "Daemon",
|
||||
"connected": "Naabot ang daemon service ug na-connect",
|
||||
"connections": {
|
||||
"title": "Aktibong mga koneksiyon",
|
||||
"none": "Walay aktibong koneksiyon",
|
||||
"userId": "ID sa user",
|
||||
"username": "Ngalan sa user",
|
||||
"connections": "mga koneksiyon",
|
||||
"duration": "Gidugayon sa koneksiyon",
|
||||
"lastPong": "Panahon sukad sa kataposang pong",
|
||||
"pingTimeouts": "Mga timeout sa ping",
|
||||
"pongReceived": "Nadawat ang pong",
|
||||
"yes": "Oo",
|
||||
"no": "Dili",
|
||||
"notConnected": "Wala na-connect ang daemon",
|
||||
"sendError": "Sayop sa pagpadala sa hangyo",
|
||||
"error": "Sayop sa pagkuha sa mga koneksiyon"
|
||||
},
|
||||
"websocketLog": {
|
||||
"title": "Log sa WebSocket",
|
||||
"showLog": "Ipakita ang WebSocket log",
|
||||
"refresh": "I-refresh",
|
||||
"loading": "Nagkarga …",
|
||||
"close": "Isira",
|
||||
"entryCount": "{count} ka entry",
|
||||
"noEntries": "Walay entry sa log",
|
||||
"notConnected": "Wala na-connect ang daemon",
|
||||
"sendError": "Sayop sa pagpadala sa hangyo",
|
||||
"parseError": "Sayop sa pag-parse sa tubag",
|
||||
"timestamp": "Timestamp",
|
||||
"direction": "Direksiyon",
|
||||
"peer": "Peer",
|
||||
"connUser": "User sa koneksiyon",
|
||||
"targetUser": "Target nga user",
|
||||
"event": "Hitabo"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -15,7 +15,18 @@
|
||||
"error-title": "Sayop",
|
||||
"warning-title": "Pasidaan",
|
||||
"info-title": "Impormasyon",
|
||||
"dialog": {
|
||||
"contact": {
|
||||
"email": "Adres sa email",
|
||||
"name": "Pangalan",
|
||||
"message": "Imong mensahe kanamo",
|
||||
"accept": "Ang imong email address temporaryong matipigan sa among sistema. Human masusi ang imong hangyo, matangtang na usab ang email.",
|
||||
"acceptdatasave": "Mituyo ko sa temporaryong pagtipig sa akong email address.",
|
||||
"accept2": "Kung wala niini, dili mi makatubag kanimo."
|
||||
}
|
||||
},
|
||||
"general": {
|
||||
"datetimelong": "dd.MM.yyyy HH:mm:ss",
|
||||
"loading": "Nagkarga...",
|
||||
"back": "Balik",
|
||||
"cancel": "Kanselahon",
|
||||
|
||||
@@ -3,16 +3,135 @@
|
||||
"personal": {
|
||||
"title": "Personal nga datos",
|
||||
"label": {
|
||||
"language": "Pinulongan"
|
||||
"language": "Pinulongan",
|
||||
"birthdate": "Petsa sa pagkatawo",
|
||||
"gender": "Sekso",
|
||||
"town": "Lungsod",
|
||||
"zip": "ZIP",
|
||||
"eyecolor": "Kolor sa mata",
|
||||
"haircolor": "Kolor sa buhok",
|
||||
"hairlength": "Taas sa buhok",
|
||||
"skincolor": "Kolor sa panit",
|
||||
"freckles": "Mga batik",
|
||||
"weight": "Timbang",
|
||||
"bodyheight": "Gitas-on",
|
||||
"piercings": "Mga piercing",
|
||||
"tattoos": "Mga tattoo",
|
||||
"sexualpreference": "Oryentasyon",
|
||||
"pubichair": "Buhok sa pribado",
|
||||
"penislength": "Taas sa penis",
|
||||
"brasize": "Sukod sa bra",
|
||||
"willChildren": "Gusto og anak",
|
||||
"smokes": "Pagpanigarilyo",
|
||||
"drinks": "Pag-inom og alkohol",
|
||||
"hasChildren": "Naay mga anak",
|
||||
"interestedInGender": "Interesado sa"
|
||||
},
|
||||
"tooltip": {
|
||||
"language": "Pinulongan"
|
||||
"language": "Pinulongan",
|
||||
"birthdate": "Petsa sa pagkatawo",
|
||||
"gender": "Sekso",
|
||||
"town": "Lungsod",
|
||||
"zip": "ZIP",
|
||||
"eyecolor": "Kolor sa mata",
|
||||
"haircolor": "Kolor sa buhok",
|
||||
"hairlength": "Taas sa buhok",
|
||||
"skincolor": "Kolor sa panit",
|
||||
"freckles": "Mga batik",
|
||||
"weight": "Timbang",
|
||||
"bodyheight": "Gitas-on",
|
||||
"piercings": "Mga piercing",
|
||||
"tattoos": "Mga tattoo",
|
||||
"sexualpreference": "Oryentasyon",
|
||||
"pubichair": "Buhok sa pribado",
|
||||
"penislength": "Taas sa penis",
|
||||
"brasize": "Sukod sa bra"
|
||||
},
|
||||
"gender": {
|
||||
"male": "Lalaki",
|
||||
"female": "Babaye",
|
||||
"transmale": "Trans nga babaye",
|
||||
"transfemale": "Trans nga lalaki",
|
||||
"nonbinary": "Dili binaryo"
|
||||
},
|
||||
"language": {
|
||||
"de": "Aleman",
|
||||
"en": "Iningles",
|
||||
"ceb": "Bisaya",
|
||||
"es": "Espanyol"
|
||||
},
|
||||
"eyecolor": {
|
||||
"blue": "Asul",
|
||||
"green": "Berde",
|
||||
"brown": "Brown",
|
||||
"black": "Itom",
|
||||
"grey": "Abohon",
|
||||
"hazel": "Hazel",
|
||||
"amber": "Amber",
|
||||
"red": "Pula",
|
||||
"other": "Uban"
|
||||
},
|
||||
"haircolor": {
|
||||
"black": "Itom",
|
||||
"brown": "Brown",
|
||||
"blonde": "Blonde",
|
||||
"red": "Pula",
|
||||
"grey": "Abohon",
|
||||
"white": "Puti",
|
||||
"other": "Uban"
|
||||
},
|
||||
"hairlength": {
|
||||
"short": "Mubo",
|
||||
"medium": "Tunga-tunga",
|
||||
"long": "Taas",
|
||||
"bald": "Kalbo",
|
||||
"other": "Uban"
|
||||
},
|
||||
"skincolor": {
|
||||
"light": "Klaro",
|
||||
"medium": "Tunga-tunga",
|
||||
"dark": "Itom",
|
||||
"other": "Uban"
|
||||
},
|
||||
"freckles": {
|
||||
"much": "Daghan",
|
||||
"medium": "Tunga-tunga",
|
||||
"less": "Ubos",
|
||||
"none": "Wala"
|
||||
},
|
||||
"sexualpreference": {
|
||||
"straight": "Heterosexual",
|
||||
"gay": "Homosexual",
|
||||
"bi": "Bisexual",
|
||||
"asexual": "Asexual",
|
||||
"pan": "Pansexual"
|
||||
},
|
||||
"pubichair": {
|
||||
"none": "Wala",
|
||||
"short": "Mubo",
|
||||
"medium": "Tunga-tunga",
|
||||
"long": "Taas",
|
||||
"hairy": "Natural",
|
||||
"waxed": "Wax",
|
||||
"landingstrip": "Landing strip",
|
||||
"bikinizone": "Zona sa bikini lamang",
|
||||
"other": "Uban"
|
||||
},
|
||||
"interestedInGender": {
|
||||
"male": "Mga lalaki",
|
||||
"female": "Mga babaye"
|
||||
},
|
||||
"smokes": {
|
||||
"often": "Kanunay",
|
||||
"socially": "Kung kauban",
|
||||
"daily": "Adlaw-adlaw",
|
||||
"never": "Dili gayud"
|
||||
},
|
||||
"drinks": {
|
||||
"often": "Kanunay",
|
||||
"socially": "Kung kauban",
|
||||
"daily": "Adlaw-adlaw",
|
||||
"never": "Dili gayud"
|
||||
}
|
||||
},
|
||||
"view": {
|
||||
@@ -25,11 +144,12 @@
|
||||
"title": "Account",
|
||||
"heroEyebrow": "Mga setting",
|
||||
"heroIntro": "Atimana ang ngalan sa user, email, password ug visibility sa usa ka lugar.",
|
||||
"language": "Pinulongan",
|
||||
"username": "Ngalan sa user",
|
||||
"email": "E-mail address",
|
||||
"newpassword": "Password",
|
||||
"newpasswordretype": "Usba ang password",
|
||||
"deleteAccount": "Tangtanga ang account",
|
||||
"language": "Pinulongan",
|
||||
"showinsearch": "Ipakita sa pagpangita sa user",
|
||||
"changeaction": "Usba ang datos sa user",
|
||||
"oldpassword": "Karaan nga password (gikinahanglan)",
|
||||
@@ -41,19 +161,88 @@
|
||||
"feedback": {
|
||||
"saved": "Malampuson nga nasave ang account settings.",
|
||||
"saveError": "Adunay sayop sa pagsave sa account settings."
|
||||
},
|
||||
"adultAccessTitle": "Erotik nga lugar",
|
||||
"adultAccessIntro": "Ang erotik nga lugar para lamang sa hamtong nga mga tiggamit ug gikinahanglan usab og pag-aprub sa moderator.",
|
||||
"requestAdultVerification": "Mangayo og pag-abli",
|
||||
"requestAdultVerificationSuccess": "Napadala na ang hangyo sa pag-abli.",
|
||||
"requestAdultVerificationError": "Dili mapadala ang hangyo sa pag-abli.",
|
||||
"adultStatus": {
|
||||
"ineligible": {
|
||||
"title": "Dili available",
|
||||
"body": "Ang erotik nga lugar makita lamang sa hamtong nga mga tiggamit."
|
||||
},
|
||||
"none": {
|
||||
"title": "Wala pa ma-abli",
|
||||
"body": "Makita ang lugar, pero naka-lock pa hangtod sa pag-susi sa moderator."
|
||||
},
|
||||
"pending": {
|
||||
"title": "Naghuwat sa pagsusi",
|
||||
"body": "Ang imong hangyo naghuwat sa moderation. Naka-lock pa ang lugar hangtod ma-aprub."
|
||||
},
|
||||
"approved": {
|
||||
"title": "Na-abli na",
|
||||
"body": "Ang erotik nga lugar na-abli na para sa imong account."
|
||||
},
|
||||
"rejected": {
|
||||
"title": "Gibalibaran ang pag-abli",
|
||||
"body": "Ang kataposang hangyo wala ma-aprub. Mahimo kang magpadala og bag-ong hangyo."
|
||||
}
|
||||
}
|
||||
},
|
||||
"flirt": {
|
||||
"title": "Flirt"
|
||||
"languageAssistant": {
|
||||
"eyebrow": "Mga setting",
|
||||
"title": "Katabang sa pinulongan ug AI",
|
||||
"intro": "Dinhi makatipig ka og kaugalingong API access (pananglitan OpenAI) nga magamit sa plataporma para sa mga bahin sa kurso sa pinulongan. Ang yabi gisave nga encrypted sa server; kinahanglan nimo og account sa provider.",
|
||||
"linkSignup": "Paghimo og account sa OpenAI (bag-ong bintana)",
|
||||
"linkApiKeys": "Pagdumala sa API keys sa OpenAI (bag-ong bintana)",
|
||||
"enabled": "Tugoti ang paggamit para sa mga bahin sa pinulongan",
|
||||
"baseUrl": "API base URL (opsyonal)",
|
||||
"baseUrlPlaceholder": "Walay sulod = default (OpenAI). Para sa Ollama pananglitan http://127.0.0.1:11434/v1",
|
||||
"model": "Ngalan sa modelo",
|
||||
"apiKey": "API key",
|
||||
"apiKeyHint": "Biyai nga walay sulod aron mapadayon ang natipig nga yabi.",
|
||||
"apiKeyPlaceholderNew": "I-paste ang bag-ong yabi",
|
||||
"apiKeyPlaceholderHasKey": "Ang natipig nagtapos sa …{last4} — walay sulod = padayon",
|
||||
"apiKeyPlaceholderClear": "Ma-clear ang tipigan kung mag-save ka nga “tangtanga ang yabi” sa ubos",
|
||||
"clearKey": "Tangtanga ang natipig nga API key",
|
||||
"save": "I-save",
|
||||
"saved": "Nasave na ang mga setting.",
|
||||
"saveError": "Dili masave.",
|
||||
"confirmClear": "Tinuod nga tangtangon ang API key?",
|
||||
"keyStatusStored": "Naa ang API key nga natipig.",
|
||||
"keyStatusInvalid": "Naa ang natipig nga API key pero dili mabasa. Palihog i-save pag-usab.",
|
||||
"keyStatusMissing": "Walay natipig nga API key karon."
|
||||
},
|
||||
"interests": {
|
||||
"title": "Mga interes",
|
||||
"new": "Bag-ong interes",
|
||||
"add": "Idugang"
|
||||
"add": "Idugang",
|
||||
"added": "Ang bag-ong interes gidugang na ug gisusi pa. Dili pa makita sa lista hangtod mahuman.",
|
||||
"adderror": "Sayop sa pagdugang sa interes.",
|
||||
"errorsetinterest": "Dili ma-book ang interes para nimo."
|
||||
},
|
||||
"visibility": {
|
||||
"Invisible": "Ayaw ipakita",
|
||||
"OnlyFriends": "Mga higala lamang",
|
||||
"FriendsAndAdults": "Mga higala ug mga hamtong",
|
||||
"AdultsOnly": "Mga hamtong lamang",
|
||||
"All": "Ipakita sa tanan"
|
||||
},
|
||||
"feedback": {
|
||||
"updateError": "Dili masave ang kausaban.",
|
||||
"visibilityUpdateError": "Dili ma-update ang visibility."
|
||||
},
|
||||
"flirt": {
|
||||
"title": "Flirt"
|
||||
},
|
||||
"immutable": {
|
||||
"tooltip": "Kini nga field dili mausab. Para sa kausaban, kontaka ang support.",
|
||||
"supportContact": "Kontaka ang support",
|
||||
"supportMessage": {
|
||||
"general": "Hello,\n\ngusto nako mangayo og kausaban sa akong profile nga dili mausab.\n\nPalihog kontaka ko para sa dugang detalye.\n\nSalamat",
|
||||
"specific": "Hello,\n\ngusto nako mangayo og kausaban niini nga dili mausab nga datos sa profile: {fields}\n\nPalihog kontaka ko para sa dugang detalye.\n\nSalamat"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,11 +1,61 @@
|
||||
{
|
||||
"blog": {
|
||||
"blog": {
|
||||
"posts": "Publicaciones",
|
||||
"noPosts": "No hay publicaciones.",
|
||||
"newPost": "Escribir nueva publicación",
|
||||
"title": "Blog",
|
||||
"title": "Título",
|
||||
"publish": "Publicar",
|
||||
"pickImage": "Seleccionar imagen",
|
||||
"uploadImage": "Subir imagen"
|
||||
"uploadImage": "Subir imagen",
|
||||
"list": {
|
||||
"eyebrow": "Blogs de la comunidad",
|
||||
"title": "Blogs",
|
||||
"intro": "Artículos, avances de proyectos y miradas personales de la comunidad YourPart.",
|
||||
"create": "Crear nuevo blog",
|
||||
"loading": "Cargando…",
|
||||
"empty": "No se han encontrado blogs.",
|
||||
"by": "por",
|
||||
"unknownAuthor": "Desconocido",
|
||||
"open": "Ir al blog",
|
||||
"fallbackExcerpt": "Entradas públicas, ideas y avances de proyectos de la comunidad."
|
||||
},
|
||||
"view": {
|
||||
"loading": "Cargando…",
|
||||
"edit": "Editar",
|
||||
"entriesCount": "{count} entradas",
|
||||
"empty": "No hay entradas.",
|
||||
"fallbackDescription": "Blog público de la comunidad en YourPart.",
|
||||
"notFoundTitle": "Blog no encontrado | YourPart",
|
||||
"notFoundDescription": "No se pudo cargar el blog solicitado."
|
||||
},
|
||||
"editor": {
|
||||
"createTitle": "Crear blog",
|
||||
"editTitle": "Editar blog",
|
||||
"description": "Descripción",
|
||||
"visibility": "Visibilidad",
|
||||
"visibilityPublic": "Público",
|
||||
"visibilityLoggedIn": "Solo usuarios con sesión iniciada",
|
||||
"ageRange": "Rango de edad",
|
||||
"gender": "Género",
|
||||
"genderMale": "Masculino",
|
||||
"genderFemale": "Femenino",
|
||||
"save": "Guardar",
|
||||
"newPostTitle": "Nueva entrada",
|
||||
"addPost": "Añadir entrada",
|
||||
"shareTitle": "Compartir blog",
|
||||
"url": "URL",
|
||||
"copyLink": "Copiar enlace",
|
||||
"shareToFriends": "Enviar a amigos",
|
||||
"emailAddresses": "Direcciones de correo (separadas por comas)",
|
||||
"send": "Enviar",
|
||||
"restrictedHint": "Nota: este blog no es público. Los destinatarios pueden necesitar iniciar sesión y permisos de edad/género adecuados.",
|
||||
"invalidAgeRange": "Rango de edad no válido",
|
||||
"copySuccess": "Enlace copiado",
|
||||
"copyError": "No se pudo copiar",
|
||||
"shareError": "Error al compartir",
|
||||
"emailError": "Error al enviar el correo",
|
||||
"friendsSent": "Enviado a {count} amigo(s).",
|
||||
"emailsSent": "{count} correo(s) enviado(s)."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,6 +37,9 @@
|
||||
},
|
||||
"notifications": {
|
||||
"notify_election_created": "Se ha convocado una nueva elección.",
|
||||
"director_death": "{characterName} ha fallecido a la edad de {ageYears} años. Como empleador debes nombrar un nuevo director.{regionLabel}{spouses}{children}{lovers}",
|
||||
"relationship_death": "{characterName} ha fallecido a la edad de {ageYears} años.{regionLabel}{spouses}{children}{lovers}",
|
||||
"child_death": "Tu hijo/a {characterName} ha fallecido a la edad de {ageYears} años.{regionLabel}",
|
||||
"production": {
|
||||
"overproduction": "Sobreproducción: tu producción está un {value}% por encima de la demanda."
|
||||
},
|
||||
@@ -118,12 +121,22 @@
|
||||
},
|
||||
"overview": {
|
||||
"title": "Falukant - Resumen",
|
||||
"heroIntro": "Tu situación en economía, familia y patrimonio, de un vistazo.",
|
||||
"heirSelection": {
|
||||
"title": "Elección de heredero",
|
||||
"description": "Tu personaje anterior ya no está disponible. Elige un heredero de la lista para seguir jugando.",
|
||||
"loading": "Cargando posibles herederos…",
|
||||
"noHeirs": "No hay herederos disponibles.",
|
||||
"select": "Elegir como personaje",
|
||||
"error": "Error al elegir al heredero."
|
||||
},
|
||||
"metadata": {
|
||||
"title": "Datos personales",
|
||||
"name": "Nombre",
|
||||
"money": "Patrimonio",
|
||||
"age": "Edad",
|
||||
"years": "años",
|
||||
"days": "días",
|
||||
"mainbranch": "Ciudad natal",
|
||||
"nobleTitle": "Rango",
|
||||
"certificate": "Certificado"
|
||||
@@ -171,6 +184,16 @@
|
||||
"two_of": "Al menos dos condiciones de estatus"
|
||||
}
|
||||
},
|
||||
"summary": {
|
||||
"certificateHint": "Determina qué categorías de producto puedes fabricar ahora.",
|
||||
"branches": "Sucursales",
|
||||
"branchesHint": "Acceso directo a tus principales ubicaciones.",
|
||||
"productions": "Producciones activas",
|
||||
"productionsHint": "Producciones en curso que pronto requieren conclusión o control.",
|
||||
"stock": "Posiciones de almacén",
|
||||
"stockHint": "Vista resumida del inventario en todas las regiones.",
|
||||
"open": "Abrir"
|
||||
},
|
||||
"productions": {
|
||||
"title": "Producciones"
|
||||
},
|
||||
@@ -196,6 +219,8 @@
|
||||
"toddler": "niño pequeño",
|
||||
"child": "niño",
|
||||
"adolescence": "joven",
|
||||
"teen": "jovencito",
|
||||
"youngAdult": "joven adulto",
|
||||
"adult": "hombre",
|
||||
"mature": "señor",
|
||||
"elder": "anciano"
|
||||
@@ -205,6 +230,8 @@
|
||||
"toddler": "niña pequeña",
|
||||
"child": "niña",
|
||||
"adolescence": "joven",
|
||||
"teen": "jovencita",
|
||||
"youngAdult": "joven adulta",
|
||||
"adult": "mujer",
|
||||
"mature": "señora",
|
||||
"elder": "anciana"
|
||||
@@ -256,6 +283,8 @@
|
||||
},
|
||||
"branch": {
|
||||
"title": "Sucursal",
|
||||
"heroEyebrow": "Sucursal",
|
||||
"heroIntro": "Producción, almacén, venta y transporte en un panel ligado al mundo del juego.",
|
||||
"debtorsPrison": {
|
||||
"branchLocked": "En la prisión por deudas se bloquean los nuevos pasos económicos. Las sucursales cerradas o embargadas también se reflejarán aquí.",
|
||||
"branchRisk": "Tu mora pone en peligro sucursales, vehículos y mercancías almacenadas.",
|
||||
@@ -393,7 +422,10 @@
|
||||
"current": "Producciones en curso",
|
||||
"product": "Producto",
|
||||
"remainingTime": "Tiempo restante (segundos)",
|
||||
"noProductions": "No hay producciones en curso."
|
||||
"noProductions": "No hay producciones en curso.",
|
||||
"status": "Estado",
|
||||
"sleep": "En pausa",
|
||||
"active": "Activo"
|
||||
},
|
||||
"columns": {
|
||||
"city": "Ciudad",
|
||||
@@ -792,6 +824,23 @@
|
||||
"time": "Hora",
|
||||
"prev": "Anterior",
|
||||
"next": "Siguiente",
|
||||
"graph": {
|
||||
"open": "Mostrar evolución",
|
||||
"title": "Evolución del dinero",
|
||||
"close": "Cerrar",
|
||||
"loading": "Cargando historial…",
|
||||
"noData": "No hay movimientos en el periodo seleccionado.",
|
||||
"yesterday": "Ayer",
|
||||
"range": {
|
||||
"label": "Periodo",
|
||||
"today": "Hoy",
|
||||
"24h": "Últimas 24 horas",
|
||||
"week": "Última semana",
|
||||
"month": "Último mes",
|
||||
"year": "Último año",
|
||||
"all": "Todo el historial"
|
||||
}
|
||||
},
|
||||
"activities": {
|
||||
"Product sale": "Productos vendidos",
|
||||
"Production cost": "Costes de producción",
|
||||
@@ -882,7 +931,8 @@
|
||||
"apathetic": "Apático",
|
||||
"relieved": "Aliviado",
|
||||
"proud": "Orgulloso",
|
||||
"ashamed": "Avergonzado"
|
||||
"ashamed": "Avergonzado",
|
||||
"calm": "Tranquilo"
|
||||
},
|
||||
"character": {
|
||||
"brave": "Valiente",
|
||||
@@ -1027,7 +1077,34 @@
|
||||
"reputation": {
|
||||
"title": "Reputación",
|
||||
"overview": {
|
||||
"title": "Resumen"
|
||||
"title": "Resumen",
|
||||
"current": "Reputación actual"
|
||||
},
|
||||
"actions": {
|
||||
"title": "Acciones de reputación",
|
||||
"description": "Puedes realizar distintas acciones para mejorar tu reputación.",
|
||||
"none": "No hay acciones de reputación disponibles.",
|
||||
"action": "Acción",
|
||||
"cost": "Coste",
|
||||
"gain": "Ganancia",
|
||||
"timesUsed": "Usado",
|
||||
"execute": "Ejecutar",
|
||||
"running": "En curso…",
|
||||
"dailyLimit": "Límite diario: quedan {remaining} de {cap} acciones",
|
||||
"cooldown": "Enfriamiento: aún {minutes} minutos",
|
||||
"type": {
|
||||
"soup_kitchen": "Comedor social",
|
||||
"library_donation": "Donación a la biblioteca",
|
||||
"scholarships": "Becas",
|
||||
"church_hospice": "Hospicio eclesiástico",
|
||||
"school_funding": "Financiación escolar",
|
||||
"orphanage_build": "Construir orfanato",
|
||||
"bridge_build": "Construir puente",
|
||||
"hospital_donation": "Donación al hospital",
|
||||
"patronage": "Mecenazgo",
|
||||
"statue_build": "Erigir estatua",
|
||||
"well_build": "Construir pozo"
|
||||
}
|
||||
},
|
||||
"party": {
|
||||
"title": "Fiestas",
|
||||
@@ -1078,6 +1155,17 @@
|
||||
},
|
||||
"church": {
|
||||
"title": "Iglesia",
|
||||
"offices": {
|
||||
"lay-preacher": "Predicador laico",
|
||||
"village-priest": "Párroco del pueblo",
|
||||
"parish-priest": "Párroco",
|
||||
"dean": "Decano",
|
||||
"archdeacon": "Arcediano",
|
||||
"bishop": "Obispo",
|
||||
"archbishop": "Arzobispo",
|
||||
"cardinal": "Cardenal",
|
||||
"pope": "Papa"
|
||||
},
|
||||
"tabs": {
|
||||
"baptism": "Bautizos",
|
||||
"current": "Cargos actuales",
|
||||
@@ -1254,7 +1342,12 @@
|
||||
"drunkOfLife": "Elixir de la vida",
|
||||
"barber": "Barbero"
|
||||
},
|
||||
"choose": "Por favor, selecciona"
|
||||
"choose": "Por favor, selecciona",
|
||||
"errors": {
|
||||
"tooClose": "No puedes aplicar medidas tan a menudo.",
|
||||
"generic": "Se ha producido un error."
|
||||
},
|
||||
"nextMeasureAt": "Próxima medida a partir de"
|
||||
},
|
||||
"politics": {
|
||||
"title": "Política",
|
||||
@@ -1264,6 +1357,10 @@
|
||||
"upcoming": "Cargos pendientes de (re)elección",
|
||||
"elections": "Elecciones"
|
||||
},
|
||||
"bookmarkCandidate": "Recordar esta candidatura",
|
||||
"voteError": "Error al emitir el voto",
|
||||
"voteAllError": "Error al emitir los votos",
|
||||
"applyError": "No se pudo enviar la candidatura.",
|
||||
"benefits": {
|
||||
"daily_salary": "Estipendio diario (una vez al día): {amount}",
|
||||
"tax_exemption": "Exención fiscal: {regions}",
|
||||
@@ -1326,9 +1423,13 @@
|
||||
"region": "Región",
|
||||
"date": "Fecha",
|
||||
"candidacy": "Candidatura",
|
||||
"candidacyWithAge": "Candidatura (desde 16 años)",
|
||||
"none": "No hay cargos abiertos.",
|
||||
"apply": "Presentarse a los cargos seleccionados"
|
||||
"apply": "Presentarse a los cargos seleccionados",
|
||||
"minAgeHint": "La candidatura solo es posible a partir de 16 años.",
|
||||
"ageRequirement": "Para todos los cargos políticos: candidatura solo a partir de 16 años."
|
||||
},
|
||||
"too_young": "Tu personaje es demasiado joven. La candidatura solo es posible a partir de 16 años.",
|
||||
"upcoming": {
|
||||
"office": "Cargo",
|
||||
"region": "Región",
|
||||
|
||||
@@ -32,7 +32,13 @@
|
||||
"totalScore": "Puntuación total",
|
||||
"totalStars": "Estrellas totales",
|
||||
"levelsCompleted": "Niveles completados",
|
||||
"restartCampaign": "Reiniciar campaña"
|
||||
"restartCampaign": "Reiniciar campaña",
|
||||
"nextStep": "Siguiente paso",
|
||||
"objectivesCollapse": "Ocultar objetivos",
|
||||
"objectivesShow": "Mostrar objetivos",
|
||||
"objectives": "Objetivos",
|
||||
"loadingBoard": "Preparando el tablero…",
|
||||
"loadingHint": "Sincronizando datos del nivel, objetivos y disposición del campo."
|
||||
},
|
||||
"taxi": {
|
||||
"title": "Taxi Simulator",
|
||||
@@ -64,6 +70,34 @@
|
||||
"refuel": "Repostar",
|
||||
"startEngine": "Arrancar motor",
|
||||
"stopEngine": "Parar motor",
|
||||
"controls": "Controles",
|
||||
"accelerate": "Acelerar",
|
||||
"brake": "Frenar",
|
||||
"steerRight": "Girar a la derecha",
|
||||
"steerLeft": "Girar a la izquierda",
|
||||
"goals": "Objetivos",
|
||||
"avoidCollisions": "Evita colisiones con otros vehículos",
|
||||
"streetNames": "Nombres de calles",
|
||||
"remainingVehicles": "Vehículos restantes",
|
||||
"fuelTitle": "Combustible",
|
||||
"pointsTitle": "Puntos",
|
||||
"speedViolations": "Infracciones de velocidad",
|
||||
"redLightsPassed": "Semáforos en rojo saltados",
|
||||
"highscore": "Récords",
|
||||
"topPlayers": "Top 20 jugadores",
|
||||
"loadingHighscore": "Cargando récords…",
|
||||
"noHighscore": "Aún no hay récords",
|
||||
"pointsShort": "pts",
|
||||
"backToGame": "Volver al juego",
|
||||
"minimap": "Minimapa",
|
||||
"loadedPassengers": "Pasajeros a bordo",
|
||||
"waitingPassengers": "Pasajeros en espera",
|
||||
"noPassengersInTaxi": "No hay pasajeros en el taxi",
|
||||
"noWaitingPassengers": "No hay pasajeros esperando",
|
||||
"name": "Nombre",
|
||||
"destination": "Destino",
|
||||
"bonus": "Bonificación",
|
||||
"time": "Tiempo",
|
||||
"crash": {
|
||||
"title": "¡Accidente!",
|
||||
"message": "¡Has tenido un accidente! Choques: {crashes}"
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
{
|
||||
"passwordReset": {
|
||||
"title": "Restablecer contraseña",
|
||||
"email": "E-Mail",
|
||||
"passwordReset": {
|
||||
"title": "Restablecer contraseña",
|
||||
"email": "Correo electrónico",
|
||||
"reset": "Restablecer",
|
||||
"success": "Si el correo electrónico existe, se ha enviado una guía para restablecer la contraseña.",
|
||||
"failure": "No se pudo restablecer la contraseña. Inténtalo de nuevo más tarde."
|
||||
"success": "Si el correo existe, se ha enviado una guía para restablecer la contraseña.",
|
||||
"failure": "No se pudo restablecer la contraseña. Inténtalo de nuevo más tarde.",
|
||||
"emailHint": "Enviaremos el enlace a la dirección de correo registrada.",
|
||||
"validation": {
|
||||
"invalidEmail": "Introduce una dirección de correo válida."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,21 +1,29 @@
|
||||
{
|
||||
"register": {
|
||||
"title": "Registrarse",
|
||||
"email": "Dirección de correo electrónico",
|
||||
"username": "Nombre de usuario",
|
||||
"password": "Contraseña",
|
||||
"repeatPassword": "Repetir contraseña",
|
||||
"language": "Idioma",
|
||||
"languages": {
|
||||
"en": "Inglés",
|
||||
"de": "Alemán"
|
||||
},
|
||||
"register": "Registrarse",
|
||||
"close": "Cerrar",
|
||||
"failure": "Se ha producido un error.",
|
||||
"success": "Te has registrado correctamente. Revisa tu correo electrónico para activar tu cuenta.",
|
||||
"passwordMismatch": "Las contraseñas no coinciden.",
|
||||
"emailinuse": "La dirección de correo electrónico ya está en uso.",
|
||||
"usernameinuse": "El nombre de usuario no está disponible."
|
||||
"register": {
|
||||
"title": "Registrarse en yourPart",
|
||||
"email": "Dirección de correo electrónico",
|
||||
"username": "Nombre de usuario",
|
||||
"password": "Contraseña",
|
||||
"repeatPassword": "Repetir contraseña",
|
||||
"language": "Idioma",
|
||||
"languages": {
|
||||
"en": "Inglés",
|
||||
"de": "Alemán",
|
||||
"ceb": "Bisaya",
|
||||
"es": "Español"
|
||||
},
|
||||
"register": "Registrarse",
|
||||
"close": "Cerrar",
|
||||
"failure": "Se ha producido un error.",
|
||||
"success": "Te has registrado correctamente. Revisa tu correo para activar tu cuenta.",
|
||||
"passwordMismatch": "Las contraseñas no coinciden.",
|
||||
"emailinuse": "La dirección de correo ya está en uso.",
|
||||
"usernameinuse": "El nombre de usuario no está disponible.",
|
||||
"validation": {
|
||||
"invalidEmail": "Introduce una dirección de correo válida.",
|
||||
"usernameTooShort": "El nombre de usuario debe tener al menos 3 caracteres.",
|
||||
"passwordHint": "Al menos 8 caracteres.",
|
||||
"passwordTooShort": "La contraseña es demasiado corta."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -142,6 +142,8 @@
|
||||
},
|
||||
"account": {
|
||||
"title": "Account",
|
||||
"heroEyebrow": "Ajustes",
|
||||
"heroIntro": "Gestiona nombre de usuario, correo, contraseña y visibilidad en un solo lugar.",
|
||||
"username": "Nombre de usuario",
|
||||
"email": "Dirección de correo electrónico",
|
||||
"newpassword": "Contraseña",
|
||||
@@ -151,6 +153,15 @@
|
||||
"showinsearch": "Mostrar en búsquedas de usuarios",
|
||||
"changeaction": "Actualizar datos de usuario",
|
||||
"oldpassword": "Contraseña anterior (obligatoria)",
|
||||
"validation": {
|
||||
"newPasswordTooShort": "La nueva contraseña debe tener al menos 8 caracteres.",
|
||||
"passwordMismatch": "Las contraseñas no coinciden.",
|
||||
"oldPasswordRequired": "Se necesita la contraseña actual para cambiarla."
|
||||
},
|
||||
"feedback": {
|
||||
"saved": "Los ajustes de la cuenta se guardaron correctamente.",
|
||||
"saveError": "Se produjo un error al guardar los ajustes de la cuenta."
|
||||
},
|
||||
"adultAccessTitle": "Área erótica",
|
||||
"adultAccessIntro": "El área erótica está destinada solo a usuarios adultos y además requiere aprobación de moderación.",
|
||||
"requestAdultVerification": "Solicitar acceso",
|
||||
@@ -218,6 +229,10 @@
|
||||
"AdultsOnly": "Solo adultos",
|
||||
"All": "Mostrar a todos"
|
||||
},
|
||||
"feedback": {
|
||||
"updateError": "No se pudo guardar el cambio.",
|
||||
"visibilityUpdateError": "No se pudo actualizar la visibilidad."
|
||||
},
|
||||
"flirt": {
|
||||
"title": "Flirt"
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user