Open fititnt opened 3 years ago
Codicem,Res Wikidata codicem,"Meta, situs interretialis",Latine linguam,Latine linguam (meta),Lingua Lusitana,Lingua Lusitana (meta),Lingua Anglica,Lingua Anglica (meta),Lingua Hispanica,Lingua Hispanica (meta)
#item+id,#meta+wikidata+code+list,#meta+item+url+list,#item+i_la+i_lat+is_latn,#meta+item+i_la+i_lat+is_latn,#item+i_pt+i_por+is_latn,#meta+item+i_pt+i_por+is_latn,#item+i_en+i_eng+is_latn,#meta+item+i_en+i_eng+is_latn,#item+i_es+i_spa+is_latn,#meta+item+i_es+i_spa+is_latn
API_anglicum_abbreviationem,,,API,,API,,API,,,
vs
#item+id,#item+i_la+i_lat+is_latn,#item+i_pt+i_por+is_latn,#item+i_en+i_eng+is_latn,#item+i_es+i_spa+is_latn
API_anglicum_abbreviationem,API,API,API,
canonicum_URL_nomen,Canonicum URL,URL canônica,Canonical URL,
Ferramentas de traduções as vezes chaman de 'domain' um tipo de agrupamento de informação dentro de um sofware, vide https://man7.org/linux/man-pages/man3/gettext.3.html#:~:text=A%20message%20domain%20is%20a,through%20a%20preceding%20textdomain%20call.
Ainda que seja meio 'exagerado' para usar fora do HXL-CPLP, creio que vamos deixar a planilha com agrupamentos que se inspiram na forma como latim é usado na taxonomia.
Dois pontos
Precisamos de alguma forma de representar string vazia que é intencionalmente vazia e não uma falta de tradução.
Sem isso programas vão acabar entrando em modo de fallback.
Creio que exceto para relações mais obvias (exemplo: mesma língua, apenas outro script) a gente tenda a dar fallback por sistema de escrita.
[()]
sendo usado para representar vazio intencional
A nova implementação usando Emojis ainda não está pronta. Porém o https://hapi.etica.ai/mappam-situm.html está sendo usando temporariamente como área de testes para futura documentação.
Algo que está precisando de especial atenção é que depurar Tags Liquid não é muito amigável. Então toda implementação que estamos fazendo da primeira versão que usa as memórias de tradução devem tentar ajudar ao máximo encontrar exatamente onde estão erros. E possivelmente tolerar eles de forma aceitável em vez de quebrar catastroficamente toda produção de arquivos derivados.
Que MARAVILHA!
Descobri que via estratégias como esta aqui https://fettblog.eu/snippets/jekyll/liquid-in-frontmatter/ é possível usar tags liquid até mesmo em data files.
Some-se a isso que estamos usando planilhas na nuvem para adicionar tradução/localização, com essa nova abordagem permitiria reuso ainda mais intenso de variáveis e com menos programação necessária!!!
Tecnicamente isso significa que o https://github.com/HXL-CPLP/Auxilium-Humanitarium-API vai precisar de tema Jekyll criado especialmente para ele. Porém isso se paga mais tarde em alta reusabilidade!!!
A forma como isso é feita é um tanto... peculiar. Mas funciona!.
Vou deixar aqui pois é algo que não encontrei explicado para quem usa Jekyll
A primeira vez que o site é construido, ele vai gerar os arquivos em /data/ (site publico)
Porém, a geração das paginas de API vão falhar, com a mensagem de erro [🔎ℹ️ Hapi::HapiApiGenerator:29] requīrendum: 'bundle exec jekyll build' !!!
O GitHub pages roda bundle exec jekyll build
antes de realmente ser publicado o site
# .github/workflows/05-deploy-github-pages.yml
# (...)
- uses: ruby/setup-ruby@v1
with:
ruby-version: 3.0 # Not needed with a .ruby-version file
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
# - run: bundle exec rake
# 🐉 hic sunt dracones 🐉
# To allow use liquid variables _even_ on data files, we
# 1. build site once, and copy data to from
# _site/data/*.l10n.json => _data/*.l10n.json
# 2. Then the real build will use the *.l10n.json, and ignore the
# source files
- name: "Steps before Jekyll: bundle exec jekyll build"
run: bundle exec jekyll build
continue-on-error: true
(...)
Se estiver testando localmente usando bundle exec jekyll serve --watch
, a primeiríssima vez modificar qualquer arquivo no disco para ele usar o que foi construido imeditamente antes.
Sim, tecnicamente o 'build' dos data files com as tags liquid esta sempre um passo atrasado. Tentei fazer automático, mas é complicado :(
Nesse exemplo, o site irá exibir todas as páginas adicionais que foram ignoradas na primeira etapa.
Como eu disse, funciona. É gambiarra, mas funciona.
NOSSA SENHORA! E não é que funciona muito bem!?
refs
Depois de um bom tempo apenas programando e preparando as coisas, somente agora que esta dando para ver o resultado. Mas se além exportar, ficar um pouco mais fácil re-sincronizar os trabalhos que forem feitos no MateCat de volta, a gente aqui do HXL-CPLP vai conseguir manter um serviço super profissional, mesmo que para maioria das línguas seriam pessoas voluntárias.
### ACTUM I
hxlspec _hxltm/exemplum/hxltm_2_okf_table_src-tab-trg.hxlspec.json > _hxltm/out/hxltm_2_okf_table_src-tab-trg_temp1.csv
head -n4 _hxltm/out/hxltm_2_okf_table_src-tab-trg_temp1.csv
# pt,en,Comment
# #x_target,#x_source,#x_comment
# Língua portuguesa (alfabeto latino),English language (Latin script),Q1|https://github.com/HXL-CPLP/forum/issues/58|https://example.org|∅
# por-Latn,eng-Latn,||∅
### ACTUM II
# _[eng-Latn] Since we have different column order, we enforce it here [eng-Latn]_
csvcut -c en,pt,Comment _hxltm/out/hxltm_2_okf_table_src-tab-trg_temp1.csv > _hxltm/out/hxltm_2_okf_table_src-tab-trg_temp2.csv
head -n4 _hxltm/out/hxltm_2_okf_table_src-tab-trg_temp2.csv
# en,pt,Comment
# #x_source,#x_target,#x_comment
# English language (Latin script),Língua portuguesa (alfabeto latino),Q1|https://github.com/HXL-CPLP/forum/issues/58|https://example.org|∅
# eng-Latn,por-Latn,||∅
### ACTUM III
# _[eng-Latn] Remove only the '#x_target,#x_source,#x_comment' line [eng-Latn]_
sed -i '2d' _hxltm/out/hxltm_2_okf_table_src-tab-trg_temp2.csv
# en,pt,Comment
# English language (Latin script),Língua portuguesa (alfabeto latino),Q1|https://github.com/HXL-CPLP/forum/issues/58|https://example.org|∅
# eng-Latn,por-Latn,||∅
# English language,Língua portuguesa,||∅
### ACTUM IV
# _[eng-Latn] hen, generate a Tab-separed CSV (a TSV) [eng-Latn]_
csvformat --out-tabs _hxltm/out/hxltm_2_okf_table_src-tab-trg_temp2.csv > _hxltm/out/hxltm_2_okf_table_src-tab-trg.tsv
head -n4 _hxltm/out/hxltm_2_okf_table_src-tab-trg.tsv
# en pt Comment
# English language (Latin script) Língua portuguesa (alfabeto latino) Q1|https://github.com/HXL-CPLP/forum/issues/58|https://example.org|∅
# eng-Latn por-Latn ||∅
# English language Língua portuguesa ||∅
### ACTUM V
# _[eng-Latn] Create an XLIFF 2 file [eng-Latn]_
sh /opt/okapi/tikal.sh -x _hxltm/out/hxltm_2_okf_table_src-tab-trg.tsv -fc okf_table_src-tab-trg -nocopy
# -------------------------------------------------------------------------------
# Okapi Tikal - Localization Toolset
# Version: 2.1.41.0
# -------------------------------------------------------------------------------
# Extraction
# Source language: en
# Target language: pt-BR
# Default input encoding: UTF-8
# Filter configuration: okf_table_src-tab-trg
# Output: /workspace/git/HXL-CPLP/Auxilium-Humanitarium-API/_hxltm/out/hxltm_2_okf_table_src-tab-trg.tsv.xlf
# Input: /workspace/git/HXL-CPLP/Auxilium-Humanitarium-API/_hxltm/out/hxltm_2_okf_table_src-tab-trg.tsv
# Done in 0.772s
_hxltm/out/hxltm_2_okf_table_src-tab-trg.tsv.xlf
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:okp="okapi-framework:xliff-extensions" xmlns:its="http://www.w3.org/2005/11/its" xmlns:itsxlf="http://www.w3.org/ns/its-xliff/" its:version="2.0">
<file original="_hxltm/out/hxltm_2_okf_table_src-tab-trg.tsv" source-language="en" target-language="pt-BR" datatype="x-text/csv" okp:inputEncoding="UTF-8">
<body>
<group id="3" restype="row">
<trans-unit id="1">
<source xml:lang="en">en</source>
<target xml:lang="pt-BR">pt</target>
<note>Comment</note>
</trans-unit>
</group>
<group id="6" restype="row">
<trans-unit id="2">
<source xml:lang="en">English language (Latin script)</source>
<target xml:lang="pt-BR">Língua portuguesa (alfabeto latino)</target>
<note>Q1|https://github.com/HXL-CPLP/forum/issues/58|https://example.org|∅</note>
</trans-unit>
</group>
<!-- (...) -->
<group id="438" restype="row">
<trans-unit id="129">
<source xml:lang="en">This division includes activities of households as employers of domestic personnel. Furthermore, it includes the undifferentiated subsistence goods-producing and services producing activities of households.</source>
<target xml:lang="pt-BR"></target>
</trans-unit>
</group>
<group id="441" restype="row">
<trans-unit id="130">
<source xml:lang="en">This class includes activities (...)</source>
<target xml:lang="pt-BR"></target>
</trans-unit>
</group>
</body>
</file>
</xliff>
Estou tendo que investigar alguma solução para abrir arquivos com extensão .tbx.
Fiz um teste de 10 minutos, usando sudo snap install omegat-cat
.
O arquivo IATE_export.tbx
de 1.3GB talvez até seja suportado, mas modo somente leitura e somente se ele, em teoria, encontrar os termos.
Então, não é muito ideal para visualizar.
A versão .exe, abrindo com Wine, parece não entender o arquivo IATE_export.tbx
de 1.3GB (porém é uma versão de quase 10 anos, pelo jeito!). Porém talvez a versão re-escrita que suporta python3 consiga fazê-lo.
É algo para tentar em outro momento.
Vide: