From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,HTML_MESSAGE,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 10329 invoked from network); 8 Jun 2023 03:53:36 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 8 Jun 2023 03:53:36 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1686196416; b=NQ/VgK24VXTjWiBkSRttM+lcT31Oay1brIUBN/zX1cA75K5Ex4+YyccK7YfGsocJVzY2GrZ9wP nLnr1raQhAfNUWkqlAVaDvdoYbhuOTmWzHvkYmDmP+VMKdc33xT1Lu/Nd+Yw7wDmeKDikN6wqS WplSBF3DOKnBf3nQmLJh1s5hmt1EhMtE1DDM7OsB1fzGka/iFpuQnmKraMzOKp02b8/s0ePE7n jLim4fRoX69bxlmYctUYaIlNVf7e4apRv79L3XvwKfFa9nSaR3FkD4+kxZIyrhOUT1+Z9VePB2 0R/N2vQc7S26jKfjMzkJBUb+GbYzbLKRkRiVq76DYmOl1A==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-yw1-f170.google.com) smtp.remote-ip=209.85.128.170; dkim=pass header.d=gmail.com header.s=20221208 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1686196416; bh=Hq+iv4nVefBD2AFLAzfH5SJ00tbZBRBTV26RN8BPRKg=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:DKIM-Signature:DKIM-Signature; b=QcugXP4ShGSA6fGICNTu+YUb6sqcXwcyNOoJTu+nCla7VcnDVVaQ9KrSXjI2BfBngwenQHK34P 0ljV3JBKuALVSTlRSauHZk2omWi4t6Q68jfPdhCZV86SfRFPtAYAUxUmvLMbTJIMkXoBgfs600 /jG++vU52NGyMbcq0Nxr592RVa5awWHy80VbSzHNDavvej/oOHuaL7IFr5UNE20VFGX4wb5KTf qxhzyqQM6Okdxd5ENpiw9EYsT1CUGXVliD0J2s7qV0OZQrsG9EI+QQTqCQp25m2aR5KCtFPosc REVOc9Y5yWZs3RFpUBT20aCjkVxPsEWVP8GGRY43ocgxuw==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Type:Cc:To:Subject:Message-ID :Date:From:In-Reply-To:References:MIME-Version:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=k/AOOE330Ro2zMAB7qoCJu/Ow/fYMHNRNTpCpLcWlxY=; b=ldlhaG6l8Dc+kWIC4Y/QCEFFBU 7t9KxtUhQZPajIny4id4wGs+u7cjNeGKZlU4c+UtdTptuZTNOclkX3tmCH0E2r1H5pJUC4lNuutme ChncbhxNELuBgMIJZYiin052EjpdWSpTTJ5JQGAt5zop+oB0UYob2NCXMIOq/f1Xk91D919AgUqu+ E6K5QcL1K5u5jH+izPmiZJUIjpf2coO6estD77iWwbEiZzqenZv9AXxrfLCHjJrZJvAgJmb4WrcCZ 8AGvWsCpBdbfnn/JDXFY96UnTE+je8JVNAD+zV17naohYlw29jFRLlBwr/BBuh5xByjOq0ghnGs/7 FkVg/7Nw==; Received: by zero.zsh.org with local id 1q76iO-0006Ty-9l; Thu, 08 Jun 2023 03:53:36 +0000 Authentication-Results: zsh.org; iprev=pass (mail-yw1-f170.google.com) smtp.remote-ip=209.85.128.170; dkim=pass header.d=gmail.com header.s=20221208 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none Received: from mail-yw1-f170.google.com ([209.85.128.170]:44442) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1q76hz-0006B3-S7; Thu, 08 Jun 2023 03:53:17 +0000 Received: by mail-yw1-f170.google.com with SMTP id 00721157ae682-565c7399afaso1507087b3.1 for ; Wed, 07 Jun 2023 20:53:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686196390; x=1688788390; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=k/AOOE330Ro2zMAB7qoCJu/Ow/fYMHNRNTpCpLcWlxY=; b=akZPWvxmE+EdOjlc62zhxYMLO46F+jY9wJAohDSPXqssggxTjOFuwQ3VfFEGziOUD5 ykPhoGKcLGbgtJfjxlqvbyxXOMkEfW0ZXbY+5btZTn2KkdM1gIOql0hZbtk/hovALSCU u9X0Ib+a79dGTMrk5/Mhm8DanhyRGb8hfJICpc7Ppt6FcPGcBUJYqnsDmH1cblOCGRnb lumydk3BqlCXWqDX3NhaBBfI1ePKbUNnr/GcmXabzDuv8zwkvX8Zke8OXZVlM52FpdpV 16HTkoM4n0yFMqhWxJYb0+JOhaLlS7nLA4QRG88CyccAzgtjH+A0CI431UILyptUxs0t o9iA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686196390; x=1688788390; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=k/AOOE330Ro2zMAB7qoCJu/Ow/fYMHNRNTpCpLcWlxY=; b=H0F7NiF6oAVq1ZmlG1/xbb96Y9la6Tz2BBOd0xZl38EOMiLL3uzAAd/I/pce5rXs+q W8tz3mlJhD9svZ8oYt+t9taJnQmsTHRdY3N2GQXP0tdfM/pAHwDSDFCq6DSD0o7Sx+xU /i6PrsDxtzVMoYiXO0/ak76D4+p0Zo3kJkvGJaIBDbzRmb4gT6HNu+w/wuR72HJ4F8/f Ucm7xEn9jP+yGbds+24Nqz2hG7ZgMDCHb5mJyelQa1TFi1oo2Xh+dBltA1/6CBZe4iWj tRv3e9ePe4XoR6U8fXBeIV0671s7a+YP1xm/1qFI02fuw629CNybIbliOtnQjVArT4jg rn8w== X-Gm-Message-State: AC+VfDykEkaFaUVxV2FH1YyhHo9ryXM1EUtxaTfQ35s6NOYk+vpDvyrW 9fomL6gFGTj3kOTrJmMTod7th/Qk9bIjreiO0A== X-Google-Smtp-Source: ACHHUZ5MfLTP4ZRtQHKR9LBaKBHZgw4TjCEy7FftncaAiAegN6LKWOIYX39P0XFyu8jeER13Sa2EyKspiXtivRKxTW8= X-Received: by 2002:a81:4e44:0:b0:561:d6dd:bc84 with SMTP id c65-20020a814e44000000b00561d6ddbc84mr9103162ywb.48.1686196390602; Wed, 07 Jun 2023 20:53:10 -0700 (PDT) MIME-Version: 1.0 References: <964331068.5072751.1686066885601@mail.virginmedia.com> In-Reply-To: From: Agron Selimaj Date: Wed, 7 Jun 2023 23:52:59 -0400 Message-ID: Subject: Re: Is there any desire to support languages other than English in zsh? To: Bart Schaefer Cc: Peter Stephenson , zsh-workers@zsh.org Content-Type: multipart/alternative; boundary="000000000000e22da105fd96306c" X-Seq: 51848 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: --000000000000e22da105fd96306c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable What if we take the long path by starting small? Let me add gettext support, and we don't have to use it everywhere from day one. Let me just make the "--help" output support Albanian and German. This shouldn't affect anything in the operation of the program since it is in the exit path. It's small and safe. Plus it gives us a chance to discuss implementation further. =E2=9D=AF zsh --help > Usage: zsh [] [ ...] > > Special options: > --help show this message, then exit > --version show zsh version number, then exit > -b end option processing, like -- > -c take first argument as a command to execute > -o OPTION set an option by name (see below) > > Normal options are named. An option may be turned on by > `-o OPTION', `--OPTION', `+o no_OPTION' or `+-no-OPTION'. An > option may be turned off by `-o no_OPTION', `--no-OPTION', > `+o OPTION' or `+-OPTION'. Options are listed below only in > `--OPTION' or `--no-OPTION' form. > > This means, I'll make this text be extractable to generate *.POT files and then we can use all kinds of tools and websites to do the actual translation. I'll also use a certain syntax for parameters in the strings, and that can also be used as an example for new strings to be added to the zsh. I don't know what is the anticipated release date for 6.0, but maybe we can put this much in for 6.0? And then, since zsh 5.xx lasted 11 years, and before that 4.xx lasted 12 years, I assume 6.xx will also last about 10+ years, can we make a long term plan to fully implement gettext support during the lifetime of 6.xx for the next 10 years? What do you guys think? Shall we try it? Thanks, //Agron On Wed, Jun 7, 2023 at 10:56=E2=80=AFPM Bart Schaefer wrote: > On Tue, Jun 6, 2023 at 8:54=E2=80=AFAM Peter Stephenson > wrote: > > > > > On 06/06/2023 16:20 Agron Selimaj wrote: > > > However, I am not sure the zsh project supports gettext (and POEdit) > throughout. > > > So, in order to support localization in general, we first must use > gettext everywhere. > > > Is this something this team is willing to do? > > > > This is certainly a useful thing to do, however previous discussions > suggest there is > > no one around to do the considerable amount of work that supporting > databases on this > > scale would require. > > Having previously overseen the gettext-ification of a piece of > software of similar original vintage and complexity, I would say that > supporting the databases is often the least of the issues. Sentence > structure varies, which requires converting catenated substrings into > snprintf formats or sets of alternatives; pluralization may differ, > requiring 0 / 1 / >1 conditionals even with gettext intervention; etc. > Also, because of the pervasive changes required, we found it necessary > to merge all outstanding code changes and call a halt to other > development until the "l10n" pass was complete, or we couldn't track > deltas accurately (though we were stuck with CVS for version control > at the time). > > This is definitely not something we would want to dive into until > after whatever the next zsh release is, is done. > --000000000000e22da105fd96306c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
What if we take the long path by=C2=A0starting small?
=
Let me add gettext support, and we don't have to use it = everywhere from day one.

Let me just make the &quo= t;--help" output support Albanian and German. This shouldn't affec= t anything in the operation of the program since it is in the exit path. It= 's small and safe. Plus it gives us a chance=C2=A0to discuss implementa= tion further.

=E2=9D=AF zsh --help
Usage: zsh [<options>] [<argument> ...]

Special options:
=C2=A0--help =C2=A0=C2=A0=C2=A0=C2=A0show this message, then exit
=C2=A0--version =C2=A0show zsh version number, then exit
=C2=A0-b =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0end option pr= ocessing, like --
=C2=A0-c =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0take first ar= gument as a command to execute
=C2=A0-o OPTION =C2=A0set an option by name (see below)

Normal options are named.=C2=A0 An option may be turned on by
`-o OPTION', `--OPTION', `+o no_OPTION' or `+-no-OPTION'= ;.=C2=A0 An
option may be turned off by `-o no_OPTION', `--no-OPTION',
`+o OPTION' or `+-OPTION'.=C2=A0 Options are listed below only = in
`--OPTION' or `--no-OPTION' form.


This means, I'll make this = text be extractable to generate *.POT files and then we can use all kinds o= f tools and websites to do the actual translation.

I'll also use a certain syntax for parameters in the strings, and that= can also be used as an example for new strings to be added to the zsh.
=C2=A0
I don't know what is the anticipated release da= te for 6.0, but maybe we can put this much in for 6.0?

=
And then, since zsh 5.xx lasted 11 years, and before that 4.xx lasted = 12 years, I assume 6.xx will also last about 10+ years, can we make a long = term plan to fully implement=C2=A0gettext support during the lifetime of 6.= xx for the next 10 years?

What do you guys think? = Shall we try it?

Thanks,
//Agron




On Wed, Jun 7, 2023 at 10:56=E2= =80=AFPM Bart Schaefer <sch= aefer@brasslantern.com> wrote:
On Tue, Jun 6, 2023 at 8:54=E2=80=AFAM Peter Stephens= on
<p.w.st= ephenson@ntlworld.com> wrote:
>
> > On 06/06/2023 16:20 Agron Selimaj <as9902613@gmail.com> wrote:
> > However, I am not sure the zsh project supports gettext (and POEd= it) throughout.
> > So, in order to support localization in general, we first must us= e gettext everywhere.
> > Is this something this team is willing to do?
>
> This is certainly a useful thing to do, however previous discussions s= uggest there is
> no one around to do the considerable amount of work that supporting da= tabases on this
> scale would require.

Having previously overseen the gettext-ification of a piece of
software of similar original vintage and complexity, I would say that
supporting the databases is often the least of the issues.=C2=A0 Sentence structure varies, which requires converting catenated substrings into
snprintf formats or sets of alternatives; pluralization may differ,
requiring 0 / 1 / >1 conditionals even with gettext intervention; etc. Also, because of the pervasive changes required, we found it necessary
to merge all outstanding code changes and call a halt to other
development until the "l10n" pass was complete, or we couldn'= t track
deltas accurately (though we were stuck with CVS for version control
at the time).

This is definitely not something we would want to dive into until
after whatever the next zsh release is, is done.
--000000000000e22da105fd96306c--