Starting translations work

This commit is contained in:
Gabriel Engel 2022-11-09 19:27:03 -03:00
parent 8994dde8f0
commit 733de60f7c
9 changed files with 1160 additions and 14 deletions

View File

@ -77,6 +77,7 @@ ### Databases
<a href="https://redis.io"><svg style="width:40px;height:40px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" ><defs ><path id="a" d="m45.536 38.764c-2.013 1.05-12.44 5.337-14.66 6.494s-3.453 1.146-5.207.308-12.85-5.32-14.85-6.276c-1-.478-1.524-.88-1.524-1.26v-3.813s14.447-3.145 16.78-3.982 3.14-.867 5.126-.14 13.853 2.868 15.814 3.587v3.76c0 .377-.452.8-1.477 1.324z" /><path id="b" d="m45.536 28.733c-2.013 1.05-12.44 5.337-14.66 6.494s-3.453 1.146-5.207.308-12.85-5.32-14.85-6.276-2.04-1.613-.077-2.382l15.332-5.935c2.332-.837 3.14-.867 5.126-.14s12.35 4.853 14.312 5.57 2.037 1.31.024 2.36z" /></defs ><g transform="matrix(.848327 0 0 .848327 -7.883573 -9.449691)" ><use fill="#a41e11" xlink:href="#a" /><path d="m45.536 34.95c-2.013 1.05-12.44 5.337-14.66 6.494s-3.453 1.146-5.207.308-12.85-5.32-14.85-6.276-2.04-1.613-.077-2.382l15.332-5.936c2.332-.836 3.14-.867 5.126-.14s12.35 4.852 14.31 5.582 2.037 1.31.024 2.36z" fill="#d82c20" /><use fill="#a41e11" xlink:href="#a" y="-6.218" /><use fill="#d82c20" xlink:href="#b" /><path d="m45.536 26.098c-2.013 1.05-12.44 5.337-14.66 6.495s-3.453 1.146-5.207.308-12.85-5.32-14.85-6.276c-1-.478-1.524-.88-1.524-1.26v-3.815s14.447-3.145 16.78-3.982 3.14-.867 5.126-.14 13.853 2.868 15.814 3.587v3.76c0 .377-.452.8-1.477 1.324z" fill="#a41e11" /><use fill="#d82c20" xlink:href="#b" y="-6.449" /><g fill="#fff" ><path d="m29.096 20.712-1.182-1.965-3.774-.34 2.816-1.016-.845-1.56 2.636 1.03 2.486-.814-.672 1.612 2.534.95-3.268.34zm-6.296 3.912 8.74-1.342-2.64 3.872z" /><ellipse cx="20.444" cy="21.402" rx="4.672" ry="1.811" /></g ><path d="m42.132 21.138-5.17 2.042-.004-4.087z" fill="#7a0c00" /><path d="m36.963 23.18-.56.22-5.166-2.042 5.723-2.264z" fill="#ad2115" /></g ></svg ></a>
### Services
- [Appwrite](https://appwrite.io)
- [WordPress](https://docs.coollabs.io/coolify/services/wordpress)
- [Ghost](https://ghost.org)
@ -105,11 +106,29 @@ ## Support
- Email: [andras@coollabs.io](mailto:andras@coollabs.io)
- Discord: [Invitation](https://coollabs.io/discord)
## Development Contributions
---
Coolify is developed under the Apache License and you can help to make it grow &rarr; [Start coding!](./CONTRIBUTION.md)
## ⚗️ Expertise Contributions
## Financial Contributors
Coolify is developed under the [Apache License](./LICENSE) and you can help to make it grow.
Our community will be glad to have you on board!
Learn how to contribute to Coolify as as ...
&rarr; [👩🏾‍💻 Software developer](./CONTRIBUTION.md)
&rarr; [🧑🏻‍🏫 Translator](./docs/contribution/Translating.md)
<!--
&rarr; 🧑🏽‍🎨 Designer
&rarr; 🙋‍♀️ Community Managemer
&rarr; 🧙🏻‍♂️ Text Content Creator
&rarr; 👨🏼‍🎤 Video Content Creator
-->
---
## 💰 Financial Contributors
Become a financial contributor and help us sustain our community. [[Contribute](https://opencollective.com/coollabsio/contribute)]

View File

@ -0,0 +1,11 @@
<script>
import { locale, locales } from '$lib/translations';
</script>
<div >
<select bind:value={$locale} class="w-14">
{#each $locales as l}
<option value={l}>{l}</option>
{/each}
</select>
</div>

View File

@ -1,4 +1,7 @@
{
"fr": "Français",
"pt": "Português",
"es": "Espanhol",
"ko": "Korean",
"en": "English"
}

View File

@ -0,0 +1,341 @@
{
"layout":{
"update_done":"Actualización completada.",
"wait_new_version_startup":"Esperando que comience la nueva versión.",
"new_version":"Nueva versión accesible. Recargando.",
"switch_to_a_different_team":"Cambia a otro equipo.",
"update_available":"Actualización disponible"
},
"error":{
"you_can_find_your_way_back":"Puedes encontrar tu camino de vuelta",
"here":"Aquí.",
"you_are_lost":"¡Estás perdido! ¡Pero no tengas miedo!"
},
"index":{
"dashboard":"Dashboard",
"applications":"Aplicaciones",
"destinations":"Destinos",
"git_sources":"Fuentes Git",
"databases":"Bases de datos",
"services":"Servicios",
"teams":"Equipos",
"not_implemented_yet":"Aún no se ha aplicado",
"database":"Base de datos",
"settings":"Ajustes",
"global_settings":"Ajustes mundiales",
"secret":"Secret",
"team":"Equipo",
"logout":"Cerrar sesión"
},
"login":{
"already_logged_in":"Ya se ha registrado.",
"authenticating":"Autenticando.",
"login":"Iniciar sesión"
},
"forms":{
"password":"Contraseña",
"email":"Dirección de correo electrónico",
"passwords_not_match":"Las contraseñas no coinciden.",
"password_again":"Contraseña de nuevo",
"save":"Guardar",
"saving":"Salvando.",
"name":"Nombre",
"value":"Valor",
"action":"Acciones",
"is_required":"es necesario.",
"add":"Añadir",
"set":"Set",
"remove":"Retirar",
"path":"Camino",
"confirm_continue":"¿Estás seguro de continuar?",
"must_be_stopped_to_modify":"Debe ser detenido para modificar.",
"port":"Puerto",
"default":"Por defecto",
"base_directory":"Base Directory",
"publish_directory":"Publish Directory",
"generated_automatically_after_start":"Generado automáticamente después del inicio",
"roots_password":"La contraseña de Root",
"root_user":"Usuario raíz",
"eg":"eg",
"user":"Usuario",
"loading":"Carga.",
"version":"Versión",
"host":"Host",
"already_used_for":"##########################################################################################################################################################################################################################################################",
"configuration":"Configuración",
"engine":"Motor",
"network":"Red",
"ip_address":"Dirección IP",
"ssh_private_key":"SSH Clave privada",
"type":"Tipo",
"html_url":"URL",
"api_url":"API",
"organization":"Organización",
"new_password":"Nueva contraseña",
"super_secure_new_password":"Super seguro nueva contraseña",
"submit":"Submit",
"default_email_address":"Dirección de correo electrónico predeterminada",
"default_password":"Contraseña predeterminada",
"username":"Nombre de usuario",
"root_db_user":"Root DB Usuario",
"root_db_password":"Root DB Contraseña",
"api_port":"API Port",
"verifying":"Verificación",
"verify_emails_without_smtp":"Verificar correos electrónicos sin SMTP",
"extra_config":"Extra Config",
"select_a_service":"Seleccione un Servicio",
"select_a_service_version":"Seleccione una versión de servicio",
"removing":"Retirándose.",
"remove_domain":"Eliminar el dominio",
"public_port_range":"Public Port Range",
"public_port_range_explainer":"Puertos utilizados para exponer bases de datos/servicios/servicios internos. Añádalos a su cortafuegos (si es aplicable).Seguido se indicará una gama de puertos, por ejemplo: tachuelas clase='text-settings '9000-9100 seg/span",
"no_actions_available":"No se dispone de medidas",
"admin_api_key":"Clave de API de Admin"
},
"register":{
"register":"Registro",
"registering":"Registro.",
"first_user":"Está registrando al primer usuario. Será el administrador de tu instancia de Coolify."
},
"reset":{
"reset_password":"Reset",
"invalid_secret_key":"Una llave secreta inválida.",
"secret_key":"Secret Key",
"find_path_secret_key":"Puedes encontrarlo en ~coolify/.env (COOLIFY_SECRET_KEY)"
},
"application":{
"configuration":{
"buildpack":{
"choose_this_one":"Elige esta."
},
"branch_already_in_use":"Esta rama ya es utilizada por otra aplicación. Webhooks no funcionará en este caso para ambas aplicaciones. ¿Seguro que quieres usarlo?",
"no_repositories_configured":"No hay repositorios configurados para su aplicación Git.",
"configure_it_now":"Configure ahora",
"loading_repositories":"Carga de repositorios ...",
"select_a_repository":"Seleccione un repositorio",
"loading_branches":"Cargando ramas ...",
"select_a_repository_first":"Por favor seleccione un repositorio primero",
"select_a_branch":"Por favor seleccione una rama",
"loading_groups":"Grupos de carga.",
"select_a_group":"Seleccione un grupo",
"loading_projects":"Cargando proyectos.",
"select_a_project":"Seleccione un proyecto",
"no_projects_found":"No se han encontrado proyectos",
"no_branches_found":"No hay ramas encontradas",
"configure_build_pack":"Configure Build Pack",
"scanning_repository_suggest_build_pack":"Repositorio de exploración para sugerir un paquete de construcción para usted.",
"found_lock_file":"encontrado archivo de bloqueo para {{packageManager}}.Seguido de comandos predefinidos.",
"configure_destination":"Configurar Destino",
"no_configurable_destination":"No hay destino configurable encontrado",
"select_a_repository_project":"Seleccione un Repositorio / Proyecto",
"select_a_git_source":"Seleccione una fuente de Git",
"no_configurable_git":"No se encontró una fuente de Git configurable",
"configuration_missing":"Falta de configuración"
},
"build":{
"queued_waiting_exec":"Queued and waiting for execution.",
"build_logs_of":"Construir registros de",
"running":"Corriendo",
"queued":"Queued",
"finished_in":"Terminado en",
"load_more":"Carga más",
"no_logs":"No hay registros encontrados",
"waiting_logs":"Esperando los registros."
},
"preview":{
"need_during_buildtime":"¿Necesitas durante el tiempo de construcción?",
"setup_secret_app_first":"Puede añadir secretos a las implementaciones PR/MR. Por favor, agregue secretos a la aplicación primero. √≠br]Useful for creating יspan class='text-settings 'staging won/span environments.",
"values_overwriting_app_secrets":"Estos valores sobrescriben los secretos de aplicación en las implementaciones PR/MR. Útil para la creación de clase 0'text-settings 'estaging significan ambientes / paño.",
"redeploy":"Redistribución",
"no_previews_available":"No hay vistas previas disponibles"
},
"secrets":{
"secret_saved":"Secreto salvado.",
"use_isbuildsecret":"Use isBuildSecret",
"secrets_for":"Secretos para"
},
"storage":{
"path_is_required":"Se requiere camino.",
"storage_saved":"Almacenamiento guardado.",
"storage_updated":"Almacenamiento actualizado.",
"storage_deleted":"Almacenamiento eliminado.",
"persistent_storage_explainer":"Puede especificar cualquier carpeta que desee ser persistente a través de las implementaciones.Seguido de la clase='text-settings 'ejemplo observado/span significa que preservará <span class='text-settings 'app/example observado/span en el contenedor como ierespan class='text-settings 'appcanta/span es Гspan clase='text-setting directory Esto es útil para almacenar datos tales como una clase de =span='text-settings √≥'database (SQLite) obtenidos/spanilo o a יspan class='text-settings 'cache made/span."
},
"deployment_queued":"Despliegue apagado.",
"confirm_to_delete":"¿Estás seguro de que te gustaría borrar?",
"stop_application":"Stop Application",
"permission_denied_stop_application":"Usted no tiene permiso para detener la aplicación.",
"rebuild_application":"Rebuild Application",
"permission_denied_rebuild_application":"No tienes permiso para reconstruir la aplicación.",
"build_and_start_application":"Despliegue",
"permission_denied_build_and_start_application":"Usted no tiene permiso para implementar la aplicación.",
"configurations":"Configuraciones",
"secret":"Secretos",
"persistent_storage":"Almacenamiento persistente",
"previews":"Avances",
"logs":"Registros de aplicaciones",
"build_logs":"Logs de construcción",
"delete_application":"Suprimir",
"permission_denied_delete_application":"Usted no tiene permiso para borrar esta aplicación",
"domain_already_in_use":"El dominio ya se utiliza.",
"dns_not_set_error":"DNS no se establece correctamente ni se propogó para {{domain}}.Seguido manualmente indicando su configuración DNS.",
"domain_required":"El dominio es necesario.",
"settings_saved":"Configuración guardada.",
"dns_not_set_partial_error":"DNS not set",
"domain_not_valid":"No puede resolver el dominio o no apunta a la dirección IP del servidor. Por favor, compruebe su configuración de DNS e inténtelo de nuevo.",
"git_source":"Fuente de Git",
"git_repository":"Repositorio Git",
"build_pack":"Paquete de construcción",
"base_image":"Imagen de despliegue",
"base_image_explainer":"Imagen que se utilizará para el despliegue.",
"base_build_image":"Construir imagen",
"base_build_image_explainer":"Imagen que se utilizará durante el proceso de construcción.",
"destination":"Destino",
"application":"Aplicación",
"url_fqdn":"URL (FQDN)",
"domain_fqdn":"Dominio (FQDN)",
"https_explainer":"Si especificas יspan class='text-settings 'https seleccionado/span, la aplicación será accesible sólo en https. Certificado SSL se generará para usted.Seguidobr títuloSi especificas יspan class='text-settings 'www dañado/span, la aplicación será redireccionada (302) de non-www y viceversa.Seguradobr acordadobr título Para modificar el dominio, primero debe detener la aplicación. Debe establecer su DNS para apuntar al servidor IP con antelación.",
"ssl_www_and_non_www":"Generar SSL para www y non-www?",
"ssl_explainer":"Generará certificados tanto para www como para no www. Necesitas tener las entradas de DNS de la clase 0'' text-settings' inteligenteboth DNS seleccionadas/span título con antelación.Seguridad si esperas tener visitantes en ambos.",
"install_command":"Instalar el Comando",
"build_command":"Mando de construcción",
"start_command":"Comando de Inicio",
"directory_to_use_explainer":"Directorio para usar como base para todos los comandos. Podría ser útil con la clase 0'text-settings 'monorepos obtenidos / span.",
"publish_directory_explainer":"Directorio que contiene todos los activos para el despliegue. Por ejemplo: \"Clasificación de texto\": \"Clasificación de texto\": \"Clasificación de texto\": \"Clasificación de texto\": \"Clasificación de texto\" (p. ej., p. ej.:",
"features":"Características",
"enable_automatic_deployment":"Permitir el despliegue automático",
"enable_auto_deploy_webhooks":"Permitir el despliegue automático a través de los dispositivos web.",
"enable_mr_pr_previews":"Habilitar las previsiones MR/PR",
"expose_a_port":"Exponga un puerto",
"enable_preview_deploy_mr_pr_requests":"Permitir despliegues de previsualización de las solicitudes de tira o fusión.",
"debug_logs":"Debug Logs",
"enable_debug_log_during_build":"Activar registros de depuración durante fase de construcción.Seguidobr contactos clase='text-settings .'Informaciones positivas realizadas/span título podría ser visible y guardado en registros.",
"cant_activate_auto_deploy_without_repo":"No puede activar implementaciones automáticas hasta que sólo una aplicación se defina para este repositorio / rama.",
"no_applications_found":"No se han encontrado aplicaciones",
"secret__batch_dot_env":"Paste .env file",
"batch_secrets":"Batch añade secretos"
},
"general":"General",
"database":{
"default_database":"Base de datos predeterminada",
"generated_automatically_after_set_to_public":"Generado automáticamente después de establecerse en público",
"connection_string":"Conexión",
"set_public":"Ponlo en público",
"warning_database_public":"Su base de datos será accesible en Internet. ¡Seguridad en este caso!",
"change_append_only_mode":"Cambiar el apéndice sólo modo",
"warning_append_only":"Útil si desea restaurar los datos redis de una copia de seguridad. Se requiere el reinicio de la base de datos.",
"select_database_type":"Seleccione un tipo de base",
"select_database_version":"Seleccione una versión de base de datos",
"confirm_stop":"¿Seguro que te gustaría parar?",
"stop_database":"Para.",
"permission_denied_stop_database":"No tienes permiso para detener la base de datos.",
"start_database":"Comienzo",
"permission_denied_start_database":"No tienes permiso para iniciar la base de datos.",
"delete_database":"Suprimir",
"permission_denied_delete_database":"Usted no tiene permiso para eliminar una base de datos",
"no_databases_found":"No se encontraron bases de datos",
"logs":"Logs"
},
"destination":{
"delete_destination":"Suprimir",
"permission_denied_delete_destination":"Usted no tiene permiso para eliminar este destino",
"add_to_coolify":"Añadir a Coolify",
"coolify_proxy_stopped":"Coolify Proxy paró!",
"coolify_proxy_started":"Coolify Proxy comenzó!",
"confirm_restart_proxy":"¿Seguro que quieres reiniciar el proxy? Todo será reconfigurado en ~10 segundos.",
"coolify_proxy_restarting":"Enfríe el reinicio de Proxy.",
"restarting_please_wait":"Reiniciando. Por favor, espere.",
"force_restart_proxy":"Fuerza restart proxy",
"use_coolify_proxy":"¿Uso Coolify Proxy?",
"no_destination_found":"No hay destino encontrado",
"new_error_network_already_exists":"Red {{network}} ya configurado para otro equipo!",
"new":{
"saving_and_configuring_proxy":"Salvando.",
"install_proxy":"Esto instalará un proxy en el destino para permitirle acceder a sus aplicaciones y servicios sin ninguna configuración manual (recomendada para Docker).",
"add_new_destination":"Añadir nuevo destino",
"predefined_destinations":"Destinos predefinidos"
}
},
"sources":{
"local_docker":"Local Docker",
"remote_docker":"Remoto Docker",
"organization_explainer":"Rellene si desea utilizar una organización como su Fuente Git. De lo contrario su usuario será utilizado."
},
"source":{
"new":{
"git_source":"Agregar nueva fuente de Git",
"official_providers":"Proveedores oficiales"
},
"no_git_sources_found":"No hay fuentes de git",
"delete_git_source":"Suprimir",
"permission_denied":"Usted no tiene permiso para eliminar una Fuente Git",
"create_new_app":"Crear nuevo {{name}} App",
"change_app_settings":"Cambio {{name}} Configuración de la aplicación",
"install_repositories":"Instalar los depósitos",
"application_id":"ID de aplicación",
"group_name":"Nombre del grupo",
"oauth_id":"OAuth ID",
"oauth_id_explainer":"El ID OAuth es el identificador único de la aplicación GitLab. Puedes encontrarlo itspan class=' text-settings' √in la URL seleccionada/span título de tu aplicación GitLab OAuth.",
"register_oauth_gitlab":"Registrar nueva aplicación OAuth en GitLab",
"gitlab":{
"self_hosted":"Aplicación a nivel de instalación (auto hospedada)",
"user_owned":"Aplicación de propiedad de usuario",
"group_owned":"Solicitud de propiedad de un grupo",
"gitlab_application_type":"GitLab Application Tipo",
"already_configured":"GitLab La aplicación ya está configurada."
},
"github":{
"redirecting":"Redirección a Github."
}
},
"services":{
"all_email_verified":"Todos los correos electrónicos son verificados. Puedes entrar ahora.",
"generate_www_non_www_ssl":"Generará certificados tanto para www como para no www. Necesitas tener las entradas de DNS de la clase='text-settings' inteligenteboth DNS seleccionadas/span título con antelación."
},
"service":{
"stop_service":"Para.",
"permission_denied_stop_service":"No tienes permiso para detener el servicio.",
"start_service":"Comienzo",
"permission_denied_start_service":"No tienes permiso para empezar el servicio.",
"delete_service":"Suprimir",
"permission_denied_delete_service":"Usted no tiene permiso para borrar un servicio.",
"no_service":"No se han encontrado servicios",
"logs":"Logs"
},
"setting":{
"change_language":"Cambiar idioma",
"permission_denied":"No tienes permiso para hacer esto. \\nAsk un administrador para modificar sus permisos.",
"domain_removed":"El dominio eliminado",
"ssl_explainer":"Si especificas יspan class='text-settings' confianzahttps realizadas/span, Coolify será accesible sólo en https. Certificado SSL se generará para usted.Se indicará que si especificas <span class='text-settings 'www identificado/span, Coolify será redireccionado (302) de no-www y viceversa. Si cambia un dominio ya establecido, romperá webhooks y otras integraciones! Necesita actualizarlos manualmente.",
"must_remove_domain_before_changing":"Debe eliminar el dominio antes de que pueda cambiar esta configuración.",
"registration_allowed":"¿Se permite la inscripción?",
"registration_allowed_explainer":"Permitir nuevos registros a la solicitud. Se ha apagado después del primer registro.",
"coolify_proxy_settings":"Enfriar los ajustes Proxy",
"credential_stat_explainer":"Credenciales para \"href=\"{{link}} target=\"_blank\"(s) asignados/página.",
"auto_update_enabled":"¿Actualización automática activada?",
"auto_update_enabled_explainer":"Activar actualizaciones automáticas para enfriar. Se hará automáticamente detrás de las escenas, si no hay proceso de construcción funcionando.",
"generate_www_non_www_ssl":"Generará certificados tanto para www como para no www. Necesitas tener las entradas de la clase='' texto-settings' inteligenteboth DNS seleccionadas/span titulada con antelación.",
"is_dns_check_enabled":"¿El cheque DNS está habilitado?",
"is_dns_check_enabled_explainer":"Puede deshabilitar el cheque DNS antes de crear certificados SSL.Seguido se indica que el ajuste es útil cuando Coolify está detrás de un proxy o túnel inverso."
},
"team":{
"pending_invitations":"Invitaciones pendientes",
"accept":"Aceptar",
"delete":"Suprimir",
"member":"miembros(s)",
"root":"(root)",
"invited_with_permissions":"Invitado a las \"clase de texto\"(s)(s)(s)(s)(s)(s)(s)(s)(s)(s)(s))(s))(s))(sp))(sp.",
"members":"Miembros",
"root_team_explainer":"Este es el equipo de la clase de la clase 0'text-red-500 'raíz seleccionada/span. Esto significa que los miembros de este grupo pueden gestionar la configuración de instancia amplia y tener todos los priviliges en Coolify (imagina como usuario raíz en Linux.)",
"permission":"Permiso",
"you":"Tú",
"promote_to":"Promover a {{grade}}",
"revoke_invitation":"Revocar la invitación",
"pending_invitation":"Invitación pendiente",
"invite_new_member":"Invitar nuevo miembro",
"send_invitation":"Enviar invitación",
"invite_only_register_explainer":"Sólo puedes invitar a usuarios registrados.",
"admin":"Admin",
"read":"Leer"
}
}

View File

@ -0,0 +1,341 @@
{
"layout":{
"update_done":"업데이트가 완료되었습니다.",
"wait_new_version_startup":"새 버전이 시작되기를 기다리는 중...",
"new_version":"새 버전을 사용할 수 있습니다. 새로고침 중...",
"switch_to_a_different_team":"다른팀으로 갈아타세요...",
"update_available":"업데이트 가능"
},
"error":{
"you_can_find_your_way_back":"돌아갈 길을 찾을 수 있다",
"here":"여기",
"you_are_lost":"앗 길을 잃으셨군요! 그러나 두려워하지 마십시오!"
},
"index":{
"dashboard":"계기반",
"applications":"애플리케이션",
"destinations":"목적지",
"git_sources":"힘내 소스",
"databases":"데이터베이스",
"services":"서비스",
"teams":"팀",
"not_implemented_yet":"아직 구현되지 않음",
"database":"데이터 베이스",
"settings":"설정",
"global_settings":"전역 설정",
"secret":"비밀",
"team":"팀",
"logout":"로그 아웃"
},
"login":{
"already_logged_in":"이미 로그인...",
"authenticating":"인증 중...",
"login":"로그인"
},
"forms":{
"password":"비밀번호",
"email":"이메일 주소",
"passwords_not_match":"비밀번호가 일치하지 않습니다.",
"password_again":"비밀번호를 다시",
"save":"구하다",
"saving":"절약...",
"name":"이름",
"value":"값",
"action":"행위",
"is_required":"필요합니다.",
"add":"추가하다",
"set":"세트",
"remove":"제거하다",
"path":"길",
"confirm_continue":"계속하시겠습니까?",
"must_be_stopped_to_modify":"수정하려면 중지해야 합니다.",
"port":"포트",
"default":"기본",
"base_directory":"기본 디렉토리",
"publish_directory":"디렉토리 게시",
"generated_automatically_after_start":"시작 후 자동으로 생성됨",
"roots_password":"루트의 비밀번호",
"root_user":"루트 사용자",
"eg":"예",
"user":"사용자",
"loading":"로드 중...",
"version":"버전",
"host":"주최자",
"already_used_for":"<span class=\"text-red-500\">{{type}}</span>이(가) 이미 사용됨",
"configuration":"구성",
"engine":"엔진",
"network":"회로망",
"ip_address":"IP 주소",
"ssh_private_key":"SSH 개인 키",
"type":"유형",
"html_url":"HTML URL",
"api_url":"API URL",
"organization":"조직",
"new_password":"새 비밀번호",
"super_secure_new_password":"매우 안전한 새 비밀번호",
"submit":"제출하다",
"default_email_address":"기본 이메일 주소",
"default_password":"기본 비밀번호",
"username":"사용자 이름",
"root_db_user":"루트 DB 사용자",
"root_db_password":"루트 DB 비밀번호",
"api_port":"API 포트",
"verifying":"확인 중",
"verify_emails_without_smtp":"SMTP 없이 이메일 확인",
"extra_config":"추가 구성",
"select_a_service":"서비스 선택",
"select_a_service_version":"서비스 버전 선택",
"removing":"풀이...",
"remove_domain":"도메인 제거",
"public_port_range":"공용 포트 범위",
"public_port_range_explainer":"데이터베이스/서비스/내부 서비스를 노출하는 데 사용되는 포트입니다.<br> 방화벽에 추가합니다(해당되는 경우).<br><br>포트 범위를 지정할 수 있습니다(예: <span class='text-settings '>). 9000-9100</span>",
"no_actions_available":"사용 가능한 작업이 없습니다.",
"admin_api_key":"관리 API 키"
},
"register":{
"register":"등록하다",
"registering":"등록 중...",
"first_user":"첫 번째 사용자를 등록하고 있습니다. Coolify 인스턴스의 관리자가 됩니다."
},
"reset":{
"reset_password":"초기화",
"invalid_secret_key":"잘못된 비밀 키입니다.",
"secret_key":"비밀 키",
"find_path_secret_key":"~/coolify/.env(COOLIFY_SECRET_KEY)에서 찾을 수 있습니다."
},
"application":{
"configuration":{
"buildpack":{
"choose_this_one":"이걸 선택..."
},
"branch_already_in_use":"이 분기는 이미 다른 응용 프로그램에서 사용하고 있습니다. 이 경우 두 애플리케이션 모두에 대해 Webhook이 작동하지 않습니다. 사용하시겠습니까?",
"no_repositories_configured":"Git 애플리케이션에 대해 구성된 저장소가 없습니다.",
"configure_it_now":"지금 구성",
"loading_repositories":"저장소 로드 중...",
"select_a_repository":"저장소를 선택하십시오",
"loading_branches":"브랜치 로드 중...",
"select_a_repository_first":"먼저 저장소를 선택하십시오",
"select_a_branch":"지점을 선택해 주세요",
"loading_groups":"그룹 로드 중...",
"select_a_group":"그룹을 선택하세요.",
"loading_projects":"프로젝트 로드 중...",
"select_a_project":"프로젝트를 선택하세요.",
"no_projects_found":"프로젝트를 찾을 수 없습니다.",
"no_branches_found":"지점을 찾을 수 없습니다",
"configure_build_pack":"빌드 팩 구성",
"scanning_repository_suggest_build_pack":"빌드 팩을 제안하기 위해 저장소를 검색하는 중...",
"found_lock_file":"{{packageManager}}에 대한 잠금 파일을 찾았습니다.<br>사전 정의된 명령 명령에 사용합니다.",
"configure_destination":"대상 구성",
"no_configurable_destination":"구성 가능한 대상을 찾을 수 없습니다.",
"select_a_repository_project":"리포지토리/프로젝트 선택",
"select_a_git_source":"Git 소스 선택",
"no_configurable_git":"구성 가능한 Git 소스를 찾을 수 없습니다.",
"configuration_missing":"구성 누락"
},
"build":{
"queued_waiting_exec":"큐에 넣고 실행을 기다리고 있습니다.",
"build_logs_of":"빌드 로그",
"running":"달리기",
"queued":"대기 중",
"finished_in":"완료",
"load_more":"더 찾아보기",
"no_logs":"로그를 찾을 수 없습니다.",
"waiting_logs":"로그를 기다리는 중..."
},
"preview":{
"need_during_buildtime":"빌드 시간에 필요하십니까?",
"setup_secret_app_first":"PR/MR 배포에 비밀을 추가할 수 있습니다. 먼저 응용 프로그램에 비밀을 추가하십시오. <br><span class='text-settings '>스테이징</span> 환경을 만드는 데 유용합니다.",
"values_overwriting_app_secrets":"이러한 값은 PR/MR 배포에서 애플리케이션 비밀을 덮어씁니다. <span class='text-settings '>스테이징</span> 환경을 만드는 데 유용합니다.",
"redeploy":"재배포",
"no_previews_available":"사용 가능한 미리보기가 없습니다."
},
"secrets":{
"secret_saved":"비밀이 저장되었습니다.",
"use_isbuildsecret":"isBuildSecret 사용",
"secrets_for":"비밀"
},
"storage":{
"path_is_required":"경로는 필수 항목입니다.",
"storage_saved":"저장용량이 저장되었습니다.",
"storage_updated":"스토리지가 업데이트되었습니다.",
"storage_deleted":"스토리지가 삭제되었습니다.",
"persistent_storage_explainer":"배포 간에 유지하려는 모든 폴더를 지정할 수 있습니다.<br><span class='text-settings '>/example</span>은 <span class='text-settings '>/app/를 보존함을 의미합니다. <span class='text-settings '>/app</span>과 같은 컨테이너의 example</span>은 애플리케이션의 <span class='text-settings '>루트 디렉토리</span>입니다.<br> <br><span class='text-settings '>데이터베이스(SQLite)</span> 또는 <span class='text-settings '>캐시</span>와 같은 데이터를 저장하는 데 유용합니다."
},
"deployment_queued":"배포가 대기 중입니다.",
"confirm_to_delete":"'{{name}}'을(를) 삭제하시겠습니까?",
"stop_application":"애플리케이션 중지",
"permission_denied_stop_application":"애플리케이션을 중지할 권한이 없습니다.",
"rebuild_application":"애플리케이션 재구축",
"permission_denied_rebuild_application":"애플리케이션을 다시 빌드할 권한이 없습니다.",
"build_and_start_application":"배포",
"permission_denied_build_and_start_application":"애플리케이션을 배포할 권한이 없습니다.",
"configurations":"구성",
"secret":"비밀",
"persistent_storage":"영구 스토리지",
"previews":"미리보기",
"logs":"애플리케이션 로그",
"build_logs":"빌드 로그",
"delete_application":"삭제",
"permission_denied_delete_application":"이 애플리케이션을 삭제할 권한이 없습니다.",
"domain_already_in_use":"도메인 {{domain}}은(는) 이미 사용 중입니다.",
"dns_not_set_error":"DNS가 올바르게 설정되지 않았거나 {{domain}}에 대해 전파되었습니다.<br><br>DNS 설정을 확인하십시오.",
"domain_required":"도메인은 필수 항목입니다.",
"settings_saved":"구성이 저장되었습니다.",
"dns_not_set_partial_error":"DNS가 설정되지 않았습니다.",
"domain_not_valid":"도메인을 확인할 수 없거나 서버 IP 주소를 가리키지 않습니다.<br><br>DNS 구성을 확인하고 다시 시도하십시오.",
"git_source":"힘내 소스",
"git_repository":"Git 저장소",
"build_pack":"빌드 팩",
"base_image":"배포 이미지",
"base_image_explainer":"배포에 사용할 이미지입니다.",
"base_build_image":"빌드 이미지",
"base_build_image_explainer":"빌드 프로세스 중에 사용될 이미지입니다.",
"destination":"목적지",
"application":"신청",
"url_fqdn":"URL(FQDN)",
"domain_fqdn":"도메인(FQDN)",
"https_explainer":"<span class='text-settings '>https</span>를 지정하면 https를 통해서만 애플리케이션에 액세스할 수 있습니다. SSL 인증서가 생성됩니다.<br><span class='text-settings '>www</span>를 지정하면 애플리케이션이 www가 아닌 ​​곳에서 리디렉션(302)되거나 그 반대의 경우도 마찬가지입니다.<br>< br>도메인을 수정하려면 먼저 애플리케이션을 중지해야 합니다.<br><br><span class='text-white '>미리 DNS가 서버 IP를 가리키도록 설정해야 합니다.</span>",
"ssl_www_and_non_www":"www 및 www가 없는 SSL을 생성하시겠습니까?",
"ssl_explainer":"www 및 non-www 모두에 대한 인증서를 생성합니다. <br>미리 <span class=' text-settings'>두 DNS 항목</span>을 설정해야 합니다.<br><br>두 DNS 항목 모두에 방문자가 있을 것으로 예상되는 경우 유용합니다.",
"install_command":"설치 명령",
"build_command":"빌드 명령",
"start_command":"시작 명령",
"directory_to_use_explainer":"모든 명령의 기반으로 사용할 디렉토리입니다.<br><span class='text-settings '>monorepos</span>와 함께 유용할 수 있습니다.",
"publish_directory_explainer":"배포를 위한 모든 자산이 포함된 디렉터리입니다. <br> 예: <span class='text-settings '>dist</span>,<span class='text-settings '>_site</span> 또는 <span class='text-settings '>public< /스팬>.",
"features":"특징",
"enable_automatic_deployment":"자동 배포 활성화",
"enable_auto_deploy_webhooks":"웹훅을 통한 자동 배포를 활성화합니다.",
"enable_mr_pr_previews":"MR/PR 미리보기 활성화",
"expose_a_port":"포트 노출",
"enable_preview_deploy_mr_pr_requests":"끌어오기 또는 병합 요청에서 미리보기 배포를 활성화합니다.",
"debug_logs":"디버그 로그",
"enable_debug_log_during_build":"빌드 단계에서 디버그 로그를 활성화합니다.<br><span class='text-settings '>민감한 정보</span>가 표시되고 로그에 저장될 수 있습니다.",
"cant_activate_auto_deploy_without_repo":"이 리포지토리/분기에 대해 하나의 애플리케이션만 정의될 때까지 자동 배포를 활성화할 수 없습니다.",
"no_applications_found":"애플리케이션을 찾을 수 없습니다.",
"secret__batch_dot_env":".env 파일 붙여넣기",
"batch_secrets":"일괄 추가 비밀"
},
"general":"일반적인",
"database":{
"default_database":"기본 데이터베이스",
"generated_automatically_after_set_to_public":"public으로 설정 후 자동 생성",
"connection_string":"연결 문자열",
"set_public":"공개 설정",
"warning_database_public":"인터넷을 통해 데이터베이스에 연결할 수 있습니다. <br>이 경우 보안을 심각하게 생각하십시오!",
"change_append_only_mode":"추가 전용 모드 변경",
"warning_append_only":"백업에서 redis 데이터를 복원하려는 경우에 유용합니다.<br><span class=' text-white'>데이터베이스를 다시 시작해야 합니다.</span>",
"select_database_type":"데이터베이스 유형 선택",
"select_database_version":"데이터베이스 버전 선택",
"confirm_stop":"{{name}}을(를) 중지하시겠습니까?",
"stop_database":"중지",
"permission_denied_stop_database":"데이터베이스를 중지할 권한이 없습니다.",
"start_database":"시작",
"permission_denied_start_database":"데이터베이스를 시작할 권한이 없습니다.",
"delete_database":"삭제",
"permission_denied_delete_database":"데이터베이스를 삭제할 권한이 없습니다.",
"no_databases_found":"데이터베이스를 찾을 수 없습니다.",
"logs":"로그"
},
"destination":{
"delete_destination":"삭제",
"permission_denied_delete_destination":"이 목적지를 삭제할 권한이 없습니다.",
"add_to_coolify":"Coolify에 추가",
"coolify_proxy_stopped":"Coolify 프록시가 중지되었습니다!",
"coolify_proxy_started":"Coolify 프록시가 시작되었습니다!",
"confirm_restart_proxy":"프록시를 다시 시작하시겠습니까? 모든 것이 ~10초 안에 재구성됩니다.",
"coolify_proxy_restarting":"Coolify 프록시 다시 시작 중...",
"restarting_please_wait":"다시 시작 중입니다... 잠시만 기다려 주십시오...",
"force_restart_proxy":"강제 재시작 프록시",
"use_coolify_proxy":"Coolify 프록시를 사용하시겠습니까?",
"no_destination_found":"목적지를 찾을 수 없습니다",
"new_error_network_already_exists":"다른 팀에 대해 네트워크 {{network}}이(가) 이미 구성되었습니다!",
"new":{
"saving_and_configuring_proxy":"절약...",
"install_proxy":"그러면 수동 구성 없이 애플리케이션과 서비스에 액세스할 수 있도록 대상에 프록시가 설치됩니다(Docker에 권장됨).<br><br>데이터베이스에는 자체 프록시가 있습니다.",
"add_new_destination":"새 목적지 추가",
"predefined_destinations":"사전 정의된 목적지"
}
},
"sources":{
"local_docker":"로컬 도커",
"remote_docker":"원격 도커",
"organization_explainer":"조직을 Git 소스로 사용하려면 입력하십시오. 그렇지 않으면 사용자가 사용됩니다."
},
"source":{
"new":{
"git_source":"새 Git 소스 추가",
"official_providers":"공식 제공업체"
},
"no_git_sources_found":"git 소스를 찾을 수 없습니다.",
"delete_git_source":"삭제",
"permission_denied":"Git 소스를 삭제할 권한이 없습니다.",
"create_new_app":"새 {{name}} 앱 만들기",
"change_app_settings":"{{name}} 앱 설정 변경",
"install_repositories":"저장소 설치",
"application_id":"애플리케이션 ID",
"group_name":"그룹 이름",
"oauth_id":"인증 ID",
"oauth_id_explainer":"OAuth ID는 GitLab 애플리케이션의 고유 식별자입니다. <br>GitLab OAuth 애플리케이션의 <span class=' text-settings' >URL</span>에서 찾을 수 있습니다.",
"register_oauth_gitlab":"GitLab에 새 OAuth 애플리케이션 등록",
"gitlab":{
"self_hosted":"인스턴스 전체 애플리케이션(자체 호스팅)",
"user_owned":"사용자 소유 애플리케이션",
"group_owned":"그룹 소유 애플리케이션",
"gitlab_application_type":"GitLab 애플리케이션 유형",
"already_configured":"GitLab 앱이 이미 구성되어 있습니다."
},
"github":{
"redirecting":"Github으로 리디렉션 중..."
}
},
"services":{
"all_email_verified":"모든 이메일이 확인되었습니다. 지금 로그인할 수 있습니다.",
"generate_www_non_www_ssl":"www 및 non-www 모두에 대한 인증서를 생성합니다. <br>미리 <span class='text-settings'>두 DNS 항목</span>을 설정해야 합니다.<br><br>서비스를 다시 시작해야 합니다."
},
"service":{
"stop_service":"중지",
"permission_denied_stop_service":"서비스를 중지할 권한이 없습니다.",
"start_service":"시작",
"permission_denied_start_service":"서비스를 시작할 권한이 없습니다.",
"delete_service":"삭제",
"permission_denied_delete_service":"서비스를 삭제할 권한이 없습니다.",
"no_service":"서비스를 찾을 수 없습니다.",
"logs":"로그"
},
"setting":{
"change_language":"언어 변경",
"permission_denied":"이 작업을 수행할 권한이 없습니다. \\n관리자에게 권한 수정을 요청하세요.",
"domain_removed":"도메인이 삭제됨",
"ssl_explainer":"<span class='text-settings'>https</span>를 지정하면 Coolify는 https를 통해서만 액세스할 수 있습니다. SSL 인증서가 자동으로 생성됩니다.<br><span class='text-settings '>www</span>를 지정하면 Coolify가 www가 아닌 ​​곳에서 리디렉션(302)되거나 그 반대의 경우도 마찬가지입니다.<br><br ><span class='text-settings '>경고:</span> 이미 설정된 도메인을 변경하면 웹훅 및 기타 통합이 중단됩니다! 수동으로 업데이트해야 합니다.",
"must_remove_domain_before_changing":"이 설정을 변경하려면 먼저 도메인을 제거해야 합니다.",
"registration_allowed":"등록이 허용됩니까?",
"registration_allowed_explainer":"애플리케이션에 대한 추가 등록을 허용합니다. <br>최초 등록 후에는 꺼져 있습니다.",
"coolify_proxy_settings":"Coolify 프록시 설정",
"credential_stat_explainer":"<a class=\"text-white \" href=\"{{link}}\" target=\"_blank\">통계</a> 페이지에 대한 자격 증명입니다.",
"auto_update_enabled":"자동 업데이트가 활성화되었습니까?",
"auto_update_enabled_explainer":"Coolify에 대한 자동 업데이트를 활성화합니다. 실행 중인 빌드 프로세스가 없는 경우 배후에서 자동으로 수행됩니다.",
"generate_www_non_www_ssl":"www 및 non-www 모두에 대한 인증서를 생성합니다. <br>미리 <span class=' text-settings'>두 DNS 항목</span>을 설정해야 합니다.",
"is_dns_check_enabled":"DNS 확인이 활성화되었습니까?",
"is_dns_check_enabled_explainer":"SSL 인증서를 생성하기 전에 DNS 확인을 비활성화할 수 있습니다.<br><br>Coolify가 역방향 프록시 또는 터널 뒤에 있을 때 비활성화하는 것이 유용합니다."
},
"team":{
"pending_invitations":"대기 중인 초대",
"accept":"수용하다",
"delete":"삭제",
"member":"회원",
"root":"(뿌리)",
"invited_with_permissions":"<span class=\" text-rose-600\">{{permission}}</span> 권한으로 <span class=\" text-settings\">{{teamName}}</span>에 초대되었습니다.",
"members":"회원",
"root_team_explainer":"<span class='text-red-500 '>루트</span> 팀입니다. 즉, 이 그룹의 구성원은 인스턴스 전체 설정을 관리하고 Coolify의 모든 권한을 가질 수 있습니다(Linux의 루트 사용자와 같은 경우).",
"permission":"허가",
"you":"너",
"promote_to":"{{grade}}(으)로 승격",
"revoke_invitation":"초대 취소",
"pending_invitation":"대기 중인 초대",
"invite_new_member":"새 회원 초대",
"send_invitation":"초대장을 보내다",
"invite_only_register_explainer":"등록된 사용자만 초대할 수 있습니다.",
"admin":"관리자",
"read":"읽다"
}
}

View File

@ -0,0 +1,341 @@
{
"layout":{
"update_done":"Atualização completa.",
"wait_new_version_startup":"Aguardando a nova versão iniciar...",
"new_version":"Nova versão acessível. Recarregando...",
"switch_to_a_different_team":"Mudar para uma equipa diferente...",
"update_available":"Atualização disponível"
},
"error":{
"you_can_find_your_way_back":"Você pode encontrar o seu caminho de volta",
"here":"aqui",
"you_are_lost":"Ooops você está perdido! Mas não tenha medo!"
},
"index":{
"dashboard":"Painel",
"applications":"Formulários",
"destinations":"Destinos",
"git_sources":"Fontes Git",
"databases":"Bancos de dados",
"services":"Serviços",
"teams":"Equipes",
"not_implemented_yet":"Ainda não implementado",
"database":"Base de dados",
"settings":"Definições",
"global_settings":"Configurações globais",
"secret":"Segredo",
"team":"Equipe",
"logout":"Sair"
},
"login":{
"already_logged_in":"Já logado...",
"authenticating":"Autenticando...",
"login":"Conecte-se"
},
"forms":{
"password":"Senha",
"email":"Endereço de email",
"passwords_not_match":"As senhas não coincidem.",
"password_again":"Senha novamente",
"save":"Salvar",
"saving":"Salvando...",
"name":"Nome",
"value":"Valor",
"action":"Ações",
"is_required":"É necessário.",
"add":"Adicionar",
"set":"Definir",
"remove":"Remover",
"path":"Caminho",
"confirm_continue":"Tem certeza de continuar?",
"must_be_stopped_to_modify":"Deve ser parado para modificar.",
"port":"Porta",
"default":"predefinição",
"base_directory":"Diretório base",
"publish_directory":"Publicar diretório",
"generated_automatically_after_start":"Gerado automaticamente após o início",
"roots_password":"Senha do Root",
"root_user":"Usuário raiz",
"eg":"por exemplo",
"user":"Do utilizador",
"loading":"Carregando...",
"version":"Versão",
"host":"Hospedeiro",
"already_used_for":"<span class=\"text-red-500\">{{type}}</span> já usado para",
"configuration":"Configuração",
"engine":"Motor",
"network":"Rede",
"ip_address":"Endereço de IP",
"ssh_private_key":"Chave privada SSH",
"type":"Modelo",
"html_url":"URL HTML",
"api_url":"URL da API",
"organization":"Organização",
"new_password":"Nova Senha",
"super_secure_new_password":"Nova senha super segura",
"submit":"Enviar",
"default_email_address":"Endereço de e-mail padrão",
"default_password":"Senha padrão",
"username":"Nome de usuário",
"root_db_user":"Usuário raiz do banco de dados",
"root_db_password":"Senha do banco de dados raiz",
"api_port":"Porta API",
"verifying":"Verificando",
"verify_emails_without_smtp":"Verifique e-mails sem SMTP",
"extra_config":"Configuração extra",
"select_a_service":"Selecione um serviço",
"select_a_service_version":"Selecione uma versão do serviço",
"removing":"Removendo...",
"remove_domain":"Remover domínio",
"public_port_range":"Intervalo de portas públicas",
"public_port_range_explainer":"Portas usadas para expor bancos de dados/serviços/serviços internos.<br> Adicione-os ao seu firewall (se aplicável).<br><br>Você pode especificar um intervalo de portas, por exemplo: <span class='text-settings '> 9000-9100</span>",
"no_actions_available":"Nenhuma ação disponível",
"admin_api_key":"Chave de API de administrador"
},
"register":{
"register":"Registro",
"registering":"Registrando...",
"first_user":"Você está registrando o primeiro usuário. Será o administrador da sua instância Coolify."
},
"reset":{
"reset_password":"Redefinir",
"invalid_secret_key":"Chave secreta inválida.",
"secret_key":"Chave secreta",
"find_path_secret_key":"Você pode encontrá-lo em ~/coolify/.env (COOLIFY_SECRET_KEY)"
},
"application":{
"configuration":{
"buildpack":{
"choose_this_one":"Escolha este..."
},
"branch_already_in_use":"Esta ramificação já é usada por outro aplicativo. Os webhooks não funcionarão neste caso para ambos os aplicativos. Tem certeza de que deseja usá-lo?",
"no_repositories_configured":"Nenhum repositório configurado para seu aplicativo Git.",
"configure_it_now":"Configure agora",
"loading_repositories":"Carregando repositórios...",
"select_a_repository":"Selecione um repositório",
"loading_branches":"Carregando ramos...",
"select_a_repository_first":"Selecione um repositório primeiro",
"select_a_branch":"Selecione uma filial",
"loading_groups":"Carregando grupos...",
"select_a_group":"Selecione um grupo",
"loading_projects":"Carregando projetos...",
"select_a_project":"Por favor selecione um projeto",
"no_projects_found":"Nenhum projeto encontrado",
"no_branches_found":"Nenhuma ramificação encontrada",
"configure_build_pack":"Configurar pacote de compilação",
"scanning_repository_suggest_build_pack":"Verificando repositório para sugerir um pacote de compilação para você...",
"found_lock_file":"Arquivo de bloqueio encontrado para {{packageManager}}.<br>Usando-o para comandos de comandos predefinidos.",
"configure_destination":"Configurar destino",
"no_configurable_destination":"Nenhum destino configurável encontrado",
"select_a_repository_project":"Selecione um Repositório/Projeto",
"select_a_git_source":"Selecione uma fonte Git",
"no_configurable_git":"Nenhuma fonte Git configurável encontrada",
"configuration_missing":"Configuração ausente"
},
"build":{
"queued_waiting_exec":"Na fila e aguardando execução.",
"build_logs_of":"Construir registros de",
"running":"Corrida",
"queued":"Enfileiradas",
"finished_in":"Terminando em",
"load_more":"Carregue mais",
"no_logs":"Nenhum registro encontrado",
"waiting_logs":"Aguardando os logs..."
},
"preview":{
"need_during_buildtime":"Precisa durante o tempo de construção?",
"setup_secret_app_first":"Você pode adicionar segredos a implantações de PR/MR. Por favor, adicione segredos ao aplicativo primeiro. <br>Útil para criar ambientes de <span class='text-settings '>preparação</span>.",
"values_overwriting_app_secrets":"Esses valores substituem os segredos do aplicativo em implantações PR/MR. Útil para criar ambientes de <span class='text-settings '>preparação</span>.",
"redeploy":"Reimplantar",
"no_previews_available":"Nenhuma visualização disponível"
},
"secrets":{
"secret_saved":"Segredo salvo.",
"use_isbuildsecret":"Use isBuildSecret",
"secrets_for":"Segredos para"
},
"storage":{
"path_is_required":"O caminho é obrigatório.",
"storage_saved":"Armazenamento salvo.",
"storage_updated":"Armazenamento atualizado.",
"storage_deleted":"Armazenamento excluído.",
"persistent_storage_explainer":"Você pode especificar qualquer pasta que deseja que seja persistente nas implantações.<br><span class='text-settings '>/example</span> significa que ela preservará <span class='text-settings '>/app/ example</span> no contêiner, pois <span class='text-settings '>/app</span> é <span class='text-settings '>o diretório raiz</span> para seu aplicativo.<br> <br>Isto é útil para armazenar dados como um <span class='text-settings '>banco de dados (SQLite)</span> ou um <span class='text-settings '>cache</span>."
},
"deployment_queued":"Implantação em fila.",
"confirm_to_delete":"Tem certeza de que deseja excluir '{{name}}'?",
"stop_application":"Parar aplicativo",
"permission_denied_stop_application":"Você não tem permissão para parar o aplicativo.",
"rebuild_application":"Reconstruir aplicativo",
"permission_denied_rebuild_application":"Você não tem permissão para reconstruir o aplicativo.",
"build_and_start_application":"Implantar",
"permission_denied_build_and_start_application":"Você não tem permissão para implantar o aplicativo.",
"configurations":"Configurações",
"secret":"Segredos",
"persistent_storage":"Armazenamento persistente",
"previews":"Visualizações",
"logs":"Registros de aplicativos",
"build_logs":"Construir registros",
"delete_application":"Excluir",
"permission_denied_delete_application":"Você não tem permissão para excluir este aplicativo",
"domain_already_in_use":"O domínio {{domain}} já está em uso.",
"dns_not_set_error":"DNS não definido corretamente ou propagado para {{domain}}.<br><br>Verifique suas configurações de DNS.",
"domain_required":"O domínio é obrigatório.",
"settings_saved":"Configuração salva.",
"dns_not_set_partial_error":"DNS não definido",
"domain_not_valid":"Não foi possível resolver o domínio ou não está apontando para o endereço IP do servidor.<br><br>Verifique sua configuração de DNS e tente novamente.",
"git_source":"Fonte do Git",
"git_repository":"Repositório Git",
"build_pack":"Pacote de compilação",
"base_image":"Imagem de implantação",
"base_image_explainer":"Imagem que será usada para a implantação.",
"base_build_image":"Construir imagem",
"base_build_image_explainer":"Imagem que será usada durante o processo de compilação.",
"destination":"Destino",
"application":"Inscrição",
"url_fqdn":"URL (FQDN)",
"domain_fqdn":"Domínio (FQDN)",
"https_explainer":"Se você especificar <span class='text-settings '>https</span>, o aplicativo será acessível apenas por https. O certificado SSL será gerado para você.<br>Se você especificar <span class='text-settings '>www</span>, o aplicativo será redirecionado (302) de não www e vice-versa.<br>< br>Para modificar o domínio, você deve primeiro parar o aplicativo.<br><br><span class='text-white '>Você deve configurar seu DNS para apontar para o IP do servidor com antecedência.</span>",
"ssl_www_and_non_www":"Gerar SSL para www e não www?",
"ssl_explainer":"Ele irá gerar certificados para www e não www. <br>Você precisa ter <span class=' text-settings'>ambas as entradas DNS</span> definidas com antecedência.<br><br>Útil se você espera receber visitantes em ambas.",
"install_command":"Comando de instalação",
"build_command":"Comando de compilação",
"start_command":"Comando Iniciar",
"directory_to_use_explainer":"Diretório a ser usado como base para todos os comandos.<br>Pode ser útil com <span class='text-settings '>monorepos</span>.",
"publish_directory_explainer":"Diretório contendo todos os ativos para implantação. <br> Por exemplo: <span class='text-settings '>dist</span>,<span class='text-settings '>_site</span> ou <span class='text-settings '>public< /span>.",
"features":"Características",
"enable_automatic_deployment":"Ativar implantação automática",
"enable_auto_deploy_webhooks":"Habilite a implantação automática por meio de webhooks.",
"enable_mr_pr_previews":"Ativar visualizações de MR/PR",
"expose_a_port":"Expor uma porta",
"enable_preview_deploy_mr_pr_requests":"Habilite implantações de visualização de solicitações de pull ou mesclagem.",
"debug_logs":"Registros de depuração",
"enable_debug_log_during_build":"Ative os registros de depuração durante a fase de compilação.<br><span class='text-settings '>Informações confidenciais</span> podem ser visíveis e salvas nos registros.",
"cant_activate_auto_deploy_without_repo":"Não é possível ativar implantações automáticas até que apenas um aplicativo seja definido para este repositório/ramificação.",
"no_applications_found":"Nenhum aplicativo encontrado",
"secret__batch_dot_env":"Colar arquivo .env",
"batch_secrets":"Adicionar segredos em lote"
},
"general":"Em geral",
"database":{
"default_database":"Banco de dados padrão",
"generated_automatically_after_set_to_public":"Gerado automaticamente após definido como público",
"connection_string":"Cadeia de conexão",
"set_public":"Defina-o como público",
"warning_database_public":"Seu banco de dados estará acessível pela internet. <br>Leve a segurança a sério neste caso!",
"change_append_only_mode":"Alterar o modo somente anexar",
"warning_append_only":"Útil se você deseja restaurar dados redis de um backup.<br><span class=' text-white'>É necessário reiniciar o banco de dados.</span>",
"select_database_type":"Selecione um tipo de banco de dados",
"select_database_version":"Selecione uma versão do banco de dados",
"confirm_stop":"Tem certeza de que deseja parar {{name}}?",
"stop_database":"Pare",
"permission_denied_stop_database":"Você não tem permissão para parar o banco de dados.",
"start_database":"Começar",
"permission_denied_start_database":"Você não tem permissão para iniciar o banco de dados.",
"delete_database":"Excluir",
"permission_denied_delete_database":"Você não tem permissão para excluir um banco de dados",
"no_databases_found":"Nenhum banco de dados encontrado",
"logs":"Histórico"
},
"destination":{
"delete_destination":"Excluir",
"permission_denied_delete_destination":"Você não tem permissão para excluir este destino",
"add_to_coolify":"Adicionar ao Coolify",
"coolify_proxy_stopped":"Coolify Proxy parou!",
"coolify_proxy_started":"Coolify Proxy iniciado!",
"confirm_restart_proxy":"Tem certeza de que deseja reiniciar o proxy? Tudo será reconfigurado em ~10 segundos.",
"coolify_proxy_restarting":"Coolify Proxy reiniciando...",
"restarting_please_wait":"Reiniciando... aguarde...",
"force_restart_proxy":"Forçar reinicialização do proxy",
"use_coolify_proxy":"Usar Coolify Proxy?",
"no_destination_found":"Nenhum destino encontrado",
"new_error_network_already_exists":"Rede {{network}} já configurada para outra equipe!",
"new":{
"saving_and_configuring_proxy":"Salvando...",
"install_proxy":"Isso instalará um proxy no destino para permitir que você acesse seus aplicativos e serviços sem qualquer configuração manual (recomendado para o Docker).<br><br>Os bancos de dados terão seu próprio proxy.",
"add_new_destination":"Adicionar novo destino",
"predefined_destinations":"Destinos predefinidos"
}
},
"sources":{
"local_docker":"Docker local",
"remote_docker":"Docker remoto",
"organization_explainer":"Preencha-o se quiser usar o de uma organização como seu Git Source. Caso contrário, seu usuário será usado."
},
"source":{
"new":{
"git_source":"Adicionar nova fonte Git",
"official_providers":"Fornecedores oficiais"
},
"no_git_sources_found":"Nenhuma fonte git encontrada",
"delete_git_source":"Excluir",
"permission_denied":"Você não tem permissão para excluir uma fonte Git",
"create_new_app":"Criar novo aplicativo {{name}}",
"change_app_settings":"Alterar {{name}} configurações do aplicativo",
"install_repositories":"Instalar repositórios",
"application_id":"ID do aplicativo",
"group_name":"Nome do grupo",
"oauth_id":"ID OAuth",
"oauth_id_explainer":"O OAuth ID é o identificador exclusivo do aplicativo GitLab. <br>Você pode encontrá-lo <span class=' text-settings' >no URL</span> do seu aplicativo GitLab OAuth.",
"register_oauth_gitlab":"Registre um novo aplicativo OAuth no GitLab",
"gitlab":{
"self_hosted":"Aplicativo em toda a instância (auto-hospedado)",
"user_owned":"Aplicativo de propriedade do usuário",
"group_owned":"Aplicativo de propriedade do grupo",
"gitlab_application_type":"Tipo de aplicativo GitLab",
"already_configured":"O aplicativo GitLab já está configurado."
},
"github":{
"redirecting":"Redirecionando para o Github..."
}
},
"services":{
"all_email_verified":"Todos os e-mails são verificados. Você pode entrar agora.",
"generate_www_non_www_ssl":"Ele irá gerar certificados para www e não www. <br>Você precisa ter <span class='text-settings'>ambas as entradas DNS</span> definidas com antecedência.<br><br>O serviço precisa ser reiniciado."
},
"service":{
"stop_service":"Pare",
"permission_denied_stop_service":"Você não tem permissão para interromper o serviço.",
"start_service":"Começar",
"permission_denied_start_service":"Você não tem permissão para iniciar o serviço.",
"delete_service":"Excluir",
"permission_denied_delete_service":"Você não tem permissão para excluir um serviço.",
"no_service":"Nenhum serviço encontrado",
"logs":"Histórico"
},
"setting":{
"change_language":"Mudar idioma",
"permission_denied":"Você não tem permissão para fazer isso. \\nPeça a um administrador para modificar suas permissões.",
"domain_removed":"Domínio removido",
"ssl_explainer":"Se você especificar <span class='text-settings'>https</span>, o Coolify será acessível apenas por https. O certificado SSL será gerado para você.<br>Se você especificar <span class='text-settings '>www</span>, Coolify será redirecionado (302) de não www e vice-versa.<br><br ><span class='text-settings '>AVISO:</span> Se você alterar um domínio já definido, isso interromperá webhooks e outras integrações! Você precisa atualizá-los manualmente.",
"must_remove_domain_before_changing":"Deve remover o domínio antes de alterar esta configuração.",
"registration_allowed":"Registro permitido?",
"registration_allowed_explainer":"Permitir mais registros no aplicativo. <br>É desligado após o primeiro registro.",
"coolify_proxy_settings":"Configurações de proxy do Coolify",
"credential_stat_explainer":"Credenciais para a página de <a class=\"text-white \" href=\"{{link}}\" target=\"_blank\">estatísticas</a>.",
"auto_update_enabled":"Atualização automática habilitada?",
"auto_update_enabled_explainer":"Habilite atualizações automáticas para Coolify. Isso será feito automaticamente nos bastidores, se não houver nenhum processo de compilação em execução.",
"generate_www_non_www_ssl":"Ele irá gerar certificados para www e não www. <br>Você precisa ter <span class=' text-settings'>ambas as entradas de DNS</span> configuradas antecipadamente.",
"is_dns_check_enabled":"Verificação de DNS habilitada?",
"is_dns_check_enabled_explainer":"Você pode desabilitar a verificação de DNS antes de criar certificados SSL.<br><br>Desligá-la é útil quando o Coolify está atrás de um proxy reverso ou túnel."
},
"team":{
"pending_invitations":"Convites pendentes",
"accept":"Aceitar",
"delete":"Excluir",
"member":"membros)",
"root":"(raiz)",
"invited_with_permissions":"Convidado para <span class=\" text-settings\">{{teamName}}</span> com permissão <span class=\" text-rose-600\">{{permission}}</span>.",
"members":"Membros",
"root_team_explainer":"Esta é a equipe <span class='text-red-500 '>raiz</span>. Isso significa que os membros deste grupo podem gerenciar as configurações de toda a instância e ter todos os privilégios no Coolify (imagine como usuário root no Linux).",
"permission":"Permissão",
"you":"Você",
"promote_to":"Promover para {{grade}}",
"revoke_invitation":"Revogar convite",
"pending_invitation":"Convite pendente",
"invite_new_member":"Convidar novo membro",
"send_invitation":"Enviar convite",
"invite_only_register_explainer":"Você só pode convidar usuários registrados.",
"admin":"Administrador",
"read":"Ler"
}
}

View File

@ -1,11 +1,18 @@
import i18n from 'sveltekit-i18n';
import { derived, writable } from "svelte/store";
import lang from './lang.json';
export let currentLocale = writable("en");
export let debugTranslation = writable(false);
/** @type {import('sveltekit-i18n').Config} */
export const config = {
fallbackLocale: 'en',
translations: {
en: { lang },
es: { lang },
pt: { lang },
ko: { lang },
fr: { lang }
},
loaders: [
@ -14,12 +21,27 @@ export const config = {
key: '',
loader: async () => (await import('./locales/en.json')).default
},
{
locale: 'es',
key: '',
loader: async () => (await import('./locales/es.json')).default
},
{
locale: 'pt',
key: '',
loader: async () => (await import('./locales/pt.json')).default
},
{
locale: 'fr',
key: '',
loader: async () => (await import('./locales/fr.json')).default
},
{
locale: 'ko',
key: '',
loader: async () => (await import('./locales/ko.json')).default
}
]
};
export const { t, locales, locale, loadTranslations } = new i18n(config);
export const { t, locales, locale, loadTranslations } = new i18n(config);

View File

@ -95,6 +95,7 @@
import Toasts from '$lib/components/Toasts.svelte';
import Tooltip from '$lib/components/Tooltip.svelte';
import { onMount } from 'svelte';
import LocalePicker from '$lib/components/LocalePicker.svelte';
if (userId) $appSession.userId = userId;
if (teamId) $appSession.teamId = teamId;
@ -292,6 +293,9 @@
<path d="M7 12h14l-3 -3m0 6l3 -3" />
</svg>
</div>
<div class="lg:block">
<LocalePicker/>
</div>
<div
class="w-full text-center font-bold text-stone-400 hover:bg-coolgray-200 hover:text-white"
>
@ -311,19 +315,22 @@
{/if}
{/if}
<div
class="navbar lg:hidden space-x-2 flex flex-row items-center bg-coollabs"
class="navbar lg:hidden space-x-2 flex flex-row justify-between bg-coollabs"
class:hidden={!$appSession.userId}
>
<label for="main-drawer" class="drawer-button btn btn-square btn-ghost flex-col">
<span class="burger bg-white" />
<span class="burger bg-white" />
<span class="burger bg-white" />
</label>
<div class="prose flex flex-row justify-between space-x-1 w-full items-center pr-3">
{#if !$appSession.whiteLabeled}
<h3 class="mb-0 text-white">Coolify</h3>
{/if}
<div>
<label for="main-drawer" class="drawer-button btn btn-square btn-ghost flex-col">
<span class="burger bg-white" />
<span class="burger bg-white" />
<span class="burger bg-white" />
</label>
<div class="prose flex flex-row justify-between space-x-1 w-full items-center pr-3">
{#if !$appSession.whiteLabeled}
<h3 class="mb-0 text-white">Coolify</h3>
{/if}
</div>
</div>
<LocalePicker/>
</div>
<main>
<div class={$appSession.userId ? 'lg:pl-16' : null}>

View File

@ -0,0 +1,61 @@
## Helping with Translations
All interface translations can be found inside the folder:
📁 `apps/ui/src/lib/locales`
> The base and fallback language is 🇬🇧 `en`.
---
## 🖐️ Manual First steps
To start translating to a new language:
1. create `apps/ui/src/lib/locales/jp.json` (change `jp` to chosen language)
2. copy the contents from `apps/ui/src/lib/locales/en.json` to your new json.
2. edit `apps/ui/src/lib/translations.ts`
* 2.1. add `jp: { lang },` inside `translations:`
* 2.2. duplicate the full `en` locale hash inside `loaders:`, change `en` to `jp`(chosen locale)
Congratulations! You are now ready to start translating
## 🤖 Automated First Steps
We can ease the translation using [MoloLab Json Translator](https://github.com/mololab/json-translator):
```sh
# Install Json Tranlator
npm i -g @parvineyvazov/json-translator
# Run this command to create a new translation:
jsontt apps/ui/src/lib/locales/en.json
# Example Result:
jsontt apps/ui/src/lib/locales/en.json
? From which source? #ArgosTranslate
? From which language? #Automatic
? To which language | languages? #Spanish
✔ DONE! 287 of 287 translated.
All files are created!
You can find them in the same folder as the original JSON file.
For Spanish --> es.json created.
```
## Currently supported locales
- [x] en
- [x] fr
- [x] pt (autogenerated - needs review)
- [x] es (autogenerated - needs review)
- [x] ko (autogenerated - needs review)
## ☑️ Todo:
- [ ] Write a script to
- sync missing keys from `en` to other locales;
- remove deprecated keys from all non `en` locales;
- [ ] Sveltekit-i18n instructs to create one locale file per path, maybe we should review that soon.
- [ ] Improve the aesthetics of `<LocalePicker/>`
- [ ] Make selected locale persistent (in session or cookie)