Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gVXX8-0008LP-6q for pgsql-translators@arkaria.postgresql.org; Sat, 08 Dec 2018 08:00:18 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1gVXX6-0001Kj-PI for pgsql-translators@arkaria.postgresql.org; Sat, 08 Dec 2018 08:00:16 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gVXX6-0001Kb-I5 for pgsql-translators@lists.postgresql.org; Sat, 08 Dec 2018 08:00:16 +0000 Received: from mail-lj1-x244.google.com ([2a00:1450:4864:20::244]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gVXX0-0007de-9N for pgsql-translators@postgresql.org; Sat, 08 Dec 2018 08:00:15 +0000 Received: by mail-lj1-x244.google.com with SMTP id l15-v6so5444238lja.9 for ; Sat, 08 Dec 2018 00:00:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language; bh=esS3hRn+t9ETudwXYfV3HKiZT7zhHiL4xX1goBjlOIc=; b=vfaHeRVm9JeSN/kViqNNnHnxEAsowro452ntJgIai7A3PIYzG/8SKgAXG5X9GC471X sLFS9vRhIXjb0lZ8wLI9cI00qznqIc+JAaMoLUfbOP+yGulArL1UHNIgUwfvbJHvktdb KNKIeozf3GUBHL3v5Vqk8H4BNe9fEybKBll3wF/k94iNmM/Ld1tFZ6Ep/pIcp3U4rlMa bkb6JOXdx0F4aC8fqZxlE8YyM2R9yCv59ArtQCQyZDt/oEXU6giej53y4UEs4/bfDjFd ZA1CZ1GjVj7d5Zs8VXYFCKc2OgAxxTfRUO27th0wX7BL4CCTrfYLd/3jT9uMPpIpWU+W kgPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=esS3hRn+t9ETudwXYfV3HKiZT7zhHiL4xX1goBjlOIc=; b=P6L+oT9IzdENwhttO/v/O0B2EtDTDXAWcWtleskA1V5T0CRBRujAMI9DXB/Y24Kb1G Z9VpkweDFPfl0fclqmJQgskLzlhRmuKrsNs6MYBLVxD/EgYaRP45mI+I38BExArk0J/t lNLSZbYqqTC56ExkICkStohV8pZEs8S+V7gIE3ZPeENNAISOuMg0H5RwY9ygeLxxN+uk g83riRg97mv2e4Pw5dh+duHAMcHX/uWdG3PRdH7i4toD3aqSVDcHLhSx1GRbH/cNrIZi efFcUv2lRWO7dIwIfncfhg6J3OvFB0h+VcZxzcXsHDNsAslxUJGU7Jjw68ShGbo+dHPs h+LA== X-Gm-Message-State: AA+aEWYzlTbVqCKoBPYp91D8g/LybdF4tRmLjNTr1FKbwKulRgiUcmXI uXgtzAoSK2Sge9mRs+uyRjTYzROT X-Google-Smtp-Source: AFSGD/UfYLPG/PQz9XjiwlgzzKYkM7BCBLLjcHwFutcxjByzHK+WdWUaR6vWS0iaeG8E7dTLOucjzA== X-Received: by 2002:a2e:8786:: with SMTP id n6-v6mr3269094lji.100.1544256008040; Sat, 08 Dec 2018 00:00:08 -0800 (PST) Received: from [1.0.0.7] ([178.155.4.177]) by smtp.gmail.com with ESMTPSA id y23-v6sm949419ljk.95.2018.12.08.00.00.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 08 Dec 2018 00:00:07 -0800 (PST) Subject: Re: API for babel.postgresql.org To: Pavlo Golub Cc: Peter Eisentraut , pgsql-translators@postgresql.org References: <73450841-93b9-4372-a879-e43d9b60c2a1@email.android.com> From: Alexander Lakhin Message-ID: Date: Sat, 8 Dec 2018 11:00:06 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <73450841-93b9-4372-a879-e43d9b60c2a1@email.android.com> Content-Type: multipart/alternative; boundary="------------5BE95AD73D19DF58565CA1E5" Content-Language: en-US List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------5BE95AD73D19DF58565CA1E5 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Hello Pavlo, 08.12.2018 10:42, Pavlo Golub wrote: > > What kind of functionality are you hoping such an API would provide? > > Dumb and simple. List of languages, list of resources, links to .pot > and .po files. > > Example: > GET /resources > GET /languages > GET /psql.pot > GET /pt_BR/postgres.po > > If it's complicated never mind. I can probably parse html then I use a bash script to collect all pot's from branches in git: extract_pot() {     local version=$1     local gitdir=$2     local branch=$3     mkdir $POTD/$version     (     cd $gitdir     git clean -dfx     git reset --hard HEAD     git checkout $branch     git rebase     ./configure --enable-nls >/dev/null     make init-po     for pot in `find . -name '*.pot'`; do         cp $pot $POTD/$version/         echo $pot     done     ) } For me the most inconvenient part was to support several versions of .po and synchronize between them. So I use pology (posummit) to get united .po's, which looks like: #. +> 11 10 9.6 9.5 #: pg_config.c:153 #, c-format msgid "%s: could not find own program executable\n" msgstr "%s: не удалось найти свой исполняемый файл\n" #. +> 11 10 9.6 9.5 #: pg_config.c:180 #, c-format msgid "%s: invalid argument: %s\n" msgstr "%s: неверный аргумент: %s\n" #. +> 9.5 #: pg_config.c:243 pg_config.c:259 pg_config.c:275 pg_config.c:291 #: pg_config.c:307 pg_config.c:323 pg_config.c:339 pg_config.c:355 #: pg_config.c:371 #, c-format msgid "not recorded\n" msgstr "не сохранено\n" I can share my scripts if it can be useful for you. Best regards, Alexander --------------5BE95AD73D19DF58565CA1E5 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 8bit
Hello Pavlo,

08.12.2018 10:42, Pavlo Golub wrote:

What kind of functionality are you hoping such an API would provide?

Dumb and simple. List of languages, list of resources, links to .pot and .po files.

Example:
GET /resources
GET /languages
GET /psql.pot
GET /pt_BR/postgres.po

If it's complicated never mind. I can probably parse html then
I use a bash script to collect all pot's from branches in git:
extract_pot() {
    local version=$1
    local gitdir=$2
    local branch=$3
    mkdir $POTD/$version
    (
    cd $gitdir
    git clean -dfx
    git reset --hard HEAD
    git checkout $branch
    git rebase
    ./configure --enable-nls >/dev/null
    make init-po
    for pot in `find . -name '*.pot'`; do
        cp $pot $POTD/$version/
        echo $pot
    done
    )
}


For me the most inconvenient part was to support several versions of .po and synchronize between them.
So I use pology (posummit) to get united .po's, which looks like:
#. +> 11 10 9.6 9.5
#: pg_config.c:153
#, c-format
msgid "%s: could not find own program executable\n"
msgstr "%s: не удалось найти свой исполняемый файл\n"

#. +> 11 10 9.6 9.5
#: pg_config.c:180
#, c-format
msgid "%s: invalid argument: %s\n"
msgstr "%s: неверный аргумент: %s\n"

#. +> 9.5
#: pg_config.c:243 pg_config.c:259 pg_config.c:275 pg_config.c:291
#: pg_config.c:307 pg_config.c:323 pg_config.c:339 pg_config.c:355
#: pg_config.c:371
#, c-format
msgid "not recorded\n"
msgstr "не сохранено\n"

I can share my scripts if it can be useful for you.

Best regards,
Alexander
--------------5BE95AD73D19DF58565CA1E5--