Add Latvian language translation (#992)

Add Latvian language translation (#992)
This commit is contained in:
Lauris BH 2022-06-19 08:31:16 +03:00 committed by GitHub
parent 570aaa4235
commit 2153425230
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 237 additions and 8 deletions

View file

@ -54,7 +54,7 @@
"pipeline_path": {
"path": "Pipeline path",
"default": "By default: .woodpecker/*.yml -> .woodpecker.yml -> .drone.yml",
"desc": "Path to your pipeline config (for example <span class=\"bg-gray-300 dark:bg-dark-300 rounded-md px-1\">my/path/</span>). Folders should end with a <span class=\"bg-gray-300 dark:bg-dark-300 rounded-md px-1\">/</span>."
"desc": "Path to your pipeline config (for example <span class=\"bg-gray-300 dark:bg-dark-700 rounded-md px-1\">my/path/</span>). Folders should end with a <span class=\"bg-gray-300 dark:bg-dark-700 rounded-md px-1\">/</span>."
},
"allow_pr": {

View file

@ -0,0 +1,217 @@
{
"login": "Autorizēties",
"welcome": "Woodpecker",
"repos": "Repo",
"repositories": "Repozitoriji",
"docs": "Dokumentācija",
"logout": "Iziet",
"search": "Meklēt...",
"username": "Lietotāja vārds",
"password": "Parole",
"url": "URL",
"unknown_error": "Notika neparedzēta kļūda",
"not_found": {
"not_found": "Ak vai, 404, vai nu mēs salauzām kaut ko, vai arī tika atvērta lapa, kas neeksistē :-/",
"back_home": "Uz sākumu"
},
"time": {
"tmpl": "YYYY. [gada] D. MMMM, HH:mm z",
"weeks_short": "ned.",
"days_short": "dien.",
"hours_short": "st.",
"min_short": "min.",
"sec_short": "sek.",
"not_started": "nav uzsākts"
},
"repo": {
"activity": "Aktivitāte",
"branches": "Atzari",
"add": "Pievienot repozitoriju",
"user_none": "Šai organizācijai/lietotājam pagaidām nav neviena projekta.",
"not_allowed": "Nav piekļuves šim repozitorijam",
"enable": {
"reload": "Pārlādēt repozitorijus",
"enable": "Iespējot",
"enabled": "Jau ir iespējots",
"success": "Repozitorijs iespējots",
"list_reloaded": "Repozitoriju sarakts tika pārlādēts"
},
"settings": {
"settings": "Iestatījumi",
"not_allowed": "Nav piekļuves šī repozitorija iestatījumiem",
"general": {
"general": "Pamata",
"project": "Projekta iestatījumi",
"save": "Saglabāt iestatījumus",
"success": "Repozitorija iestatījumi tika saglabāti",
"pipeline_path": {
"path": "Konvejerdarba ceļš",
"default": "Pēc noklusējuma: .woodpecker/*.yml -> .woodpecker.yml -> .drone.yml",
"desc": "Ceļš uz konvejerdarba konfigurāciju, piemēram, <span class=\"bg-gray-300 dark:bg-dark-700 rounded-md px-1\">my/path/</span>. Mapēm jābeidzas ar <span class=\"bg-gray-300 dark:bg-dark-700 rounded-md px-1\">/</span>."
},
"allow_pr": {
"allow": "Atļaut izmaiņu pieprasījumiem",
"desc": "Ļaut izpildīt konvejerdarbus izmaiņu pieprasījumiem."
},
"protected": {
"protected": "Aizsargāts",
"desc": "Nepieciešams apstiprināt visus konvejerdarbus pirms tie tiek izpildīti."
},
"trusted": {
"trusted": "Uzticams",
"desc": "Konvejerdarba konteineri tiks izpildīti ar paaugstinātām tiesībām, piemēram, piesaistīt servera direktorijas."
},
"visibility": {
"visibility": "Projekta redzamība",
"public": {
"public": "Publisks",
"desc": "Ikviens var piekļūt projektam, arī neautorizētie lietotāji."
},
"private": {
"private": "Privāts",
"desc": "Tikai autorizēti lietotāji var piekļūt šim projektam."
},
"internal": {
"internal": "Iekšējs",
"desc": "Tikai lietotāji, kam ir tiesības uz repozitoriju, var piekļūt šim projektam."
}
},
"timeout": {
"timeout": "Noildze",
"minutes": "minūtes"
},
"cancel_prev": {
"cancel": "Atcelt iepriekšējos konvejerdarbus",
"desc": "Iespējojot šo pazīmi, tiks atcelti visi iepriekšējie konvejerdarbi, kuriem sakrīt notikums un konteksts."
}
},
"secrets": {
"secrets": "Noslēpumi",
"desc": "Noslēpumus var padot individuāliem konvejerdarba soļiem izpildes laikā kā vides mainīgos.",
"none": "Pagaidām nav neviena noslēpuma.",
"add": "Pievienot noslēpumu",
"save": "Saglabāt noslēpumu",
"show": "Noslēpumu saraksts",
"name": "Nosaukums",
"value": "Vērtība",
"deleted": "Noslēpums dzēsts",
"created": "Noslēpums izveidots",
"saved": "Noslēpums saglabāts",
"images": {
"images": "Pieejami šādiem attēliem",
"desc": "Ar komatiem atdalīts saraksts ar attēliem, kam šis noslēpums būs pieejams, atstājot tukšu, tas būs pieejams visiem attēliem."
},
"events": {
"events": "Pieejams šādiem notikumiem",
"pr_warning": "Uzmanieties, jo šādā veidā tas būs pieejams visiem cilvēkiem, kas var iesūtīt izmaiņu pieprasījumu!"
}
},
"registries": {
"registries": "Reģistri",
"creds": "Reģistru autorizācijas dati",
"desc": "Reģistru autorizācijas dati var tikt izmantoti, lai izmantotu attēlos no privātiem reģistriem, konvjerdarbu soļos.",
"show": "Reģistru saraksts",
"add": "Pievienot reģistrus",
"none": "Pašlaik nav pievienots neviens reģistrs.",
"save": "Saglabāt reģistru",
"created": "Reģistra autorizācijas dati pievienoti",
"saved": "Reģistra autorizācijas dati saglabāti",
"deleted": "Reģistra autorizācijas dati dzēsti",
"address": {
"address": "Adrese",
"placeholder": "Reģistra adrese, piemēram, docker.io"
}
},
"badge": {
"badge": "Nozīmīte",
"url_branch": "URL konktētam atzaram",
"markdown": "Markdown"
},
"actions": {
"actions": "Darbības",
"repair": {
"repair": "Salabot repozitoriju",
"success": "Repozitorijs salabots"
},
"disable": {
"disable": "Atspējot repozitoriju",
"success": "Repozitorijs atspējots"
},
"delete": {
"delete": "Dzēst repozitoriju",
"confirm": "Visi repozitorija dati tiks neatgriezeniski dzēsti!\n\nVai vēlaties turpināt?",
"success": "Repozitorijs dzēsts"
}
}
},
"build": {
"created": "Izveidots",
"tasks": "Uzdevumi",
"config": "Konfigurācija",
"files": "Izmainītie faili ({files})",
"no_files": "Neviens fails nav mainīts.",
"execution_error": "Uzdevuma izpildes kļūda",
"no_pipelines": "Neviens konvejerdarbs vēl nav uzsākts.",
"no_pipeline_steps": "Konvejerdarbam nav neviena soļa!",
"step_not_started": "Šis solis vēl nav uzsākts.",
"pipelines_for": "Konvejerdarbi atzaram \"{branch}\"",
"exit_code": "iziešanas kods {exitCode}",
"loading": "Notiek ielāde...",
"pipeline": "Konvejerdarbs #{buildId}",
"actions": {
"cancel": "Atcelt",
"restart": "Pārstartēt",
"canceled": "Šis solis tika atcelts.",
"cancel_success": "Konvejerdarbs atcelts",
"restart_success": "Konvejerdarbs pārstartēts"
},
"protected": {
"awaits": "Šim konvejerdarbam ir nepieciešams apstiprinājums no atbildīgajām personām!",
"approve": "Apstiprināt",
"decline": "Noraidīt",
"declined": "Šis konvejerdarbs tika noraidīts!",
"approve_success": "Konvejerdarbs apstiprināts",
"decline_success": "Konvejerdarbs noraidīts"
},
"event": {
"push": "Iesūtīšana",
"tag": "Tags",
"pr": "Izmaiņu pieprasījums",
"deploy": "Uzstādīšana"
}
}
},
"user": {
"oauth_error": "Neizdevās autorizēties, izmantojot, OAuth piegādātāju",
"internal_error": "Notikusi sistēmas iekšējā kļūda",
"access_denied": "Jums nav tiesību autorizēties",
"token": "Personīgais talons",
"shell_setup": "Komandrindas iestatīšana",
"api_usage": "Piemērs API izmantošanai",
"cli_usage": "Piemērs komandrindas lietošanai",
"dl_cli": "Lejupielādēt komandrindas rīku",
"shell_setup_before": "izpildiet komandrindā sekojošas darbības"
}
}

View file

@ -27,12 +27,12 @@
<Checkbox
v-model="repoSettings.allow_pr"
:label="$t('repo.settings.general.allow_pr.allow')"
@description="$t('repo.settings.general.allow_pr.desc')"
:description="$t('repo.settings.general.allow_pr.desc')"
/>
<Checkbox
v-model="repoSettings.gated"
:label="$t('repo.settings.general.protected.protected')"
@description="$t('repo.settings.general.protected.desc')"
:description="$t('repo.settings.general.protected.desc')"
/>
<Checkbox
v-if="user?.admin"
@ -65,7 +65,7 @@
:options="cancelPreviousBuildEventsOptions"
/>
<template #description>
<p class="text-sm text-gray-400 dark:text-gray-600">
<p class="text-sm">
{{ $t('repo.settings.general.cancel_prev.desc') }}
</p>
</template>

View file

@ -1,4 +1,5 @@
import 'dayjs/locale/en';
import 'dayjs/locale/lv';
import dayjs from 'dayjs';
import advancedFormat from 'dayjs/plugin/advancedFormat';
@ -6,10 +7,12 @@ import timezone from 'dayjs/plugin/timezone';
import utc from 'dayjs/plugin/utc';
import { useI18n } from 'vue-i18n';
import { getUserLanguage } from '~/utils/locale';
dayjs.extend(timezone);
dayjs.extend(utc);
dayjs.extend(advancedFormat);
dayjs.locale(navigator.language.split('-')[0]);
dayjs.locale(getUserLanguage());
export function useDate() {
function toLocaleString(date: Date) {

View file

@ -3,8 +3,10 @@
import messages from '@intlify/vite-plugin-vue-i18n/messages';
import { createI18n } from 'vue-i18n';
import { getUserLanguage } from '~/utils/locale';
export const i18n = createI18n({
locale: navigator.language.split('-')[0],
locale: getUserLanguage(),
legacy: false,
globalInjection: true,
fallbackLocale: 'en',

3
web/src/utils/locale.ts Normal file
View file

@ -0,0 +1,3 @@
export function getUserLanguage(): string {
return navigator.language.split('-')[0];
}

View file

@ -1,8 +1,12 @@
import TimeAgo from 'javascript-time-ago';
import en from 'javascript-time-ago/locale/en.json';
import lv from 'javascript-time-ago/locale/lv.json';
import { getUserLanguage } from '~/utils/locale';
TimeAgo.addDefaultLocale(en);
TimeAgo.addLocale(lv);
const timeAgo = new TimeAgo(navigator.language);
const timeAgo = new TimeAgo(getUserLanguage());
export default timeAgo;

View file

@ -1,7 +1,7 @@
<template>
<FluidContainer class="flex flex-col">
<div class="flex flex-row flex-wrap md:grid md:grid-cols-3 border-b pb-4 mb-4 dark:border-dark-200">
<h1 class="text-xl text-color">Repositories</h1>
<h1 class="text-xl text-color">{{ $t('repositories') }}</h1>
<TextField v-model="search" class="w-auto md:ml-auto md:mr-auto" :placeholder="$t('search')" />
<Button class="md:ml-auto" :to="{ name: 'repo-add' }" start-icon="plus" :text="$t('repo.add')" />
</div>