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

Italian language #11

Closed
matteofg opened this issue Dec 12, 2022 · 14 comments
Closed

Italian language #11

matteofg opened this issue Dec 12, 2022 · 14 comments

Comments

@matteofg
Copy link

matteofg commented Dec 12, 2022

Hi Gustavo,
congratulations on your excellent package. I would like to contribute for the Italian localization.

However, we need to clarify an aspect about syntax issue regarding ranges.
In all languages currently supporting there is only one preposition. For example, in English we say: Equation (1.1) to (1.3)... In German we say: Seite 7 bis 12...
In Italian, two prepositions are used: equazioni da (1.1) a (1.3)... pagine da 7 a 12...

The cleveref package defines two commands to print the two prepositions. The high-level commands are \crefrangepreconjunction and \crefrangeconjunction.

For English, for example, these commands are defined as follows:

\renewcommand{\crefrangeconjunction}{ to\nobreakspace}
\renewcommand\crefrangepreconjunction{}

For Italian, however, the commands are defined as follows:

\renewcommand{crefrangeconjunction}{ a\nobreakspace}
\renewcommand\crefrangepreconjunction{da\nobreakspace}

Ultimately, to fully support Italian language, your package should define an additional command, e.g. called ‘rangepresep’.
In this way, the commands to correctly print ranges in Italian would be defined as follows:

rangepresep = {da\nobreakspace}
rangesep = {~a\nobreakspace}

Let me know what you think
Matteo

@gusbrs
Copy link
Owner

gusbrs commented Dec 12, 2022

Hi Matteo,
thank you for your interest and your offer. The Italian localization would be most welcome!

Regarding the range, zref-clever can definitely already handle a conjunction at that position. Take a look at the "Advanced reference formatting" section in the manual. You are looking for the option +refbounds-rb (I just caught a mistake in the explanation of it, it actually sets refbounds-first-rb and refbounds-mid-rb, in other words, the existing cases of a "range begin").

Something like:

\documentclass{article}

\usepackage[italian]{babel}

\usepackage{zref-clever}

\zcDeclareLanguage{italian}

\zcLanguageSetup{italian}{
  rangesep = { a~} ,
  pairsep  = { e~} ,
  type = equation ,
    Name-sg = Equazione ,
    name-sg = equazione ,
    Name-pl = Equazioni ,
    name-pl = equazioni ,
    refbounds = {(,,,)} ,
    refbounds-first-sg = {,(,),} ,
    +refbounds-rb = {da~(,,,)} ,
}


\begin{document}

\begin{equation}
  \zlabel{eq:1}
  x=y
\end{equation}

\begin{equation}
  \zlabel{eq:2}
  x=y
\end{equation}

\begin{equation}
  \zlabel{eq:3}
  x=y
\end{equation}

\zcref{eq:1,eq:2,eq:3}

\begin{equation}
  \zlabel{eq:4}
  x=y
\end{equation}

\begin{equation}
  \zlabel{eq:5}
  x=y
\end{equation}

\zcref{eq:1,eq:3,eq:4,eq:5} % Is this correct?

\end{document}

Screenshot from 2022-12-12 16-53-58

Some care is needed because I presume the range form "da ref a ref" is meant for all ranges, not just equations as I set there. But it is just a matter of going through the cases or setting the default value, as appropriate.

How would you like to proceed? I take it, from your initial comment, that you took a look at the language files for other languages. Are you comfortable with something like that, or would you rather stick to providing the translations (e.g. in the form of a MWE as the above) and let me handle the technical side?

@matteofg
Copy link
Author

Thank you for the quick response!

I figured that it could be done with the 'refbounds' commands, but as you rightly said, the range form "ref to ref" is meant for all ranges. Just for this reason I thought it would be more appropriate to add a command like 'rangesep', to be set once for all reference types.
Also, because the order of the 'refbounds' commands is important, I noticed one particular thing: you set the '+refbounds-rb 'command after the 'refbounds' and 'refbounds-first-sg' commands, but in the case of a file like 'zref-clever-italian.lang' saved in its own $HOME directory the '+refbounds-rb' command must be set before the other two commands. Why this difference in behavior between commands set in the document and commands saved in an external file?

As an aside, I have involved the users of the italian TUG's forum (GuIT), so that I can get more opinions regarding the translation of the terms.
I will wait a week or so, then I post the 'zref-clever-italian.lang' file below.

See you soon,
Matteo

@gusbrs
Copy link
Owner

gusbrs commented Dec 13, 2022

I figured that it could be done with the 'refbounds' commands, but as you rightly said, the range form "ref to ref" is meant for all ranges. Just for this reason I thought it would be more appropriate to add a command like 'rangesep', to be set once for all reference types.

The material surrounding the reference has been abstracted to "positional" options, they already exist and cover the possibilities the package can handle, and it has a consistent UI based on that abstraction. There is no need for a redundant alias to +refbounds-rb, which will only add noise and complicate things. Sorry, but no.

And to handle ranges of all types with that, it's easy enough, I have just set this way for equation because that was the example you provided, and that particular type has the complication of being surrounded by parentheses. Something like the following should suffice:

\zcLanguageSetup{italian}{
  rangesep = { a~} ,
  pairsep  = { e~} ,
  +refbounds-rb = {da~,,,} ,
  type = equation ,
    Name-sg = Equazione ,
    name-sg = equazione ,
    Name-pl = Equazioni ,
    name-pl = equazioni ,
    refbounds = {(,,,)} ,
    refbounds-first-sg = {,(,),} ,
    +refbounds-rb = {da~(,,,)} ,
}

Also, because the order of the 'refbounds' commands is important, I noticed one particular thing: you set the '+refbounds-rb 'command after the 'refbounds' and 'refbounds-first-sg' commands, but in the case of a file like 'zref-clever-italian.lang' saved in its own $HOME directory the '+refbounds-rb' command must be set before the other two commands. Why this difference in behavior between commands set in the document and commands saved in an external file?

Well, any option given twice or more (and that's what typically happens when you set some "group" refbounds options) has to have some precedence behavior. For user facing options (those set with \zcLanguageSetup), the option is always set, regardless of its previous state. Which means that the last value takes precedence. For the language files, we have to load them at begindocument (or later), since that's the point where we know from babel or polyglossia the language information. But we also don't want to override any options the user has actively set in the preamble. So the language files only set the values if they were not previously set. In other words, for them the precedence order is inverted, the first value takes precedence.

In practice, as far as I can see, the only case you'll have to worry about this, is the equation type, where, contrary to the use in \zcLanguageSetup, in the language file you'll have to do:

+refbounds-rb = {da~(,,,)} ,
refbounds-first-sg = {,(,),} ,
refbounds = {(,,,)} ,

As an aside, I have involved the users of the italian TUG's forum (GuIT), so that I can get more opinions regarding the translation of the terms. I will wait a week or so, then I post the 'zref-clever-italian.lang' file below.

This is great, thank you. I'm looking forward to it.

@matteofg
Copy link
Author

Hi Gustavo,
thank you very much for the explanations.

I need one more clarification, regarding the "book" reference type. I don't understand what it refers to, since LaTeX sectioning are: part, chapter, (sub)section and (sub)paragraph...

@gusbrs
Copy link
Owner

gusbrs commented Dec 19, 2022

Hi Matteo,

the book reference type is intended to be a major subdivision of a work, much like part. True, it does not exist in the standard classes, but they may exist elsewhere. In particular, it exists in memoir and, if I recall, this is probably the reason why I included it.

I've taken a look at the discussion at GuIT (thank you!, btw) and, though I haven't yet gone through it thoroughly, some things called my attention, so I think it might be useful if I anticipated some comments.

First thing is book, your initial question. At least in English, I'd take a "book" to be different from a "tome". A "tome" is very much a physical object. A "book" can also be taken as pretty much the same thing (connotations apart), but the meaning of the book type here is a different one, that of a subdivision of a work. In the sense that you might have one "tome" which contain several "books". Well, as I said, at least in English, I don't know in Italian. As a matter of fact, I have one book in hand with just such a structuring, and it is common enough that it may serve you as a reference. "Les Misérables" by Victor Hugo is divided in "Tomes"; "Livres"; and "Chapitres". If you happen to have one in Italian, you can check how they translated "Livre".

Second, I see you have already found out on your own, but yes, the listing type is meant to refer essentially to "code", it supports the listing package and similar ones.

Third, I noticed you have proposed to use § and ¶ as abbreviated forms for section and paragraph, respectively. I'm not sure these are fortunate choices. Specially the pilcrow, which is a very distinctive symbol, and which would probably break the reading flow (suggesting a "paragraph break" is there). I feel it typographically strange. Regarding §, it is indeed lighter and, at least in my language, I do see it "mid text" sometimes, but only in very specialized contexts, namely legal texts. Not really elsewhere. My general observation about this is: it is not because English has abbreviated forms for those types that Italian has to have them too. There's no need. Indeed, I'd suggest to include abbreviated forms sparingly. For those symbols in particular, I'd recommend that you use them only if they are really well established as abbreviations for these terms in the language for the purpose at hand, which is a cross-reference being typeset amidst regular text.

For the record, I link to the discussion at GuIT: https://www.guitex.org/home/it/forum/5-tex-e-latex/121856-zref-clever-e-localizzazione-in-italiano. And I thank all who have participated there.

@matteofg
Copy link
Author

the book reference type is intended to be a major subdivision of a work, much like part. True, it does not exist in the standard classes, but they may exist elsewhere. In particular, it exists in memoir and, if I recall, this is probably the reason why I included it.

Regarding the "Book" type, I had misunderstood the meaning. Therefore, even in Italian, the most appropriate translation is "Book".

Second, I see you have already found out on your own, but yes, the listing type is meant to refer essentially to "code", it supports the listing package and similar ones.

Regarding the "Listen" type, there are the same translation problems as in the French language. The italian term "listato" is an "Anglicism", but still it is the more appropriate term.

I noticed you have proposed to use § and ¶ as abbreviated forms for section and paragraph, respectively. I'm not sure these are fortunate choices […] My general observation about this is: it is not because English has abbreviated forms for those types that Italian has to have them too. There's no need. Indeed, I'd suggest to include abbreviated forms sparingly. For those symbols in particular, I'd recommend that you use them only if they are really well established as abbreviations for these terms in the language for the purpose at hand, which is a cross-reference being typeset amidst regular text.

In Italian, abbreviations are used mostly in a parenthesis in the text, such as in the following examples:

  • (supra, p. 12)
  • (v. cap. 3)

Regarding the sections, it is common to use a form like ... (v. § 2.1.1). Thus, the use of the § symbol is not a problem.
Regarding the "pilcrow" symbol, indeed it is less suitable for cross-reference use. So I eliminate the abbreviation tout-curt.

The final 'zref-clever-italian.lang' file is below:

namesep   = {\nobreakspace} ,
pairsep   = {~e\nobreakspace} ,
listsep   = {,~} ,
lastsep   = {~e\nobreakspace} ,
tpairsep  = {~e\nobreakspace} ,
tlistsep  = {,~} ,
tlastsep  = {,~e\nobreakspace} ,
notesep   = {~} ,
rangesep  = {~a\nobreakspace} ,
+refbounds-rb = {da\nobreakspace,,,} ,

type = book ,
  gender = m ,
  Name-sg = Libro ,
  name-sg = libro ,
  Name-pl = Libri ,
  name-pl = libri ,

type = part ,
  gender = f ,
  Name-sg = Parte ,
  name-sg = parte ,
  Name-pl = Parti ,
  name-pl = parti ,

type = chapter ,
  gender = m ,
  Name-sg = Capitolo ,
  name-sg = capitolo ,
  Name-pl = Capitoli ,
  name-pl = capitoli ,
  Name-sg-ab = Cap. ,
  name-sg-ab = cap. ,
  Name-pl-ab = Cap. ,
  name-pl-ab = cap. ,

type = section ,
  gender = m ,
  Name-sg = Paragrafo ,
  name-sg = paragrafo ,
  Name-pl = Paragrafi ,
  name-pl = paragrafi ,
  Name-sg-ab = § ,
  name-sg-ab = § ,
  Name-pl-ab = § ,
  name-pl-ab = § ,

type = paragraph ,
  gender = m ,
  Name-sg = Capoverso ,
  name-sg = capoverso ,
  Name-pl = Capoversi ,
  name-pl = capoversi ,

type = appendix ,
  gender = f ,
  Name-sg = Appendice ,
  name-sg = appendice ,
  Name-pl = Appendici ,
  name-pl = appendici ,

type = page ,
  gender = f ,
  Name-sg = Pagina ,
  name-sg = pagina ,
  Name-pl = Pagine ,
  name-pl = pagine ,
  rangesep = {\textendash} ,
  rangetopair = false ,
  Name-sg-ab = P. ,
  name-sg-ab = p. ,
  Name-pl-ab = P. ,
  name-pl-ab = p. ,
  +refbounds-rb = {~,,,} ,

type = line ,
  gender = f ,
  Name-sg = Riga ,
  name-sg = riga ,
  Name-pl = Righe ,
  name-pl = righe ,

type = figure ,
  gender = f ,
  Name-sg = Figura ,
  name-sg = figura ,
  Name-pl = Figure ,
  name-pl = figure ,
  Name-sg-ab = Fig. ,
  name-sg-ab = fig. ,
  Name-pl-ab = Fig. ,
  name-pl-ab = fig. ,

type = table ,
  gender = f ,
  Name-sg = Tabella ,
  name-sg = tabella ,
  Name-pl = Tabelle ,
  name-pl = tabelle ,
  Name-sg-ab = Tab. ,
  name-sg-ab = tab. ,
  Name-pl-ab = Tab. ,
  name-pl-ab = tab. ,

type = item ,
  gender = m ,
  Name-sg = Punto ,
  name-sg = punto ,
  Name-pl = Punti ,
  name-pl = punti ,

type = footnote ,
  gender = f ,
  Name-sg = Nota ,
  name-sg = nota ,
  Name-pl = Note ,
  name-pl = note ,
  Name-sg-ab = N. ,
  name-sg-ab = n. ,
  Name-pl-ab = N. ,
  name-pl-ab = n. ,

type = endnote ,
  gender = f ,
  Name-sg = Nota ,
  name-sg = nota ,
  Name-pl = Note ,
  name-pl = note ,
  Name-sg-ab = N. ,
  name-sg-ab = n. ,
  Name-pl-ab = N. ,
  name-pl-ab = n. ,

type = note ,
  gender = f ,
  Name-sg = Nota ,
  name-sg = nota ,
  Name-pl = Note ,
  name-pl = note ,
  Name-sg-ab = N. ,
  name-sg-ab = n. ,
  Name-pl-ab = N. ,
  name-pl-ab = n. ,

type = equation ,
  gender = f ,
  Name-sg = Equazione ,
  name-sg = equazione ,
  Name-pl = Equazioni ,
  name-pl = equazioni ,
  Name-sg-ab = Eq. ,
  name-sg-ab = eq. ,
  Name-pl-ab = Eq. ,
  name-pl-ab = eq. ,
  +refbounds-rb = {da~(,,,)} ,
  refbounds-first-sg = {,(,),} ,
  refbounds = {(,,,)} ,

type = theorem ,
  gender = m ,
  Name-sg = Teorema ,
  name-sg = teorema ,
  Name-pl = Teoremi ,
  name-pl = teoremi ,

type = lemma ,
  gender = m ,
  Name-sg = Lemma ,
  name-sg = lemma ,
  Name-pl = Lemmi ,
  name-pl = lemmi ,

type = corollary ,
  gender = m ,
  Name-sg = Corollario ,
  name-sg = corollario ,
  Name-pl = Corollari ,
  name-pl = corollari ,

type = proposition ,
  gender = f ,
  Name-sg = Proposizione ,
  name-sg = proposizione ,
  Name-pl = Proposizioni ,
  name-pl = proposizioni ,

type = definition ,
  gender = f ,
  Name-sg = Definizione ,
  name-sg = definizione ,
  Name-pl = Definizioni ,
  name-pl = definizioni ,

type = proof ,
  gender = f ,
  Name-sg = Dimostrazione ,
  name-sg = dimostrazione ,
  Name-pl = Dimostrazioni ,
  name-pl = dimostrazioni ,

type = result ,
  gender = m ,
  Name-sg = Risultato ,
  name-sg = risultato ,
  Name-pl = Risultati ,
  name-pl = risultati ,

type = remark ,
  gender = f ,
  Name-sg = Osservazione ,
  name-sg = osservazione ,
  Name-pl = Osservazioni ,
  name-pl = osservazioni ,

type = example ,
  gender = m ,
  Name-sg = Esempio ,
  name-sg = esempio ,
  Name-pl = Esempi ,
  name-pl = esempi ,
  Name-sg-ab = Es. ,
  name-sg-ab = es. ,
  Name-pl-ab = Es. ,
  name-pl-ab = es. ,

type = algorithm ,
  gender = m ,
  Name-sg = Algoritmo ,
  name-sg = algoritmo ,
  Name-pl = Algoritmi ,
  name-pl = algoritmi ,

type = listing ,
  gender = m ,
  Name-sg = Listato ,
  name-sg = listato ,
  Name-pl = Listati ,
  name-pl = listati ,

type = exercise ,
  gender = m ,
  Name-sg = Esercizio ,
  name-sg = esercizio ,
  Name-pl = Esercizi ,
  name-pl = esercizi ,

type = solution ,
  gender = f ,
  Name-sg = Soluzione ,
  name-sg = soluzione ,
  Name-pl = Soluzioni ,
  name-pl = soluzioni ,

@gusbrs
Copy link
Owner

gusbrs commented Dec 23, 2022

Hi Matteo, thank you very much. It's looking great overall! I do have some questions and further comments though.

First, I also need to take care of language declaration and aliasing. From the file (and from what I know of other Romance languages) I suppose that genders are masculine and feminine (gender={f,m}), that there are no declension cases (no declension option), and that there's no capitalization strict rule such that this is a matter of user preference (no allcaps option). So, I'd declare the language as:

\zcDeclareLanguage [ gender = { f , m } ] { italian }

Is this correct?

Second, I took a look at babel's language files and babel-italian contains only italian.ldf. Are there any babel or polyglossia language aliases I should be aware of?

Now comments regarding the language file proper.

Third, as far as I can tell you are aware of it, but I have to check. The language file is read in expl3 syntax, which means ~ stands for a regular space, whereas a non-breaking space requires \nobreakspace. It looks everything ok to me, can you confirm?

Fourth, you used +refbounds-rb = {~,,,} , for type = page. I understand you have to undo the default da~ there, but why the extra space? That is, why not +refbounds-rb = {,,,} , ?

Finally, a more general observation. It is my impression that you have been more generous in the provision of abbreviated forms than would be ideal. I suggested above to use them sparingly, perhaps I should elaborate on the reasoning behind my recommendation. The thing is the abbrev option is somewhat asymmetrical in its workings. For those wanting to just enable it globally (a very common use case), it is very easy to add one or another abbreviation you want, but it may be troublesome to remove several unwanted ones (and it has been worse in the past #4 ;-). That said, my general recommendation is to just set them for cases where they work particularly well for the language, considering the possible contexts where that kind of reference is typically done.

As I said, it is a general observation, but particularly called my attention the one character ones, such as n. for *note. p. for pages and § for section are admittedly common (as far as I can tell from other languages, that is). And you gave examples for them:

In Italian, abbreviations are used mostly in a parenthesis in the text, such as in the following examples:

(supra, p. 12)
(v. cap. 3)

Regarding the sections, it is common to use a form like ... (v. § 2.1.1). Thus, the use of the § symbol is not a problem.

And it seems you are thinking here in the context of citations. But, cross-references are very commonly, if not predominantly, used mid sentence, where they are expected to "blend in". So, which works better? (in Italian, that is):

As we have seen on p. 4, ...
As we have seen on page 4, ...

... this topic was discussed on § 1,2, and 4.
... this topic was discussed on sections 1,2, and 4.

Of course, the question is "what is the best default for those who choose abbrev=true?" All of this is configurable anyway.

I'm not saying not to use any particular one of the ones you proposed. I'm just making sure we are in the same wave length regarding what is a good abbreviated form for the purpose. That said, it's your call.

@gusbrs
Copy link
Owner

gusbrs commented Dec 25, 2022

Hi @matteo339 , I've decided to write a localization guideline for contributors to assist in the task you are currently up to: 5585b57.

I think you are pretty much well aware of everything in there, given you're being visibly careful and considerate at every step. But you may wish to take a look, perhaps it is still useful.

@matteofg
Copy link
Author

Hi Gustavo, sorry I didn't respond right away. I will now clarify the various issues

First, I also need to take care of language declaration and aliasing. From the file (and from what I know of other Romance languages) I suppose that genders are masculine and feminine (gender={f,m}), that there are no declension cases (no declension option), and that there's no capitalization strict rule such that this is a matter of user preference (no allcaps option). So, I'd declare the language as:
\zcDeclareLanguage [ gender = { f , m } ] { italian }
Is this correct?

Yes, all right! I always used the following preamble:

\usepackage{polyglossia}
	\setmainlanguage{italian}
\usepackage{zref-titleref,zref-check,zref-clever}
	\zcDeclareLanguage[gender={m,f}]{italian}

Second, I took a look at babel's language files and babel-italian contains only italian.ldf. Are there any babel or polyglossia language aliases I should be aware of?

to my knowledge no.

Third, as far as I can tell you are aware of it, but I have to check. The language file is read in expl3 syntax, which means ~ stands for a regular space, whereas a non-breaking space requires \nobreakspace. It looks everything ok to me, can you confirm?

I am aware of the meaning of ~ and \nobreakspace in exp3 syntax. Just about that I noticed an error in the type = equation setup. The correct definition of +refbounds-rb is:

+refbounds-rb = {da\nobreakspace(,,,)} ,

instead of

+refbounds-rb = {da~(,,,)} ,

Finally, a more general observation. It is my impression that you have been more generous in the provision of abbreviated forms than would be ideal. I suggested above to use them sparingly, perhaps I should elaborate on the reasoning behind my recommendation. The thing is the abbrev option is somewhat asymmetrical in its workings. For those wanting to just enable it globally (a very common use case), it is very easy to add one or another abbreviation you want, but it may be troublesome to remove several unwanted ones (and it has been worse in the past #4 ;-). That said, my general recommendation is to just set them for cases where they work particularly well for the language, considering the possible contexts where that kind of reference is typically done.

And it seems you are thinking here in the context of citations.

In Italian, abbreviations in the flow of text are considered ugly (maybe not quite wrong; definitely not elegant). So it would be inadvisable to set abbrev globally. Abbreviations (set up locally) are fine for citations (as in the posted examples).

If the idea of abbreviations is about their use in the flow of the text, then it would be correct to delete all abbreviations set in the Italian file (as in the French localization). Otherwise, the abbreviations set are those commonly used in the Italian language.

@gusbrs
Copy link
Owner

gusbrs commented Dec 27, 2022

Yes, all right! I always used the following preamble:

\usepackage{polyglossia}
	\setmainlanguage{italian}
\usepackage{zref-titleref,zref-check,zref-clever}
	\zcDeclareLanguage[gender={m,f}]{italian}

Great, I'll arrange to that.

Are there any babel or polyglossia language aliases I should be aware of?

to my knowledge no.

OK.

I am aware of the meaning of ~ and \nobreakspace in exp3 syntax. Just about that I noticed an error in the type = equation setup. The correct definition of +refbounds-rb is:

+refbounds-rb = {da\nobreakspace(,,,)} ,

instead of

+refbounds-rb = {da~(,,,)} ,

Oh, I missed that one as well. :-) I'll arrange to that too.

In Italian, abbreviations in the flow of text are considered ugly (maybe not quite wrong; definitely not elegant). So it would be inadvisable to set abbrev globally. Abbreviations (set up locally) are fine for citations (as in the posted examples).

If the idea of abbreviations is about their use in the flow of the text, then it would be correct to delete all abbreviations set in the Italian file (as in the French localization). Otherwise, the abbreviations set are those commonly used in the Italian language.

If that's the case, I really think we should curb down the number of abbreviations. Not necessarily all of them, but keep a few selected ones. The default abbreviations should work well in the flow of text (it is not the only case, but is a common one). And the default abbreviation set should be something sensible for someone who enables abbrev globally. For those willing to hand pick, it is always configurable. I hope I was able to convince you of the reasoning behind the recommendation...

Funny enough, I was taking a look at italian.ldf and \pagename is set to Pag.. Perhaps this is one abbreviation which makes sense?

Would you like to revise the abbreviations? Or would you prefer that I went on myself from what you explained?

@matteofg
Copy link
Author

I was taking a look at italian.ldf and \pagename is set to Pag.. Perhaps this is one abbreviation which makes sense?

the abbreviation pag. in the flow of text is quite common. There can be.

The default abbreviations should work well in the flow of text (it is not the only case, but is a common one). And the default abbreviation set should be something sensible for someone who enables abbrev globally.

Then, I think the following localization is the most appropriate:

namesep   = {\nobreakspace} ,
pairsep   = {~e\nobreakspace} ,
listsep   = {,~} ,
lastsep   = {~e\nobreakspace} ,
tpairsep  = {~e\nobreakspace} ,
tlistsep  = {,~} ,
tlastsep  = {,~e\nobreakspace} ,
notesep   = {~} ,
rangesep  = {~a\nobreakspace} ,
+refbounds-rb = {da\nobreakspace,,,} ,

type = book ,
  gender = m ,
  Name-sg = Libro ,
  name-sg = libro ,
  Name-pl = Libri ,
  name-pl = libri ,

type = part ,
  gender = f ,
  Name-sg = Parte ,
  name-sg = parte ,
  Name-pl = Parti ,
  name-pl = parti ,

type = chapter ,
  gender = m ,
  Name-sg = Capitolo ,
  name-sg = capitolo ,
  Name-pl = Capitoli ,
  name-pl = capitoli ,

type = section ,
  gender = m ,
  Name-sg = Paragrafo ,
  name-sg = paragrafo ,
  Name-pl = Paragrafi ,
  name-pl = paragrafi ,

type = paragraph ,
  gender = m ,
  Name-sg = Capoverso ,
  name-sg = capoverso ,
  Name-pl = Capoversi ,
  name-pl = capoversi ,

type = appendix ,
  gender = f ,
  Name-sg = Appendice ,
  name-sg = appendice ,
  Name-pl = Appendici ,
  name-pl = appendici ,

type = page ,
  gender = f ,
  Name-sg = Pagina ,
  name-sg = pagina ,
  Name-pl = Pagine ,
  name-pl = pagine ,
  rangesep = {\textendash} ,
  rangetopair = false ,
  Name-sg-ab = Pag. ,
  name-sg-ab = pag. ,
  Name-pl-ab = Pag. ,
  name-pl-ab = pag. ,
  +refbounds-rb = {~,,,} ,

type = line ,
  gender = f ,
  Name-sg = Riga ,
  name-sg = riga ,
  Name-pl = Righe ,
  name-pl = righe ,

type = figure ,
  gender = f ,
  Name-sg = Figura ,
  name-sg = figura ,
  Name-pl = Figure ,
  name-pl = figure ,
  Name-sg-ab = Fig. ,
  name-sg-ab = fig. ,
  Name-pl-ab = Fig. ,
  name-pl-ab = fig. ,

type = table ,
  gender = f ,
  Name-sg = Tabella ,
  name-sg = tabella ,
  Name-pl = Tabelle ,
  name-pl = tabelle ,
  Name-sg-ab = Tab. ,
  name-sg-ab = tab. ,
  Name-pl-ab = Tab. ,
  name-pl-ab = tab. ,

type = item ,
  gender = m ,
  Name-sg = Punto ,
  name-sg = punto ,
  Name-pl = Punti ,
  name-pl = punti ,

type = footnote ,
  gender = f ,
  Name-sg = Nota ,
  name-sg = nota ,
  Name-pl = Note ,
  name-pl = note ,

type = endnote ,
  gender = f ,
  Name-sg = Nota ,
  name-sg = nota ,
  Name-pl = Note ,
  name-pl = note ,

type = note ,
  gender = f ,
  Name-sg = Nota ,
  name-sg = nota ,
  Name-pl = Note ,
  name-pl = note ,

type = equation ,
  gender = f ,
  Name-sg = Equazione ,
  name-sg = equazione ,
  Name-pl = Equazioni ,
  name-pl = equazioni ,
  Name-sg-ab = Eq. ,
  name-sg-ab = eq. ,
  Name-pl-ab = Eq. ,
  name-pl-ab = eq. ,
  +refbounds-rb = {da\nobreakspace(,,,)} ,
  refbounds-first-sg = {,(,),} ,
  refbounds = {(,,,)} ,

type = theorem ,
  gender = m ,
  Name-sg = Teorema ,
  name-sg = teorema ,
  Name-pl = Teoremi ,
  name-pl = teoremi ,

type = lemma ,
  gender = m ,
  Name-sg = Lemma ,
  name-sg = lemma ,
  Name-pl = Lemmi ,
  name-pl = lemmi ,

type = corollary ,
  gender = m ,
  Name-sg = Corollario ,
  name-sg = corollario ,
  Name-pl = Corollari ,
  name-pl = corollari ,

type = proposition ,
  gender = f ,
  Name-sg = Proposizione ,
  name-sg = proposizione ,
  Name-pl = Proposizioni ,
  name-pl = proposizioni ,

type = definition ,
  gender = f ,
  Name-sg = Definizione ,
  name-sg = definizione ,
  Name-pl = Definizioni ,
  name-pl = definizioni ,

type = proof ,
  gender = f ,
  Name-sg = Dimostrazione ,
  name-sg = dimostrazione ,
  Name-pl = Dimostrazioni ,
  name-pl = dimostrazioni ,

type = result ,
  gender = m ,
  Name-sg = Risultato ,
  name-sg = risultato ,
  Name-pl = Risultati ,
  name-pl = risultati ,

type = remark ,
  gender = f ,
  Name-sg = Osservazione ,
  name-sg = osservazione ,
  Name-pl = Osservazioni ,
  name-pl = osservazioni ,

type = example ,
  gender = m ,
  Name-sg = Esempio ,
  name-sg = esempio ,
  Name-pl = Esempi ,
  name-pl = esempi ,

type = algorithm ,
  gender = m ,
  Name-sg = Algoritmo ,
  name-sg = algoritmo ,
  Name-pl = Algoritmi ,
  name-pl = algoritmi ,

type = listing ,
  gender = m ,
  Name-sg = Listato ,
  name-sg = listato ,
  Name-pl = Listati ,
  name-pl = listati ,

type = exercise ,
  gender = m ,
  Name-sg = Esercizio ,
  name-sg = esercizio ,
  Name-pl = Esercizi ,
  name-pl = esercizi ,

type = solution ,
  gender = f ,
  Name-sg = Soluzione ,
  name-sg = soluzione ,
  Name-pl = Soluzioni ,
  name-pl = soluzioni ,

gusbrs added a commit that referenced this issue Dec 27, 2022
@gusbrs
Copy link
Owner

gusbrs commented Dec 27, 2022

Hi Matteo, this looks great! Thank you very much!

So I've just committed it. It will be part of the next release, which shouldn't take long. The only nitpick I did touch was the stray ~ in the +refbounds-rb for page (which was being eaten by the keyval processing anyway).

I have one further question though. Did I get your name right? Even if I did, would you prefer the privacy of the username?

@matteofg
Copy link
Author

The only nitpick I did touch was the stray ~ in the +refbounds-rb for page (which was being eaten by the keyval processing anyway)

sorry, you are right

Did I get your name right? Even if I did, would you prefer the privacy of the username?

I have no privacy problems, but my name is Matteo Ferrigato, not Matteo Fadini :-)

I'm looking forward to updating your beautiful package.
Thank you
Matteo

gusbrs added a commit that referenced this issue Dec 27, 2022
@gusbrs
Copy link
Owner

gusbrs commented Dec 27, 2022

Did I get your name right? Even if I did, would you prefer the privacy of the username?

I have no privacy problems, but my name is Matteo Ferrigato, not Matteo Fadini :-)

I had "deduced" it from the list of associates of GuIT, the only "MatteoF"... That's why I had to ask. ;-)

Fixed now.

I'm looking forward to updating your beautiful package.

Coming soon.

Thank you

Thank you!

@gusbrs gusbrs closed this as completed Dec 27, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants