Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MVP] Tema Jekyll em Boostrap 5 focado em internacionalização (isto é, permitir futura localização/tradução) para hapi.etica.ai #9

Open
fititnt opened this issue May 12, 2021 · 7 comments
Labels
✏->✏ https://www.wikidata.org/wiki/Q17321844 ✏<-✏ https://www.wikidata.org/wiki/Q7333457 epic

Comments

@fititnt
Copy link
Member

fititnt commented May 12, 2021

Tópico sobre Produto Mínimo Viável (em inglês: MVP) de um tema exclusivo do hapi.etica.ai que, no mínimo, dê suporte para traduções/localizações também para caracteres além do alfabeto latino.

A ideia aqui é facilitar para quem for manter o frontend do projeto.

TODO: potencialmente listar problemas que outros idiomas enfrentam em documentação online e porque realmente é importante projetar desde o início pensando nisso.

@fititnt
Copy link
Member Author

fititnt commented May 13, 2021

Os dados já são obtidos da planilha HXL-CPLP-Vocab_Auxilium-Humanitarium-API (https://docs.google.com/spreadsheets/d/1ih3ouvx_n8W5ntNcYBqoyZ2NRMdaA0LRg5F9mGriZm4/edit#gid=1181688279).

_systema/programma/download-hxl-datum.sh

# (...)

#### Customizations, ___________________________________________________________

### Data pull configurations ---------------------------------------------------

# @see https://docs.google.com/spreadsheets/d/1ih3ouvx_n8W5ntNcYBqoyZ2NRMdaA0LRg5F9mGriZm4/edit#gid=1181688279
HAPI_L10N="https://proxy.hxlstandard.org/data/download/L10n_hxl_csv.csv?dest=data_edit&strip-headers=on&force=on&url=https%3A%2F%2Fdocs.google.com%2Fspreadsheets%2Fd%2F1ih3ouvx_n8W5ntNcYBqoyZ2NRMdaA0LRg5F9mGriZm4%2Fedit%23gid%3D1181688279"

ROOTDIR="$(pwd)"

#### DATA PULL _________________________________________________________________

# TODO: check first if remote resources are online (or if do exist network)
#       instead of save to disk. These " if true;" are placeholders

# TODO: check error codes if download fails

if true ; then
    echo "HAPI_L10N"
    echo "   Fontem: [$HAPI_L10N]"
    echo "   Filum:  [${ROOTDIR}/_data/L10n.hxl.csv]"
    wget -qO- "$HAPI_L10N" > "${ROOTDIR}/_data/L10n.hxl.csv"
fi

exit 0

Captura de tela de 2021-05-13 18-44-57

fititnt added a commit that referenced this issue May 14, 2021
fititnt added a commit that referenced this issue May 14, 2021
… refatoração parcial das paginas em ingles
fititnt added a commit that referenced this issue May 14, 2021
…por strings que ainda não estão prontas para colaboração via planilha do docs
@fititnt
Copy link
Member Author

fititnt commented May 15, 2021

Creio que vamos precisar migrar para usar Ruby em vez de forçar demais o uso de Liquid para forçar poder ser compatível com GitHub pages.

Como já estamos usando GitHub Actions (ou poderia ser o equivalente de usar Travis CI ou então quem publicar localmente enviar HTML bruto para site que publica) tecnicamente isso torna menos complexo manter o site atualizado.

_includes/fn/Conatum-corpus.liquid

Esse é o arquivo _includes/fn/Conatum-corpus.liquid atual. Ainda que seja possível escrever nele, não é amigável para debugar ou adicionar outras funções.

O equivalente em ruby provavelmente seria bem mais simples.

{% comment %}
FILE:           _includes/fn/Conatum-corpus.liquid
USAGE:
                \{\% include fn/Conatum prefix='varnamen' suffix='por' \%\}
                \{\% include fn/Conatum prefix='varnamenpor' suffix=false \%\}
              (if page.linguam: por, suffix is not need)
                \{\% include fn/Conatum prefix='varerror,varnamen' \%\}
                \{\% include fn/Conatum prefix='varnamen' \%\}
                \{\% include fn/Conatum prefix='varnamen' suffix='sfx1,sfx2' \%\}

DESCRIPTION:    ---

OPTIONS:        prefix:
                  prefix of variable (can be a list ',' or array)
                suffix (optional):
                  suffix of variable (can be a list ',' or array)
                  default: uses _data/linguam.yml and page.linguam
AUTHOR:         Emerson Rocha <rocha[at]ieee.org>
LICENSE:        Public Domain dedication
                SPDX-License-Identifier: Unlicense
VERSION:        v1.0
CREATED:        2021-05-14 20:44 UTC started
REVISION:       ---
{% endcomment %}

{% comment %} testum = [], initialize an array {% endcomment %}
{% assign testum = "" | split: ',' %}

{% if include.prefix %}
  {% comment %}Array? String with , ?{% endcomment %}
  {% if include.prefix[0] %}
    {% assign prefix_est = include.prefix %}
  {% else %}
    {% assign prefix_est = include.prefix | remove: " " | split: "," %}
  {% endif %}
{% else %}
   ?![Conatum [NOPREFIXERROR]?!
  {% assign prefix_est = nil %}
{% endif %}

{% if include.suffix %}
  {% comment %}Array? String with , ?{% endcomment %}
  {% if include.suffix[0] %}
    {% assign suffix_est = include.suffix %}
  {% else %}
    {% assign suffix_est = include.suffix | remove: " " | split: "," %}
  {% endif %}
{% else %}
  {% comment %}
    suffix not array.
    If not == false (this would disable try add suffixes), we will use
    page.linguam and _data/linguam.yml to try alternatives
  {% endcomment %}
  {% if include.suffix == false }
    {% assign suffix_est = nil %}
  {% else %}
    {% capture suffix_est %}{{ site.data.linguam.canatum[page.linguam] | join: "," }}{% endcapture %}
    {% assign suffix_est = suffix_est | split: ',' %}
  {% endif %}
{% endif %}


{% comment %} prefix_est
{{ prefix_est | inspect }}

suffix_est
{{ suffix_est | inspect }} {% endcomment %}


{% assign resultatum_okay = false %}

{% for prefix in prefix_est %}
  {% unless resultatum_okay == true %}
    {% if suffix_est == nil %}
      {% comment %} {{ testum | inspect }} {% endcomment %}
      {% assign testum = testum | push: prefix %}
      {% comment %} {{ prefix | inspect }} {% endcomment %}
      {{ testum | inspect }}

      {% if site.data.Temporarium[prefix] %}
        {{ site.data.Temporarium[prefix] }}
        {% assign resultatum_okay = true %}
        {{ break }}
      {% endif %}
    {% else %}
      {% for suffix in suffix_est %}
        {% comment %} {% capture prefix_suffix %}{{ prefix }}{{ suffix }}{% endcapture %} {% endcomment %}
        {% capture prefix_suffix %}{{ prefix }}_{{ suffix }}{% endcapture %}
        {% assign testum = testum | push: prefix_suffix %}
        {% if site.data.Temporarium[prefix_suffix] %}
          {{ site.data.Temporarium[prefix_suffix] }}
          {% assign resultatum_okay = true %}
          {% break %}
        {% endif %}
      {% endfor %}
    {% endif %}
  {% endunless %}
{% endfor %}

{% if resultatum_okay != true %}
  ?![Conatum [{{ include | inpect }}] [testum [{{ testum | inspect }}]]]?!
{% endif %}

fititnt added a commit that referenced this issue May 15, 2021
fititnt added a commit that referenced this issue May 16, 2021
fititnt added a commit that referenced this issue May 16, 2021
…importado; criado _data/referens.yml (para versão mais avançada de defaults do Jekyll
fititnt added a commit that referenced this issue May 16, 2021
… esta sendo usado, e consome ~3min a mais no GitHub Actions)
fititnt added a commit that referenced this issue May 18, 2021
fititnt added a commit that referenced this issue May 18, 2021
fititnt added a commit that referenced this issue May 19, 2021
fititnt added a commit that referenced this issue May 19, 2021
@fititnt
Copy link
Member Author

fititnt commented Jun 12, 2021

Assumindo que o projeto eventualmente saia da versão Alpha, é 100% garantido que ficaria em eterna atualização frequente (o que poderia levar o site publico quebrar).

Pensando nisso, não apenas inicialmente, creio que até mesmo o site publico teria pelo menos uma opção "uso avançado" onde a pessoa explicitamente pede para ver o que normalmente está escondido.

Nessa opção, tecnicamente podemos ter links para linguas novas que ainda não ficaram 100% ou então recursos que estão planejados (mas não implementados).

Essa abordagem também em teoria permite que depois que o site esteja relativamente ok, a não ser para criação de páginas completamente novas, muita coisa poderia ser controlada algo como 95% APENAS pelas planilhas de Google (ou tecnicamente qualquer coisa parseável pelo HXL-Proxy).

Padrão

Captura de tela de 2021-06-12 08-31-18

Se clicar no botão

Captura de tela de 2021-06-12 08-31-35

Opções extras na home (no momento, deve aumentar)

Captura de tela de 2021-06-12 08-31-27

@fititnt
Copy link
Member Author

fititnt commented Jun 13, 2021

O próximo commit começa adicionar mais funcionalidades (classes CSS) para permitir esconder seletivamente elementos na tela quando modo perito não estiver habilitado.

O Índice de Conteúdo precisa de tratamento adicional. Poderia ser feito totalmente via Ruby, mas adicionei por enquanto via javascript mesmo.

Exemplo

Antes do modo perito

Captura de tela de 2021-06-13 07-33-03


Depois do modo perito

Captura de tela de 2021-06-13 07-33-14


Captura de tela de 2021-06-13 07-33-27

@fititnt
Copy link
Member Author

fititnt commented Jun 17, 2021

Favicon temporário gerado desse site aqui https://favicon.io/favicon-generator/.

(idealmente isso deveria ser melhorado depois, como adicionar as demais images e etc). O Zip de qualquer forma está em anexo (ou então alguem no futuro poderia ver um design melhor), porém apenas um favicon.ico está sendo adicionado no próximo commit).

Captura de tela de 2021-06-17 13-53-54

@fititnt
Copy link
Member Author

fititnt commented Jun 18, 2021

Com o próximo commit, começamos a alterar o site de modo que mesmo quando uma nova língua (ou uma lingua existente, mas para conteúdo que está sendo editado em produção) vai pelo menos exibir link para página de desambiguação.

Isso tecnicamente permite adicionar novas línguas e/ou novos esquemas de dados ou APIs sem ter um estresse enorme de "ser tudo ou nada".

Exemplo atual para arb-Arab

Captura de tela de 2021-06-18 16-14-08

fititnt added a commit that referenced this issue Jun 18, 2021
…birão link para página de desambiguação global
fititnt added a commit that referenced this issue Jun 18, 2021
… (padrão UN M49), por enquanto apenas nos menus
fititnt added a commit that referenced this issue Jun 19, 2021
fititnt added a commit that referenced this issue Jun 19, 2021
… não quebrarem mesmo quando não tem termo traduzível
@fititnt
Copy link
Member Author

fititnt commented Jun 23, 2021

Vamos usar o HTML5 <details> (https://www.w3.org/TR/html52/interactive-elements.html#the-details-element) para gerenciar como informações de colaboradores é exibida nas respectivas páginas.

A questão visual pode ser melhorada bastante depois, mas pelo menos a lógica de como obter os dados começa a ficar próximo do ideal para receber contribuições

Captura de tela de 2021-06-23 19-46-10
Captura de tela de 2021-06-23 19-45-52

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✏->✏ https://www.wikidata.org/wiki/Q17321844 ✏<-✏ https://www.wikidata.org/wiki/Q7333457 epic
Projects
None yet
Development

No branches or pull requests

1 participant