Skip to content
Snippets Groups Projects
Commit 051600cd authored by kwadronaut's avatar kwadronaut :speech_balloon: Committed by jkito
Browse files

Update transifex config to remove unneeded language mappings

android, qt, tranxifex all have different ideas on how languages
and locales should pose themselves. It is not relevant for  most
languages where we only have one locale, like Turkish. But if we
have different ones or different scripts, we need to tell  while
downloading updates where to look for them.

this updates the internationalization doc with explanation about
transifex language mapping and removes duplicate language files

solves #888
parent 81740a9f
No related branches found
No related tags found
1 merge request!240Update transifex config and rm duplicate languages (translation files)
Pipeline #232792 passed
[main]
host = https://rest.api.transifex.com
lang_map = es_AR:es-rAR, fa_IR:fa-rIR, kn_IN:kn-rIN, pt_BR:pt-rBR, pt_PT:pt-rPT, zh_CN:zh-rCN, zh_TW:zh-rTW, nb:no
lang_map = fa_IR: fa, kn_IN: kn
[o:otf:p:bitmask:r:bitmask-desktop]
source_file = gui/i18n/base.ts
......
......@@ -23,6 +23,14 @@ If you want to add a new language you can:
API_TOKEN='xxxxxxxxxxx' tx pull -a
```
Sometimes language codes are not what you expect. This applies for missing languages as
well. When you check in transifex, you can also see what is used there, for example fa_IR
or es_AR, es or es_CU. When you want to use some language in general instead of some
regional version you can use the mapping in the .tx/config. Examples: fa_IR maps to fa.
For this project we expect files to be like main_es_AR.ts or main_pl.ts See
https://doc.qt.io/QtForMCUs-2.5/qtul-cmake-getting-started.html
Testing the translations
------------------------
......
<?xml version="1.0" ?><!DOCTYPE TS><TS version="2.1" language="es_AR">
<context>
<name>About</name>
<message>
<location filename="../components/About.qml" line="9"/>
<source>About</source>
<translation>Acerca de</translation>
</message>
<message>
<location filename="../components/About.qml" line="80"/>
<source>&lt;p&gt;This service is paid for entirely by donations from users like you. &lt;a href=&quot;%1&quot;&gt;Please donate&lt;/a&gt;.&lt;/p&gt;</source>
<extracomment>donation text of the about dialog</extracomment>
<translation>&lt;p&gt;El costo de este servicio se paga con donaciones de usuarios como vos. &lt;a href=&quot;%1&quot;&gt;Por favor, doná&lt;/a&gt;.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../components/About.qml" line="103"/>
<source>%1 version:
%2</source>
<extracomment>screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png %1 -&gt; application name %2 -&gt; version string</extracomment>
<translation>Versión de %1:
%2</translation>
</message>
</context>
<context>
<name>Footer</name>
<message>
<location filename="../components/Footer.qml" line="180"/>
<source>Recommended</source>
<translation>Recomendado</translation>
</message>
</context>
<context>
<name>Help</name>
<message>
<location filename="../components/Help.qml" line="7"/>
<source>Help</source>
<translation>Ayuda</translation>
</message>
<message>
<location filename="../components/Help.qml" line="20"/>
<source>Troubleshooting and support</source>
<translation>Resolución de problemas y soporte</translation>
</message>
<message>
<location filename="../components/Help.qml" line="31"/>
<source>Report a bug</source>
<translation>Reportar un fallo</translation>
</message>
<message>
<location filename="../components/Help.qml" line="42"/>
<source>How to uninstall</source>
<translation>Cómo desinstalar</translation>
</message>
</context>
<context>
<name>InitErrors</name>
<message>
<location filename="../components/InitErrors.qml" line="31"/>
<source>Could not find helpers. Please check your installation</source>
<translation>No se pudieron encontrar los programas auxiliares. Por favor, comprobá tu instalación</translation>
</message>
<message>
<location filename="../components/InitErrors.qml" line="44"/>
<source>Could not find polkit agent.</source>
<translation>No se pudo encontrar el agente polkit.</translation>
</message>
</context>
<context>
<name>Locations</name>
<message>
<location filename="../components/Locations.qml" line="21"/>
<source>Select Location</source>
<translation>Elegí la ubicación</translation>
</message>
<message>
<location filename="../components/Locations.qml" line="27"/>
<source>Automatically use best connection</source>
<extracomment>this is in the radio button for the auto selection</extracomment>
<translation>Usar la mejor conexión automáticamente</translation>
</message>
<message>
<location filename="../components/Locations.qml" line="29"/>
<source>Manually select</source>
<extracomment>Location Selection: label for radio buttons that selects manually</extracomment>
<translation>Seleccionado manualmente</translation>
</message>
<message>
<location filename="../components/Locations.qml" line="31"/>
<source>Switching gateway</source>
<extracomment>A little display to signal that the clicked gateway is being switched to</extracomment>
<translation>Cambiando de gateway...</translation>
</message>
<message>
<location filename="../components/Locations.qml" line="33"/>
<source>Only locations with bridges</source>
<extracomment>Subtitle to explain that only bridge locations are shown in the selector</extracomment>
<translation>Sólo ubicaciones con puentes</translation>
</message>
<message>
<location filename="../components/Locations.qml" line="65"/>
<source>Recommended</source>
<extracomment>Location Selection: label for radio button that selects automatically</extracomment>
<translation>Recomendado</translation>
</message>
</context>
<context>
<name>MainView</name>
<message>
<location filename="../components/MainView.qml" line="43"/>
<location filename="../components/MainView.qml" line="66"/>
<source>Donate</source>
<translation>Donar</translation>
</message>
<message>
<location filename="../components/MainView.qml" line="59"/>
<source>Preferences</source>
<translation>Preferencias</translation>
</message>
<message>
<location filename="../components/MainView.qml" line="73"/>
<source>Help</source>
<translation>Ayuda</translation>
</message>
<message>
<location filename="../components/MainView.qml" line="80"/>
<source>About</source>
<translation>Acerca de</translation>
</message>
<message>
<location filename="../components/MainView.qml" line="87"/>
<source>Quit</source>
<translation>Quitar</translation>
</message>
<message>
<location filename="../components/MainView.qml" line="111"/>
<source>Please donate!</source>
<translation>¡Se agradece una donación!</translation>
</message>
<message>
<location filename="../components/MainView.qml" line="125"/>
<source>This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now?</source>
<translation>Este servicio se paga por completo con donaciones de usuarios como vos. Mantener la VPN funcionando cuesta unos USD 5 por persona y por mes, pero cada monedita vale. ¿Querés hacer una donación?</translation>
</message>
</context>
<context>
<name>Preferences</name>
<message>
<location filename="../components/Preferences.qml" line="11"/>
<source>Preferences</source>
<translation>Preferencias</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="55"/>
<source>Turn off the VPN to make changes</source>
<translation>Apagá la VPN para hacer cambios</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="71"/>
<source>Language</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../components/Preferences.qml" line="105"/>
<source>Censorship circumvention</source>
<translation>Evasión de la censura</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="113"/>
<source>These techniques can bypass censorship, but are slower. Use them only when needed.</source>
<translation>Estas técnicas pueden evitar la censura, pero son más lentas. Activalas sólo cuando lo necesites.</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="127"/>
<source>Use obfs4 bridges</source>
<translation>Usar puentes obfs4</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="153"/>
<source>Traffic is obfuscated to bypass blocks</source>
<translation>Ofusca el tráfico para saltar bloqueos</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="167"/>
<source>Use Snowflake</source>
<translation>Usar Snowflake</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="182"/>
<source>Snowflake needs Tor installed in your system</source>
<translation>Snowflake necesita Tor instalado en el sistema</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="195"/>
<source>Transport</source>
<translation>Transporte</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="203"/>
<source>UDP can make the VPN faster. It might be blocked on some networks.</source>
<translation>UDP puede hacer a la la VPN más rápida. Algunas redes pueden estar bloqueándolo.</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="216"/>
<source>Use UDP if available</source>
<translation>Usar UDP si está disponible</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="231"/>
<source>KCP might work when UDP is blocked on some networks.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../components/Preferences.qml" line="244"/>
<source>Use KCP if available</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>Splash</name>
<message>
<location filename="../components/Splash.qml" line="101"/>
<source>There is a newer version available. </source>
<translation>Hay una versión más nueva disponible.</translation>
</message>
<message>
<location filename="../components/Splash.qml" line="101"/>
<source>Make sure to &lt;a href=&quot;https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md&quot;&gt;uninstall&lt;/a&gt; the previous one before running the new installer.</source>
<translation>Por favor, &lt;a href=&quot;https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md&quot;&gt;desistalá&lt;/a&gt;la versión anterior antes de ejecutar el nuevo instalador.</translation>
</message>
<message>
<location filename="../components/Splash.qml" line="105"/>
<source>UPGRADE NOW</source>
<translation>ACTUALIZAR AHORA</translation>
</message>
</context>
<context>
<name>StatusBox</name>
<message>
<location filename="../components/StatusBox.qml" line="78"/>
<source>This can take several minutes</source>
<translation>Esto puede llevar varios minutos</translation>
</message>
</context>
<context>
<name>Systray</name>
<message>
<location filename="../components/Systray.qml" line="16"/>
<source>Checking status</source>
<translation>Comprobando estado...</translation>
</message>
<message>
<location filename="../components/Systray.qml" line="36"/>
<source>Donate</source>
<translation>Donar</translation>
</message>
<message>
<location filename="../components/Systray.qml" line="45"/>
<source>Hide</source>
<extracomment>Part of the systray menu; show or hide the main app window</extracomment>
<translation>Ocultar</translation>
</message>
<message>
<location filename="../components/Systray.qml" line="45"/>
<source>Show</source>
<translation>Mostrar</translation>
</message>
<message>
<location filename="../components/Systray.qml" line="57"/>
<source>Quit</source>
<extracomment>Part of the systray menu; quits the application</extracomment>
<translation>Quitar</translation>
</message>
<message>
<location filename="../components/Systray.qml" line="74"/>
<source>Connect to</source>
<translation>Conectar a</translation>
</message>
<message>
<location filename="../components/Systray.qml" line="76"/>
<source>Connect</source>
<translation>Conectar</translation>
</message>
<message>
<location filename="../components/Systray.qml" line="79"/>
<source>Disconnect</source>
<translation>Desconectar</translation>
</message>
</context>
<context>
<name>VPNState</name>
<message>
<location filename="../components/VPNState.qml" line="26"/>
<source>Setting up</source>
<translation>Estableciendo</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="51"/>
<location filename="../components/VPNState.qml" line="153"/>
<source>Connecting</source>
<translation>Conectando</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="82"/>
<source>Unsecured
Connection</source>
<translation>Conexión
Insegura</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="117"/>
<source>Secured
Connection</source>
<translation>Conexión
Segura</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="265"/>
<source>%1 off</source>
<extracomment>%1 -&gt; application name</extracomment>
<translation>%1 desactivado</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="265"/>
<source>off</source>
<translation>desactivado</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="268"/>
<source>%1 on</source>
<extracomment>%1 -&gt; application name</extracomment>
<translation>%1 conectado</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="271"/>
<source>Connecting to %1</source>
<extracomment>%1 -&gt; application name</extracomment>
<translation>Conectando a %1</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="274"/>
<source>Stopping %1</source>
<extracomment>%1 -&gt; application name</extracomment>
<translation>Deteniendo %1</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="277"/>
<source>%1 blocking internet</source>
<extracomment>%1 -&gt; application name</extracomment>
<translation>%1 bloqueando Internet</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="284"/>
<source>pluggable transport connection</source>
<translation>conexión de transporte conectable</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="286"/>
<source>connection done</source>
<translation>conexión realizada</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="288"/>
<source>doing handshake</source>
<translation>haciendo negociación</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="290"/>
<source>handshake done</source>
<translation>negociación realizada</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="292"/>
<source>creating one-hop connection</source>
<translation>creando conexión de un salto</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="294"/>
<source>requesting status</source>
<translation>solicitando estado</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="296"/>
<source>loading status</source>
<translation>cargando estado</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="298"/>
<source>loading keys</source>
<translation>cargando claves</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="300"/>
<source>requesting descriptors</source>
<translation>solicitando descriptores</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="302"/>
<source>loading descriptors</source>
<translation>cargando descriptores</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="304"/>
<source>creating circuit</source>
<translation>creando circuito</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="306"/>
<source>done</source>
<translation>hecho</translation>
</message>
</context>
<context>
<name>VPNSwitch</name>
<message>
<location filename="../qml/VPNSwitch.qml" line="10"/>
<source/>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>main</name>
<message>
<location filename="../main.cpp" line="140"/>
<source>: a fast and secure VPN. Powered by Bitmask.</source>
<translation>: una VPN rápida y segura. Potenciada por Bitmask.</translation>
</message>
<message>
<location filename="../main.cpp" line="147"/>
<source>Do not show the systray icon (useful together with Gnome Shell extension, or to control VPN by other means).</source>
<translation>No mostrar el icono en la bandeja del sistema (útil en conjunto con las extensiones de Intérprete de Comandos de Gnome, o para controlar la VPN por otros medios).</translation>
</message>
<message>
<location filename="../main.cpp" line="154"/>
<source>Enable Web API.</source>
<translation>Habilitar API Web.</translation>
</message>
<message>
<location filename="../main.cpp" line="160"/>
<source>Install helpers (Linux only, requires sudo).</source>
<translation>Instalar programas auxiliares (sólo en Linux, requiere sudo).</translation>
</message>
<message>
<location filename="../main.cpp" line="166"/>
<source>Use obfs4 to obfuscate the traffic, if available in the provider.</source>
<translation>Usar obfs4 para ofuscar el tráfico, si está disponible en el proveedor.</translation>
</message>
<message>
<location filename="../main.cpp" line="172"/>
<source>Enable autostart.</source>
<translation>Habilitar autoarranque.</translation>
</message>
<message>
<location filename="../main.cpp" line="177"/>
<source>Web API port (default: 8080)</source>
<translation>Puerto para la API Web (por defecto: 8080)</translation>
</message>
<message>
<location filename="../main.cpp" line="180"/>
<source>Start the VPN, either &apos;on&apos; or &apos;off&apos;.</source>
<translation>Iniciar la VPN, &apos;activada&apos; o bien, &apos;deactivada&apos;.</translation>
</message>
</context>
</TS>
\ No newline at end of file
File moved
File moved
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="pt_BR">
<context>
<name>About</name>
<message>
<location filename="../components/About.qml" line="9"/>
<source>About</source>
<translation>Sobre</translation>
</message>
<message>
<location filename="../components/About.qml" line="80"/>
<source>&lt;p&gt;This service is paid for entirely by donations from users like you. &lt;a href=&quot;%1&quot;&gt;Please donate&lt;/a&gt;.&lt;/p&gt;</source>
<extracomment>donation text of the about dialog</extracomment>
<translation>&lt;p&gt;Este serviço é inteiramente financiado por doações de pessoas como você. &lt;a href=&quot;%1&quot;&gt;Por favor, faça uma doação&lt;/a&gt;.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../components/About.qml" line="103"/>
<source>%1 version:
%2</source>
<extracomment>screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png %1 -&gt; application name %2 -&gt; version string</extracomment>
<translation>%1 versão:
$2</translation>
</message>
</context>
<context>
<name>Footer</name>
<message>
<location filename="../components/Footer.qml" line="180"/>
<source>Recommended</source>
<translation>Recomendado</translation>
</message>
</context>
<context>
<name>Help</name>
<message>
<location filename="../components/Help.qml" line="7"/>
<source>Help</source>
<translation>Ajuda</translation>
</message>
<message>
<location filename="../components/Help.qml" line="20"/>
<source>Troubleshooting and support</source>
<translation>Resolução de problemas e suporte</translation>
</message>
<message>
<location filename="../components/Help.qml" line="31"/>
<source>Report a bug</source>
<translation>Reportar um bug</translation>
</message>
<message>
<location filename="../components/Help.qml" line="42"/>
<source>How to uninstall</source>
<translation>Como desinstalar</translation>
</message>
</context>
<context>
<name>InitErrors</name>
<message>
<location filename="../components/InitErrors.qml" line="31"/>
<source>Could not find helpers. Please check your installation</source>
<translation>Não foi possível encontrar &quot;helpers&quot;. Por favor, verifique sua instalação</translation>
</message>
<message>
<location filename="../components/InitErrors.qml" line="44"/>
<source>Could not find polkit agent.</source>
<translation>Não foi possível encontrar um agente polkit.</translation>
</message>
</context>
<context>
<name>Locations</name>
<message>
<location filename="../components/Locations.qml" line="21"/>
<source>Select Location</source>
<translation>Selecione um Local</translation>
</message>
<message>
<location filename="../components/Locations.qml" line="27"/>
<source>Automatically use best connection</source>
<extracomment>this is in the radio button for the auto selection</extracomment>
<translation>Use a melhor conexão automaticamente</translation>
</message>
<message>
<location filename="../components/Locations.qml" line="29"/>
<source>Manually select</source>
<extracomment>Location Selection: label for radio buttons that selects manually</extracomment>
<translation>Selecionar manualmente</translation>
</message>
<message>
<location filename="../components/Locations.qml" line="31"/>
<source>Switching gateway</source>
<extracomment>A little display to signal that the clicked gateway is being switched to</extracomment>
<translation>Trocando gateway...</translation>
</message>
<message>
<location filename="../components/Locations.qml" line="33"/>
<source>Only locations with bridges</source>
<extracomment>Subtitle to explain that only bridge locations are shown in the selector</extracomment>
<translation>Apenas locais com bridges</translation>
</message>
<message>
<location filename="../components/Locations.qml" line="65"/>
<source>Recommended</source>
<extracomment>Location Selection: label for radio button that selects automatically</extracomment>
<translation>Recomendado</translation>
</message>
</context>
<context>
<name>MainView</name>
<message>
<location filename="../components/MainView.qml" line="43"/>
<location filename="../components/MainView.qml" line="66"/>
<source>Donate</source>
<translation>Fazer uma doação</translation>
</message>
<message>
<location filename="../components/MainView.qml" line="59"/>
<source>Preferences</source>
<translation>Preferências</translation>
</message>
<message>
<location filename="../components/MainView.qml" line="73"/>
<source>Help</source>
<translation>Ajuda</translation>
</message>
<message>
<location filename="../components/MainView.qml" line="80"/>
<source>About</source>
<translation>Sobre</translation>
</message>
<message>
<location filename="../components/MainView.qml" line="87"/>
<source>Quit</source>
<translation>Sair</translation>
</message>
<message>
<location filename="../components/MainView.qml" line="111"/>
<source>Please donate!</source>
<translation>Por favor, faça uma doação!</translation>
</message>
<message>
<location filename="../components/MainView.qml" line="125"/>
<source>This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now?</source>
<translation>Este serviço é inteiramente financiado por doações de pessoas como você. O custo de rodar uma VPN é de aproximadamente 5 USD por pessoa todo mês, mas qualquer coisinha ajuda. Você quer doar agora?</translation>
</message>
</context>
<context>
<name>Preferences</name>
<message>
<location filename="../components/Preferences.qml" line="11"/>
<source>Preferences</source>
<translation>Preferências</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="55"/>
<source>Turn off the VPN to make changes</source>
<translation>Desligue a VPN para fazer alterações</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="71"/>
<source>Language</source>
<translation>Linguagem</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="105"/>
<source>Censorship circumvention</source>
<translation>Driblando a censura</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="113"/>
<source>These techniques can bypass censorship, but are slower. Use them only when needed.</source>
<translation>Estas técnicas podem driblar censura, mas são mais lentas. Use-as somente quando necessário.</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="127"/>
<source>Use obfs4 bridges</source>
<translation>Usar bridges obfs4</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="153"/>
<source>Traffic is obfuscated to bypass blocks</source>
<translation>O tráfego é ofuscado para atravessar bloqueios</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="167"/>
<source>Use Snowflake</source>
<translation>Usar Snowflake</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="182"/>
<source>Snowflake needs Tor installed in your system</source>
<translation>Snowflake precisa do Tor instalado no seu sistema</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="195"/>
<source>Transport</source>
<translation>Transporte</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="203"/>
<source>UDP can make the VPN faster. It might be blocked on some networks.</source>
<translation>UDP pode tornar a VPN mais rápida. Mas pode ser bloqueado em algumas redes.</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="216"/>
<source>Use UDP if available</source>
<translation>Usar UDP se possível</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="231"/>
<source>KCP might work when UDP is blocked on some networks.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="244"/>
<source>Use KCP if available</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Splash</name>
<message>
<location filename="../components/Splash.qml" line="101"/>
<source>There is a newer version available. </source>
<translation> uma nova versão disponível.</translation>
</message>
<message>
<location filename="../components/Splash.qml" line="101"/>
<source>Make sure to &lt;a href=&quot;https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md&quot;&gt;uninstall&lt;/a&gt; the previous one before running the new installer.</source>
<translation>Tenha certeza de &lt;a href=&quot;https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md&quot;&gt;desinstalar&lt;/a&gt; a versão anterior antes de executar o novo instalador.</translation>
</message>
<message>
<location filename="../components/Splash.qml" line="105"/>
<source>UPGRADE NOW</source>
<translation>ATUALIZE AGORA</translation>
</message>
</context>
<context>
<name>StatusBox</name>
<message>
<location filename="../components/StatusBox.qml" line="78"/>
<source>This can take several minutes</source>
<translation>Isto pode demorar vários minutos</translation>
</message>
</context>
<context>
<name>Systray</name>
<message>
<location filename="../components/Systray.qml" line="16"/>
<source>Checking status</source>
<translation>Verificando o estado...</translation>
</message>
<message>
<location filename="../components/Systray.qml" line="36"/>
<source>Donate</source>
<translation>Fazer uma doação</translation>
</message>
<message>
<location filename="../components/Systray.qml" line="45"/>
<source>Hide</source>
<extracomment>Part of the systray menu; show or hide the main app window</extracomment>
<translation>Esconder</translation>
</message>
<message>
<location filename="../components/Systray.qml" line="45"/>
<source>Show</source>
<translation>Mostrar</translation>
</message>
<message>
<location filename="../components/Systray.qml" line="57"/>
<source>Quit</source>
<extracomment>Part of the systray menu; quits the application</extracomment>
<translation>Sair</translation>
</message>
<message>
<location filename="../components/Systray.qml" line="74"/>
<source>Connect to</source>
<translation>Conectar a</translation>
</message>
<message>
<location filename="../components/Systray.qml" line="76"/>
<source>Connect</source>
<translation>Conectar</translation>
</message>
<message>
<location filename="../components/Systray.qml" line="79"/>
<source>Disconnect</source>
<translation>Desconectar</translation>
</message>
</context>
<context>
<name>VPNState</name>
<message>
<location filename="../components/VPNState.qml" line="26"/>
<source>Setting up</source>
<translation>Configurando</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="51"/>
<location filename="../components/VPNState.qml" line="153"/>
<source>Connecting</source>
<translation>Conectando</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="82"/>
<source>Unsecured
Connection</source>
<translation>Conexão
Insegura</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="117"/>
<source>Secured
Connection</source>
<translation>Conexão
Segura</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="265"/>
<source>%1 off</source>
<extracomment>%1 -&gt; application name</extracomment>
<translation>%1 desligado</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="265"/>
<source>off</source>
<translation>desligado</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="268"/>
<source>%1 on</source>
<extracomment>%1 -&gt; application name</extracomment>
<translation>%1 ligado</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="271"/>
<source>Connecting to %1</source>
<extracomment>%1 -&gt; application name</extracomment>
<translation>Conectando a %1</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="274"/>
<source>Stopping %1</source>
<extracomment>%1 -&gt; application name</extracomment>
<translation>Parando %1</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="277"/>
<source>%1 blocking internet</source>
<extracomment>%1 -&gt; application name</extracomment>
<translation>%1 bloqueando Internet</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="284"/>
<source>pluggable transport connection</source>
<translation>conexão de transporte plugável</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="286"/>
<source>connection done</source>
<translation>conexão terminada</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="288"/>
<source>doing handshake</source>
<translation>fazendo handshake</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="290"/>
<source>handshake done</source>
<translation>handshake terminado</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="292"/>
<source>creating one-hop connection</source>
<translation>criando conexão de um estágio</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="294"/>
<source>requesting status</source>
<translation>solicitando estado</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="296"/>
<source>loading status</source>
<translation>carregando estado</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="298"/>
<source>loading keys</source>
<translation>carregando chaves</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="300"/>
<source>requesting descriptors</source>
<translation>requisitando descritores</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="302"/>
<source>loading descriptors</source>
<translation>carregando descritores</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="304"/>
<source>creating circuit</source>
<translation>criando circuito</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="306"/>
<source>done</source>
<translation>pronto</translation>
</message>
</context>
<context>
<name>VPNSwitch</name>
<message>
<location filename="../qml/VPNSwitch.qml" line="10"/>
<source></source>
<translation></translation>
</message>
</context>
<context>
<name>main</name>
<message>
<location filename="../main.cpp" line="140"/>
<source>: a fast and secure VPN. Powered by Bitmask.</source>
<translation>: uma VPN rápida e segura. Baseada em Bitmask.</translation>
</message>
<message>
<location filename="../main.cpp" line="147"/>
<source>Do not show the systray icon (useful together with Gnome Shell extension, or to control VPN by other means).</source>
<translation>Não mostrar ícone na bandeja (útil para uso conjunto com a extensão para Gnome Shell, ou para controlar a VPN por outros meios).</translation>
</message>
<message>
<location filename="../main.cpp" line="154"/>
<source>Enable Web API.</source>
<translation>Habilitar API Web.</translation>
</message>
<message>
<location filename="../main.cpp" line="160"/>
<source>Install helpers (Linux only, requires sudo).</source>
<translation>Instalar arquivos auxiliares (somente para Linux, requer sudo).</translation>
</message>
<message>
<location filename="../main.cpp" line="166"/>
<source>Use obfs4 to obfuscate the traffic, if available in the provider.</source>
<translation>Usar obfs4 para ofuscar o tráfego, caso esteja disponível no provedor.</translation>
</message>
<message>
<location filename="../main.cpp" line="172"/>
<source>Enable autostart.</source>
<translation>Habilitar auto inicialização.</translation>
</message>
<message>
<location filename="../main.cpp" line="177"/>
<source>Web API port (default: 8080)</source>
<translation>Porta para API Web (padrão: 8080)</translation>
</message>
<message>
<location filename="../main.cpp" line="180"/>
<source>Start the VPN, either &apos;on&apos; or &apos;off&apos;.</source>
<translation>Iniciar VPN, pode ser &apos;ligado&apos; ou &apos;desligado&apos;.</translation>
</message>
</context>
</TS>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="zh_TW">
<context>
<name>About</name>
<message>
<location filename="../components/About.qml" line="9"/>
<source>About</source>
<translation>關於</translation>
</message>
<message>
<location filename="../components/About.qml" line="80"/>
<source>&lt;p&gt;This service is paid for entirely by donations from users like you. &lt;a href=&quot;%1&quot;&gt;Please donate&lt;/a&gt;.&lt;/p&gt;</source>
<extracomment>donation text of the about dialog</extracomment>
<translation>&lt;p&gt;本服務完全依賴與您一樣的使用者共同捐助來運作&lt;a href=&quot;%1&quot;&gt;請捐助本服務&lt;/a&gt;。&lt;/p&gt;</translation>
</message>
<message>
<location filename="../components/About.qml" line="103"/>
<source>%1 version:
%2</source>
<extracomment>screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png %1 -&gt; application name %2 -&gt; version string</extracomment>
<translation>%1 版本
%2</translation>
</message>
</context>
<context>
<name>Footer</name>
<message>
<location filename="../components/Footer.qml" line="180"/>
<source>Recommended</source>
<translation>(建議)</translation>
</message>
</context>
<context>
<name>Help</name>
<message>
<location filename="../components/Help.qml" line="7"/>
<source>Help</source>
<translation>幫助</translation>
</message>
<message>
<location filename="../components/Help.qml" line="20"/>
<source>Troubleshooting and support</source>
<translation>疑難排解與支援</translation>
</message>
<message>
<location filename="../components/Help.qml" line="31"/>
<source>Report a bug</source>
<translation>回報錯誤</translation>
</message>
<message>
<location filename="../components/Help.qml" line="42"/>
<source>How to uninstall</source>
<translation>如何解除安裝</translation>
</message>
</context>
<context>
<name>InitErrors</name>
<message>
<location filename="../components/InitErrors.qml" line="31"/>
<source>Could not find helpers. Please check your installation</source>
<translation>找不到協助程式請檢查您的安裝</translation>
</message>
<message>
<location filename="../components/InitErrors.qml" line="44"/>
<source>Could not find polkit agent.</source>
<translation>找不到 polkit 代理程式</translation>
</message>
</context>
<context>
<name>Locations</name>
<message>
<location filename="../components/Locations.qml" line="21"/>
<source>Select Location</source>
<translation>選擇地理位置</translation>
</message>
<message>
<location filename="../components/Locations.qml" line="27"/>
<source>Automatically use best connection</source>
<extracomment>this is in the radio button for the auto selection</extracomment>
<translation>自動使用最佳的連線</translation>
</message>
<message>
<location filename="../components/Locations.qml" line="29"/>
<source>Manually select</source>
<extracomment>Location Selection: label for radio buttons that selects manually</extracomment>
<translation>手動選擇</translation>
</message>
<message>
<location filename="../components/Locations.qml" line="31"/>
<source>Switching gateway</source>
<extracomment>A little display to signal that the clicked gateway is being switched to</extracomment>
<translation>正在切換閘道...</translation>
</message>
<message>
<location filename="../components/Locations.qml" line="33"/>
<source>Only locations with bridges</source>
<extracomment>Subtitle to explain that only bridge locations are shown in the selector</extracomment>
<translation>只會顯示支援橋接的地理位置</translation>
</message>
<message>
<location filename="../components/Locations.qml" line="65"/>
<source>Recommended</source>
<extracomment>Location Selection: label for radio button that selects automatically</extracomment>
<translation>(建議)</translation>
</message>
</context>
<context>
<name>MainView</name>
<message>
<location filename="../components/MainView.qml" line="43"/>
<location filename="../components/MainView.qml" line="66"/>
<source>Donate</source>
<translation>捐助</translation>
</message>
<message>
<location filename="../components/MainView.qml" line="59"/>
<source>Preferences</source>
<translation>偏好設定</translation>
</message>
<message>
<location filename="../components/MainView.qml" line="73"/>
<source>Help</source>
<translation>幫助</translation>
</message>
<message>
<location filename="../components/MainView.qml" line="80"/>
<source>About</source>
<translation>關於</translation>
</message>
<message>
<location filename="../components/MainView.qml" line="87"/>
<source>Quit</source>
<translation>退出</translation>
</message>
<message>
<location filename="../components/MainView.qml" line="111"/>
<source>Please donate!</source>
<translation>請捐助</translation>
</message>
<message>
<location filename="../components/MainView.qml" line="125"/>
<source>This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now?</source>
<translation>本服務完全依賴與您一樣的使用者共同捐助來運作執行 VPN 的費用大約為每人每月 5 美元但任何一點捐助都很有幫助請問您願意捐助嗎</translation>
</message>
</context>
<context>
<name>Preferences</name>
<message>
<location filename="../components/Preferences.qml" line="11"/>
<source>Preferences</source>
<translation>偏好設定</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="55"/>
<source>Turn off the VPN to make changes</source>
<translation>關閉 VPN 以進行修改</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="71"/>
<source>Language</source>
<translation>語言</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="105"/>
<source>Censorship circumvention</source>
<translation>規避網路審查</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="113"/>
<source>These techniques can bypass censorship, but are slower. Use them only when needed.</source>
<translation>這些技術能規避網路審查但速度較慢請僅於需要時使用</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="127"/>
<source>Use obfs4 bridges</source>
<translation>使用 obfs4 橋接</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="153"/>
<source>Traffic is obfuscated to bypass blocks</source>
<translation>已混淆流量以規避網路封鎖</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="167"/>
<source>Use Snowflake</source>
<translation>使用 Snowflake</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="182"/>
<source>Snowflake needs Tor installed in your system</source>
<translation>Snowflake 需要在您的系統上安裝 Tor</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="195"/>
<source>Transport</source>
<translation>傳輸</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="203"/>
<source>UDP can make the VPN faster. It might be blocked on some networks.</source>
<translation>UDP 能讓 VPN 更快速但可能在某些網路上被封鎖</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="216"/>
<source>Use UDP if available</source>
<translation>可用時使用 UDP</translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="231"/>
<source>KCP might work when UDP is blocked on some networks.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../components/Preferences.qml" line="244"/>
<source>Use KCP if available</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Splash</name>
<message>
<location filename="../components/Splash.qml" line="101"/>
<source>There is a newer version available. </source>
<translation>有更新版本</translation>
</message>
<message>
<location filename="../components/Splash.qml" line="101"/>
<source>Make sure to &lt;a href=&quot;https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md&quot;&gt;uninstall&lt;/a&gt; the previous one before running the new installer.</source>
<translation>在執行新的安裝程式前請務必 &lt;a href=&quot;https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md&quot;&gt;解除安裝&lt;/a&gt;。</translation>
</message>
<message>
<location filename="../components/Splash.qml" line="105"/>
<source>UPGRADE NOW</source>
<translation>立刻升級</translation>
</message>
</context>
<context>
<name>StatusBox</name>
<message>
<location filename="../components/StatusBox.qml" line="78"/>
<source>This can take several minutes</source>
<translation>這可能會花幾分鐘</translation>
</message>
</context>
<context>
<name>Systray</name>
<message>
<location filename="../components/Systray.qml" line="16"/>
<source>Checking status</source>
<translation>正在檢查狀態...</translation>
</message>
<message>
<location filename="../components/Systray.qml" line="36"/>
<source>Donate</source>
<translation>捐助</translation>
</message>
<message>
<location filename="../components/Systray.qml" line="45"/>
<source>Hide</source>
<extracomment>Part of the systray menu; show or hide the main app window</extracomment>
<translation>隱藏</translation>
</message>
<message>
<location filename="../components/Systray.qml" line="45"/>
<source>Show</source>
<translation>顯示</translation>
</message>
<message>
<location filename="../components/Systray.qml" line="57"/>
<source>Quit</source>
<extracomment>Part of the systray menu; quits the application</extracomment>
<translation>退出</translation>
</message>
<message>
<location filename="../components/Systray.qml" line="74"/>
<source>Connect to</source>
<translation>連線到</translation>
</message>
<message>
<location filename="../components/Systray.qml" line="76"/>
<source>Connect</source>
<translation>連線</translation>
</message>
<message>
<location filename="../components/Systray.qml" line="79"/>
<source>Disconnect</source>
<translation>中斷連缐</translation>
</message>
</context>
<context>
<name>VPNState</name>
<message>
<location filename="../components/VPNState.qml" line="26"/>
<source>Setting up</source>
<translation>正在準備</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="51"/>
<location filename="../components/VPNState.qml" line="153"/>
<source>Connecting</source>
<translation>正在連接</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="82"/>
<source>Unsecured
Connection</source>
<translation>不安全的
連線</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="117"/>
<source>Secured
Connection</source>
<translation>安全
連線</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="265"/>
<source>%1 off</source>
<extracomment>%1 -&gt; application name</extracomment>
<translation>%1 已關閉</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="265"/>
<source>off</source>
<translation></translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="268"/>
<source>%1 on</source>
<extracomment>%1 -&gt; application name</extracomment>
<translation>%1 已啟用</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="271"/>
<source>Connecting to %1</source>
<extracomment>%1 -&gt; application name</extracomment>
<translation>正在連線到 %1</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="274"/>
<source>Stopping %1</source>
<extracomment>%1 -&gt; application name</extracomment>
<translation>正在停止 %1</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="277"/>
<source>%1 blocking internet</source>
<extracomment>%1 -&gt; application name</extracomment>
<translation>%1 正在封鎖網路</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="284"/>
<source>pluggable transport connection</source>
<translation>可插拔式傳輸連線</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="286"/>
<source>connection done</source>
<translation>連線完成</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="288"/>
<source>doing handshake</source>
<translation>正在交握</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="290"/>
<source>handshake done</source>
<translation>交握完成</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="292"/>
<source>creating one-hop connection</source>
<translation>正在建立單一節點跳躍 (one-hop) 連線</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="294"/>
<source>requesting status</source>
<translation>正在請求狀態</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="296"/>
<source>loading status</source>
<translation>正在載入狀態</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="298"/>
<source>loading keys</source>
<translation>正在載入金鑰</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="300"/>
<source>requesting descriptors</source>
<translation>正在請求描述元</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="302"/>
<source>loading descriptors</source>
<translation>正在載入描述元</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="304"/>
<source>creating circuit</source>
<translation>正在建立迴路</translation>
</message>
<message>
<location filename="../components/VPNState.qml" line="306"/>
<source>done</source>
<translation>完成</translation>
</message>
</context>
<context>
<name>VPNSwitch</name>
<message>
<location filename="../qml/VPNSwitch.qml" line="10"/>
<source></source>
<translation></translation>
</message>
</context>
<context>
<name>main</name>
<message>
<location filename="../main.cpp" line="140"/>
<source>: a fast and secure VPN. Powered by Bitmask.</source>
<translation>快速而安全的 VPN Bitmask 提供</translation>
</message>
<message>
<location filename="../main.cpp" line="147"/>
<source>Do not show the systray icon (useful together with Gnome Shell extension, or to control VPN by other means).</source>
<translation>不要顯示工作列圖示 (適合搭配 Gnome Shell 延伸模組或以其他方式控制 VPN 時使用)</translation>
</message>
<message>
<location filename="../main.cpp" line="154"/>
<source>Enable Web API.</source>
<translation>啟用 Web API</translation>
</message>
<message>
<location filename="../main.cpp" line="160"/>
<source>Install helpers (Linux only, requires sudo).</source>
<translation>安裝協助程式 (僅限 Linux須使用 sudo)</translation>
</message>
<message>
<location filename="../main.cpp" line="166"/>
<source>Use obfs4 to obfuscate the traffic, if available in the provider.</source>
<translation>如果服務提供者支援使用 obfs4 以混淆流量</translation>
</message>
<message>
<location filename="../main.cpp" line="172"/>
<source>Enable autostart.</source>
<translation>啟用自動啟動</translation>
</message>
<message>
<location filename="../main.cpp" line="177"/>
<source>Web API port (default: 8080)</source>
<translation>Web API 連接埠 (預設8080)</translation>
</message>
<message>
<location filename="../main.cpp" line="180"/>
<source>Start the VPN, either &apos;on&apos; or &apos;off&apos;.</source>
<translation>啟動 VPN,「開啟關閉」。</translation>
</message>
</context>
</TS>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment