Tema de Usuari Discussió:Vriullop/Fitxer de Discussions Estructurades 1

Amadalvarez (discussiócontribucions)

Bé, haurem de crear el perfil de la llengua din. Ho fas tu o h demano a VP:PA?.

Passa per la meva discussió que l'Amir m'ha respost i dona pistes sobre el tema de triar idioma que, a més, ens implica els mapes.

Merci,

Vriullop (discussiócontribucions)

Abans de res s'ha de fer el canvi dels femenins, i això depèn de la revisió via rastreig per traslladar els que ja usem a Wikidata. Una vegada revisats faig el canvi dels femenins via Wikidata, esperant no perdre'n cap pel camí, i immediatament activo el paràmetre lang. La idea és usar la llengua del wiki per defecte i poder canviar amb un paràmetre lang a nivell de plantilla, és a dir, usar {{infotaula de persona|lang=din}} o bé lang={{int:lang}}, per a proves o demos. El següent pas serà decidir si usem int:lang per defecte en alguns espais de noms.

El Mediawiki:Lang/din ja l'he creat.

Amadalvarez (discussiócontribucions)

Totalment d'acord. Ja he anat fent canvis. He atacat les esportistes perquè quan arregles una, en cauen(cauran) 10 més de la llista.

Vriullop (discussiócontribucions)

Com que els femenins va per llarg, fa dos dies n'hi havia 2000 en rastreig, ahir 1500, he començat a fer tirant de femenins de Wikidata i introduint el paràmetre lang. Mira les proves a Special:Permalink/20013123. Els valors ja surten en la llengua demanada, o la fallback (anglès pel dinka), excepte dates i edat amb format fixat en subplantilles. Està fet via Plantilla:Infotaula persona/proves/lang on només he canviat l'invoke a Mòdul:Wikidata/proves/lang. Com puc provar les etiquetes?

Amadalvarez (discussiócontribucions)
Amadalvarez (discussiócontribucions)
Amadalvarez (discussiócontribucions)

No em canvia l'idioma a les etiquetes pel sol fet de tenir lang=din a la primera crida. Pots confirmar que el invoke:wikidata/proves/lang/getLabel que tinc a infotaula persona/labels és com ha de ser ?

Vriullop (discussiócontribucions)

De moment m'he centrat en que funcioni amb un paràmetre lang definit. Que funcioni per la llengua de les preferències no és prioritat, tot i que sempre es pot definir lang={{int:lang}}.

El paràmetre lang, igual que l'item, és una definició global però s'ha d'anar passant com a mínim fins la plantilla que fa l'invoke. Ja ho he fet. És el que intentava explicar per item, ens el podem estalviar en l'invoke però ha de ser un dels paràmetres passats a la plantilla que fa l'invoke.

Si t'hi has fixat, he afegit un llapis en els valors que no són en la llengua demanada o per defecte la local del wiki. A notar que en aquest cas utilitza les llengües fallback, per dinka és anglès, per occità és ca-fr-en, per català és oc-en. El llapis facilita fer la traducció enllaçant a l'ítem corresponent. Serà útil també en català quan estigui tot actiu. Miraré d'afegir-lo també en les etiquetes.

La introducció d'etiquetes codificades amb T suposaran un problema per a una internacionalització ràpida. No tothom està avesat a trobar les plantilles a traduir, pocs tenen alguna idea de dinka, i d'entrada només es veuen codis estranys. Sempre que sigui possible seria millor una Q. Per exemple, per "T17=altres dades" es pot usar other (Q55107540) i en tot cas afinar-ho en català en local.

Amadalvarez (discussiócontribucions)

Sobre el tema dels literals, ja estic fent molta poda, però hi ha coses inexistents "nou càrrec", "pares", etc. Per mi la traducció d'aquests conceptes forma part del setup de la nova WP que, en tot cas, serà més suau que ara perquè estarà concentrat. La meva idea era que les plantilles "labels" tinguessin només dues llengües: l'anglès per a fer de llengua neutral a partir de la qual traduir i la local on cadascú fes una traducció inicial massiva i, si després hi ha alguna etiqueta de les recuperades de WD que no li acaba d'encaixar, pot afegir una excepció i li agafarà prioritàriament; però ja serà la seva còpia.

Vriullop (discussiócontribucions)

Per "nou càrrec" podria ser n/a (Q929804). Per "pares" existeix progenitor (Q7566) però aquí entrem en el problema dels plurals. Clar que sempre en quedaran d'intractables. Llavors a {{Infotaula persona/labels}} canvio anglès per default. El que es pot fer és afegit el llapisset, quan la llengua no sigui la local ni l'anglès, i que enllaci a la plantilla de traduccions.

Amadalvarez (discussiócontribucions)

Hi ha molts aprofitables que apareixen com a àlies i tampoc vull desvirtuar els labels de WD amb risc que algú ho canvii. Els conceptes han de ser prou invariables si no volem tenir sorpreses posteriors. Per exemple: "especialitat" està referit a esports. Si agafo el concepte genèric especialitat (Q1047113) ningú assegura que en una altra llengua el concepte "especialitat esportiva" es digui seguint la mateixa base. Ja anirem polint. El que dius del llapiset apuntant a la plantilla labels pot estar bé, però no em sembla prioritari. Ara estic acabant lo de les proteccions patrimonials que és bàsic per atacar la traducció de plantilla:infotaula edifici. He fet una millora que compatibilitzarà la recuperació de WD amb les entrades manuals dels "béns inventariats" que no estan a la P1435 de WD (i que tenim centenars). A vegades coincideixen amb BCILs o BCINs i, tal com està ara, o tot és manual o tot és WD per evitar inconsistències o duplicats. Ja ho descriuré amb detall a la documentació.

Amadalvarez (discussiócontribucions)

Una pregunta de "globals": quan invoco una subplantilla que farà invokes al Wikidata, li haig de passar el lang={{{lang|}}}, a més de l'item ?.

Vriullop (discussiócontribucions)

Sí, igual que item.

Amadalvarez (discussiócontribucions)

Actualització estat:

  • He alineat la versió de proves persona que havies fet amb les proves multilingüe de dades, amb la que jo tenia de labels. Fem servir {{proves persona}}. La {{infotaula persona/proves/lang}} és una redirecció.
  • la pàgina demo que es mostra té els exemples en diversos idiomes, alguns amb altres alfabets
  • He començat a treballar amb els "edificis" a {{proves amadalvarez}} i ja té una pàgina demo associada amb 3 llengües.
  • Quan tractis el "formatting=ca(o altra llengua)", no la canviïs per la lang global, perquè a priori no podem afirmar que sempre es vol la llengua pròpia. Ja ho aplico jo quan toca a la infotaula, en fer l'invoke.

Una pregunta:

A Plantilla:Sessió Patrimoni Unesco calcula el número de sessió a partir de l'any i la presenta com a ordinal. Saps si hi alguna fórmula per saber escriure els ordinals en qualsevol llengua, o simplement passo de fer-ho ordinal ?.

  • autoresposta: fent servir plantilla:ordinal, que tothom en té una.

Salut !

Vriullop (discussiócontribucions)

En l'anglès en:Module:Wikidata tenen una funció makeOrdinal amb els sufixos definits a la variable i18n. Sembla que és una qüestió comuna i fàcil de resoldre en la majoria de llengües definint 4 sufixos, excepte en català que són 5. De moment no ha sortit la necessitat de fer ordinals en el mòdul però si fos necessari caldria plantejar-ho com un case=ordinal posant aquesta funció makeOrdinal a Mòdul:Wikidata/i18n i que cada llengua s'ho adapti. En l'exemple de la Unesco, tractant-se d'una plantilla cal resoldre-ho amb plantilla.

En els exemples trobo a faltar alguna dona. En proves/lang ja treu els femenins de Wikidata. Estic segur que funciona en català, tret dels casos pendents de revisar, i voldria veure-ho en altres llengües.

El formating=ca no ho entenc. En cas de monolingualtext, tracta formatting=language, formatting=text, amb qualsevol altre valor (originalment era formating=ca) treu el valor en la llengua lang, i sense cap valor els treu tots. Per què no ha de ser en la llengua demanada? Potser cal replantejar la seva funcionalitat però caldria veure els casos d'ús.

Amadalvarez (discussiócontribucions)

1)L'únic ordinal que tenim dins un invoke és als càrrecs de la infotaula persona, però ho soluciono posant-li la plantilla. Per mi no cal.

2) ja hi ha una dona. Ara estic treballant en les subplantilles dels càrrecs i els esportistes, per això surten coses sense traduir, i precisament el nom del càrrec s'obté amb la Plantilla:Nom ítem WD (si recordes era aquell cas en que no el recupera el mòdul, perquè em cal obtenir-lo en raw), i la feminització la fa amb el ca-flexió. Com que pensava canviar-la a getLabel, si t'animes podies adaptar-la funció per a que també agafi la versió femenina.

3) Si tu ho dius, així serà. Per mi (i per les instruccions) language vol dir que retorna el codi de llenguatge del valor, text vol dir que passi text pla, sense span amb la llengua i ca o fr o ... vol dir que aquesta és la llengua que vols recuperar de les possibles que hi ha. Això era el que jo pensava amb el mòdul en producció. Ara he provat amb /proves/lang i la conclusió és: la llengua a recuperar l'agafa de lang, ja sigui global o afegit a la crida. Ara bé, el formatting ha quedat una mica tocat:

  • no serveix per indicar la llengua a recuperar (com tu deies)
  • si no li poses res, retorna totes els valors amb span
  • si li poses qualsevol cosa, retorna el cas que acompleix el lang, sense span
  • si li poses language, retorna el codi de tots els idiomes que hi ha
  • si li poses text, retorna tots els valor sense span.
  • tots els casos a special:permalink/20046305
Vriullop (discussiócontribucions)

2) Doncs no funcionen les formes femenines, ni en català ni en res. A revisar.

2bis) Nom ítem WD queda pendent per quan l'entengui.

3) Monolingualtext. Recapitulant, la primera versió copiada de l'anglesa era formatting=language, formatting=text o tot. Desprès hi vaig afegir formatting=ca per treure el valor en català, i en instal·lar-ho a eu.wiki ampliat a qualsevol valor per treure-ho en la llengua local. En proves/lang canviat a la llengua lang. Aquí no hi he posat cap span en cap valor amb llengua diferent a la local, monolingualtext, labels o enllaços, per la idea de que és provisional, per proves o demos. Segurament cal replantejar-ho tot plegat. No sé si s'ha utilitzat mai language, text i llista de tot. Amb el barret d'usuari, quina hauria de ser l'operativa per monolingualtext?

Amadalvarez (discussiócontribucions)

2) felicitacions pels femenins !.

2bis) nom ítem WD fa el mateix que el getLabel + linked: Si hi ha article, l'enllaça i si no enllaça a WD posant el label, si existeix. Per això més avall et deia si ja era estable com per utilitzar-lo en lloc del wikibase-label / page que tinc ara. Però com que la seva funció és passar de Q a text i el text potser s'ha de feminitzar (cas pràctic: els càrrecs polítics), també feia aquesta funció. Situació actual: he fet plantilla:nom ítem WD2 amb les mateixes funcions, però fent servir getLabel. Llavors és quan he pensat que, si et deixaves convèncer, podies fer que el getLabel recuperes "normal" o "feminitzant", a petició amb un case=gender i llavors directament liquidàvem la plantilla en qüestió. fàcil, oi?.

PD: estic preparant una bona resposta pels monolinguals.

Salut !

Vriullop (discussiócontribucions)

Cada vegada que em miro aquesta plantilla tinc la sensació de que és un hack. Posa'm un exemple on s'usi Nom ítem en femení, a veure si ho entenc millor. De totes formes, tinc entès que getLabel necessitarà femenins a banda de via "Nom ítem", correcte?

Amadalvarez (discussiócontribucions)

és fa servir a Plantilla:Infotaula persona/capçalcàrrec. Potser és un hack esperant la teva solució. Tot va començar per aquelles situacions en que, en un formatting=table, es necessitaria obtenir el valor i el raw de la propietat (no d'un qualifier que el posaria dos cops en la mateixa crida). Com que no ens varem ensortir perquè complicava massa el codi del table, recupero només el raw (necessari per a que sigui l'item d'una altra cosa) i quan em fa falta el seu valor crido aquesta plantilla. Que vull obtenir?. l'article o en el seu defecte el label. I quins mitjans tenia fins ara ? : wikibase:page o wikibase:label. I aquí estem.

A l'exemple que t'he posat s'arriba des del rowformat del bucle de càrrecs. La propietat recuperada són els càrrecs i els qualificadors són les dates i el predecessor-successor, etc. A la capçalera (que és el que fa aquesta plantilla) ens cal l'escut (obtingut a l'ítem del càrrec, no de la persona, i per això ens cal la Q del càrrec) i també ens cal el nom del càrrec que, com no l'hem pogut agafar, el recuperem a partir de la seva Q. Però, ai las, els càrrecs es feminitzen. El que dius de femenins a banda del nom, no ho crec. Jo m'imaginava invoke:getLabel|<item>|link=yes/no|case=gender(opcional)|itemgender=. Si no hi ha case=gender funciona com ara; amb case=gender, mira si és dona l'itemgender i feminitza l'item.

Vriullop (discussiócontribucions)

Ok, ara ho entenc. És el cas del $0raw que en el seu moment ja em va costar. Les taules tenen una columna 0 fixa i columnes 1-x variables. Introduir una columna nova 0bis és traslladar el hack al mòdul i no li veig solució raonable.

Tal com està la plantilla Nom ítem seria més aviat un fem=yes/no perquè ja li passes la P21 com a paràmetre. Trobo més lògic que la consulta a P21 la resolgui el mòdul passant-li l'item global itemgender={{{item|}}}.

M'ho miro. Haig de reorganitzar els femenins en funcions locals per reutilitzar-les a getLabel.

Amadalvarez (discussiócontribucions)

Bravo !!. T'haig de dir que a curt termini això de feminitzar serà la única funció que li quedarà, perquè allà on no cal feminitzar, ho estic canviant per un getLabel directament.

Vriullop (discussiócontribucions)

Estava fent la migdiada i m'he hagut d'aixecar per una il·luminació (es quan dormo que hi veig clar). Continua sent un hack, però d'una sola línia. Prova {{#invoke:wikidata/proves/lang|claim|item=Q2681411|formatting=table|property=P39|qualifier=P39|case0=gender|colformat1=raw}}

Amadalvarez (discussiócontribucions)

Definitivament, et senta bé fer migdiada.

Ja ho pots veure a la Forcadell de Plantilla:Proves persona. No majusculitza.

Bona nit !

Ah. Curiositat. Si no hi ha label d'un idioma no intenta agafar la forma femenina. Sembla lògic però m'ha espatllat la prova.

Vriullop (discussiócontribucions)

El truc de repetir la propietat com a qualificador ja l'he passat al mòdul en viu.

Vriullop (discussiócontribucions)

Majúscules arreglades: Special:Diff/20052744. Ja no cal els femenins a getLabel?

L'ordre que segueix és primer el label en la llengua lang o en els fallback. Es queda amb la primera llengua x amb la que ha aconseguit un label. Desprès consulta el femení amb aquesta llengua x. Se suposa que si no hi ha label en una llengua tampoc tindrà femení en aquesta llengua.

Per cert, gràcies a Lua he trobat la forma de consultar com estan definits els fallback al Mediawiki. Edita qualsevol mòdul, sense por. A la caixa "Consola de depuració" escriu =mw.language.getFallbacksFor("oc")[1] amb el codi que vulguis i polsa enter. En aquest cas n'hi ha fins a 3: =mw.language.getFallbacksFor("oc")[2] etc.

Amadalvarez (discussiócontribucions)

1) ho deixaria en stand-by perquè els casos que justificaven "nom item WD" en femení tenien sempre el seu origen en un formatting=table, ara solucionat. Ara bé, l'aparició d'aquesta plantilla, primer, i ara del getLabel ha obert nous usos i, prefereixo esperar que no em trobi el cas, abans de descartar-ho.

2) sembla molt lògic, res a canviar.

3) Bo de saber.

A banda:

a) quina previsió tens per fer multilingüe el getParentValues ?. Acabaré edifici i em ficaré amb geografia política i totes dues ho fan servir abastament.

b) has vist la taula dels monolinguals ?. Sembla complex però està fet amb vocació de documentar-ho bé. En el fons són 3 opcions per paràmetre. Els casos il·lògics estan explicats per a que s'entengui el que li passarà a l'editor si ho fa servir malament. Així el comportament del mòdul és homogeni, tot i que retorni una cosa inútil.

c) d'avui a divendres tenim el Paucabot a Cardiff fent una presentació de wikidata powered infoboxes. A veure que tal li va.

merci,

Vriullop (discussiócontribucions)

No tinc res previst per getParentValues, no m'ho he mirat. He vist la taula dels monolinguals i està en repòs a veure com ho digereixo. Encara estic passant femenins a Wikidata com a primer pas de tot plegat.

Amadalvarez (discussiócontribucions)

només és aplicar la lang, que jo vegi. Després s'hauria de tocar el /labels, però serà per cada llengua quan s'instal·li, entenc.

Vriullop (discussiócontribucions)
Amadalvarez (discussiócontribucions)

Segueixo preguntant: Com fas per determinar el format a aplicar a les dates segons versió lingüística ?. Ho tens en el /i18n ?. Tenim algunes plantilles de dates (data naixement, defunció, circa) que en algun moment decideixen el format amb que criden el mòdul. Fet!. Respostes a continuació.

Vriullop (discussiócontribucions)

El format de dates per defecte el pren de /i18n, si no s'usa cap formatting específic. És equivalent a #time aplicant-li el codi de llengua. En la documentació hi ha l'exemple {{#time:d F Y|1988-02-28|nl}}. Pràcticament només afecta al nom del mes sencer, no hi ha altres formats predefinits. Es pot intentar, quan hi hagi el mes sencer, usar el #time amb lang. Però al final és una cosa específica per llengua. Per exemple en l'anglesa tenen prohibit enllaçar les dates en les infotaules, i en el text només si es parla d'elles.

En el cas de la funció years_old es podria definir un format a /i18n, en anglès "age $1" i en català "$1 anys", però caldrà sincronitzar-ho amb un canvi en les plantilles.

Vriullop (discussiócontribucions)

He modificat {{Data naixement}} per funcionar amb #time i amb el codi de llengua, com a mostra. Quan es cridi caldrà passar-li el paràmetre lang. Com a mínim treu el mes traduït, tot i que genera un enllaç vermell. Fet!

També he inclòs el format ["years_old"] = "age $1". A {{Data de defunció i edat/wd}} funciona fent la crida a Wikidata/proves/lang i eliminant "anys" del formatting. Surt en anglès perquè encara no hi ha la traducció a /i18n. Per cada llengua dependrà de /i18n. No fet!

He respectat el codi actual fent que "anys/years old/..." surti de WD (anys (Q24564698)). Fet!
Amadalvarez (discussiócontribucions)

Justament estava modificant Plantilla:Data_naixement_i_edat/wd per tractar lo de years old i ja l'he fet multilingüe. El mes encara surt en català perquè té el mòdul actual. He provat amb /proves/lang i canvia també format data. Per tant, a questa OK. Vaig a posar el years_old a Plantilla:Data de defunció i edat/wd com l'he posat a naixement. Fet!

El {{circa}} també està modificat, però no es veu perquè crida el mòdul actual. Haig d'acabar de fer proves, perquè té moltes combinacions. En procés...

Amadalvarez (discussiócontribucions)

Tema unitats de mesura. Es continua veient en català perquè a) aplica el /units actual, i b) després de rebre resposta mòdul, sempre passa pel {{convert}} per assegurar que té una unitat que ens és propera (cm i no peus, kg i no lliures, etc.). Puc posar un IF per saltar aquest segon aspecte si el retorn ja és com volem, però com el que retorna és un text, és impossible fer-ho bé. Per tant, s'arreglarà i/o ajustarà quan s'instal·li i agafi el seu propi convert i el seu propi wikidata/units. per comprovar

Vriullop (discussiócontribucions)

2) Els femenins ja funcionen.

Amadalvarez (discussiócontribucions)

Més amunt em preguntaves si caldria encara el getLabel amb femení. Per sort et vaig respondre "deixa-ho en stand-by". Doncs bé, fent servir el getLabel per recuperar labels algun cas caldrà feminitzar. Ex.:Concedit per (P1027). Quan les etiquetes eren literals he fet filigranes per trobar neutres i evitar haver de diferenciar, però ara no controlem. No és urgent, però cal pensar-ho. Prova: special:permalink/20057350. Merci. Fet!

Vriullop (discussiócontribucions)

Fet, provat amb {{#invoke:Wikidata/proves/lang | getLabel | P748 | itemgender=Q87586}}

Amadalvarez (discussiócontribucions)

Segueixo amb les proves:

  • Puc canviar {{Nom ítem WD}} per a que funcioni amb la nova getLabel ? Fet!
  • A la {{Imatge item subordinat}} es mostra una imatge i l'enllaç associat pot ser a l'article WP, al label WD o enlloc, a triar a la crida. Ho faig amb wikibase i no em funciona l'accés a l'article quan li passo una llengua (ni que sigui ca). Veuràs una col·lecció de situacions fetes directament amb wikibase a special:permalink/20044910 Fet!. Veure resposta a sota
  • Els textos recuperats de WD en altres llengües que surten a les infotaules enllacen amb la cawiki, no amb la llengua corresponent. Assumeixo que això és correcte, ja que ho fem per facilitar la visualització no per sortir navegant fora de la VP. Ara bé, quan s'instal·li en una altra WP, entenc que funcionarà bé perquè és la llengua local. És correcte ?. Fet!. Veure resposta a sota
  • hauràs vist que una de les proves l'he feta en hebreu i, clar, aquesta llengua s'escriu de dreta a esquerra. Assumeixo que quan estigui en el seu entorn, no serà un problema perquè la seva {{infobox}} i tota la seva instal·lació ho resoldrà, oi?. Fet!. Veure resposta a sota

Merci

Vriullop (discussiócontribucions)
  • Wikibase page. En aquest cas el segon paràmetre no és el codi de llengua sinó del wiki. Funciona si canvies "de" per "dewiki". Surt traduïda l'etiqueta emergent però l'enllaç és vermell. corregit
  • Els enllaços amb formatting sitelink o internallink doncs són això, enllaçats en local independentment de lang que només afecta a les etiquetes. En una altra wiki seguiran sent locals i amb les etiquetes segons el lang per defecte local o els seus fallback.
  • En llengües RTL se suposa que funcionarà per la definició de l'entorn global de llengua. Si a {{Proves persona/actor/ús}} hi poso <div lang="he" dir="rtl">...</div> en la prova del Cruyff doncs li dóna la volta a un munt de coses, no sé si del tot correcte, però espero que en el seu wiki ho afini. Fet!
Amadalvarez (discussiócontribucions)

Proposta monolingual. Fet!

Adjunto taula de casos exhaustiva. No totes les situacions tenen sentit, però penso que no cal que el mòdul faci res. Gestionar errors seria complex. Les 4 columnes primeres són el que es vol aconseguir i un cas d'ús possible. Les 3 següents indiquen com s'haurien d'emplenar els paràmetres. He posat buit en els casos que m'han semblat més habituals, però no coincideixen amb la lògica de la resta de tractament del mòdul (false=1, buit=all), si ho vols invertir per coherència, cap problema. El firstrank (que ja no teníem) no té sentit perquè en aquest format la prioritat hauria de ser la llengua que t'interessa recuperar. Bé, si hi ha algun dubte/discrepància,...a disposar.

Quants recuperarLlenguaRetornCas d'ús  listformattingseparatorComentaris que no afecten a l'actuació del mòdul
Recuperar un únic valorde la llengua global valor + llenguatriar el valor de la versió corrent buitbuitN/A
   Només valortriar el valor de la versió corrent buittextN/A
     només codi de llenguaN/A buitlanguageN/ASense utilitat perquè és la llengua de la pròpia WP, llevat que tinguem lang=
d'una llengua específica valor + llenguaFer servir una versió concreta diferent de la llengua corrent codi llenguabuitN/A
   Només valorsaber si existeix versió per una llengua concreta codi llenguatextN/A
   només codi de llenguaN/A codi llengualanguageN/ASense utilitat perquè és la llengua que li hem proporcionat a "list="
Recuperar tots els valors (o firstrank)versions lingüístiques igualment vàlides valor + llenguanoms oficials / originals. No sempre és únic, com en estats multilingües allbuitsi
    Només valornoms oficials / originals. alltextsi
    només codi de llenguaSaber la llengua retornada.   alllanguagesiNomés útil quan hi ha només 1 valor.
Casos multivalor (llegenda,   valor + llenguasense sentit allbuitsiRetorna una llista heterogènia i amb un format poc tractable via parsering
 Només valorPot interessar per a fer un str find alltextsi
 només codi de llenguasense sentit alllanguagesiRetorna una llista de llengües sense aparellar amb els corresponents valors
Vriullop (discussiócontribucions)

A veure si ho he entès. Em sembla bé combinar-ho amb el paràmetre list, cosa que ara no fa, però hauria de ser amb els valors que ja usa: list=false, per defecte list=true. Cal combinar-ho també amb el paràmetre lang, llavors no té sentit usar list=lang. Tampoc tindrà sentit l'actual formatting=ca que s'haurà d'eliminar i substituir per list=false. El valor formatting=text ara el trobo confús, de fet hauria de ser formatting=raw, però deixem-ho estar. De fet, l'span de llengua hi hauria de ser per tots els retorns en llengua diferent a la local, excepte aquest formatting=text(raw). El formatting=language sembla que no té cap utilitat, però és senzill i no molesta, el podem deixar. A veure si encaixa amb la meva taula d'opcions. No considero separator ja que sempre hi és quan hi ha una llista.

langlistformattingRetorna
<codi>falseni text ni languagetext en lang, amb span si lang≠local
<codi>falsetexttext en lang sense span
<codi>falselanguagelang, si existeix; no res, si no existeix (sense sentit?, potser per comprovacions prèvies)
<no s'usa>trueni text ni languagetots els texts, amb span pels lang≠local
<no s'usa>truetexttots els texts sense span (sense sentit?)
<no s'usa>truelanguagetots els language existents (sense sentit?)
Amadalvarez (discussiócontribucions)

Amb lang: Llavors, vol dir que faríem servir el paràmetre lang del invoke específic per a fer referència a la llengua que estem buscant, ja sigui la de la lang o una que en interessa. Ex.: vull el nom en llatí, tant si estic en català com si la lang de l'editor és fr. Com que només volem un i sabem quin és, el list=false. Primera part, coherent.

Sense lang: Quan no sabem el que busquem, sinó volem recuperar el "habitualment" únic valor que hi ha (cas de "nom en llengua original", o similar), s'aconseguiria amb list=true. Si finalment hi ha més d'un valor (entorns multilingüe), només l'opció formatting text o null ens donarien un contingut aprofitable per mostrar; fins i tot el formatting=text permetria alguna parsering tipus str find. Ara bé, el formatting =language, que no serveix per res en multivalor, ens estaria dient en quina llengua està allò que hem recuperat, si és monovalor. Cosa útil.

En aquest casos, actualment estic optant per recuperar amb span, perquè per mi el format ideal per mostrar en llistes de noms oficials seria "text (llengua)", però només ho puc muntar quan sé que només he recuperat 1 valor i si en són més, ja no puc mostra la llengua amb aquest format quan, precisament, més es necessita. Això en noms de poblacions orientals o africanes amb versió àrab + llengua local és força habitual. Podria existir un formatting que ho donés ?. És a dir: sense lang, list=true, formatting= textLangFormatted (o així).

Merci.

Vriullop (discussiócontribucions)

Amb lang i sense lang és correcte, però la clau és amb list false (un) o true (tots). Ara mateix amb list=false treu el primer de tots i la idea és que tregui el que correspongui a lang, sigui la indicada o la llengua per defecte. Bé, és la intenció, encara no sé com m'ho faré. Amb list=true seran tots els que hi hagi, independentment de lang.

Per un format "text (llengua)" podria ser amb formatting="$text ($language)" semblant al rowformat però amb les dues variables. A notar que "language" és el codi de llengua, no el nom. Per formats més complexos s'hi podrien afegir plantilles a expandir. Bé, començo a fer i ja anirem provant casos.

Amadalvarez (discussiócontribucions)

A mi aquesta forma em sembla bé. Efectivament, language és codi no el seu nom, igual que retornaria amb false+language. Merci.

Vriullop (discussiócontribucions)

Ja es pot provar. Finalment en lloc d'usar list=false ho he fet amb list=lang. Primer perquè m'ha resultat (molt) més fàcil, i sembla intuïtiu en línia amb list=firstrank. Proves amb Estats Units d'Amèrica (Q30):

  • {{#invoke:Wikidata/proves/lang|claim|item=Q30|property=P1448}} (list=true):
    United States of America
  • {{#invoke:Wikidata/proves/lang|claim|item=Q30|property=P1448|formatting=text}} (list=true, text en brut sense span):
    United States of America
  • {{#invoke:Wikidata/proves/lang|claim|item=Q30|property=P1448|formatting=($language) $text}} (list=true):
    (en) United States of America
  • {{#invoke:Wikidata/proves/lang|claim|item=Q30|property=P1813|list=lang}} (lang d'usuari):
    EUA
  • {{#invoke:Wikidata/proves/lang|claim|item=Q30|property=P1813|list=lang|lang=en|separator= - }}:
    USA - America - United States

Soluciona tots els casos de la taula?

Amadalvarez (discussiócontribucions)

Em sembla que si està tot. Observo que el separator funciona sempre. fins i tot amb aquesta [il·lògica] petició:

  • {{#invoke:Wikidata/proves/lang|claim|item=Q30|property=P1813|formatting=($language) $text| separator= - }} (list=true):
    (en) USA - (pt) EUA - (sr) САД - (ro) SUA - (ru) США - (cs) USA - (ka) აშშ - (udm) АОШ - (es) EE.UU. - (uk) США - (ca) EUA - (nl) VS - (en) America - (en) United States - (de) Vereinigte Staaten - (de) Amerika - (de) USA - (de-at) Vereinigte Staaten - (de-at) Amerika - (de-at) USA - (de-ch) Vereinigte Staaten - (de-ch) Amerika - (de-ch) USA - (zxx) 🇺🇸 - (hu) AEÁ - (he) ארה"ב - (be) ЗША - (be-tarask) ЗША - (ja) 米国 - (ja)  - (is) BNA - (sr) САД - (fr) É.-U. - (id) AS

Un exemple seriós:

  • {{#invoke:Wikidata/proves/lang|claim|item=Q47837|property=P1705|formatting=($language) $text| separator=<br/>}} (Al-Aaiun):
    (ar) العيون
    (tzm) ⵍⵄⵢⵓⵏ
    (fr) Laâyoune

Fantàstic !.

Hem de pensar en la migració ?. Habitualment faig servir:

  • {{#invoke:Wikidata|claim|item=Q76|formatting=ca|property=P18|qualifier=P2096 |list=false}} (peu imatge):
    Retrat oficial del President Barack Obama
  • {{#invoke:Wikidata|claim|item=Q76|formatting=table |property=P18|qualifier=P2096 |qualifier2=P585 |rowformat=$1 $2 |rowsubformat2 =($2) |colformat1=ca |colformat2 =Y |list=false}} (peu imatge amb data):
    Retrat oficial del President Barack Obama (2012)

He provat amb /proves/lang i sembla que funciona. Cert ?

Vriullop (discussiócontribucions)

El separador apareix sempre que hi ha una llista. En el meu exemple l'he definit perquè amb lang=en apareixia amb la conjunció and.

Falta compatibilitzar formatting=ca per fer la migració a list=lang amb un rastreig. L'exemple d'Obama m'ha deixat descol·locat i sincerament no entenc com funciona. Resulta que monolingualtext està estructurat de forma diferent per una propietat que per un qualificador.

  • {{#invoke:Wikidata|claim|item=Q76|property=P18|qualifier=P2096}}:
    Retrat oficial del President Barack Obama
    treu un únic valor, directament en la llengua local, no cal formatting=ca ni list=false, en proves tampoc cal list=lang
  • {{#invoke:Wikidata|claim|item=Q76|formatting=table |property=P18|qualifier=P2096 |qualifier2=P585 |rowformat=$1 $2 |rowsubformat2 =($2) |colformat2 =Y}}:
    Retrat oficial del President Barack Obama (2012)
    igual, no cal colformat1=ca ni list=false, ni el nou list=lang

Comparant a Barack Obama {{#invoke:wikidata|ViewSomething|claims|P1559}} i {{#invoke:wikidata|ViewSomething|claims|P18|1|qualifiers|P2096}} en el primer cas els valors estan en la taula mainsnak que no existeix en el segon cas i no sé com s'ho fa per treure'n només un. Sorprenentment usant lang sí que funciona, però ni idea de per què, hauria de rastrejar què fa el codi pas a pas:

  • {{#invoke:Wikidata/proves/lang|claim|item=Q76|property=P18|qualifier=P2096|lang=en}}:
    Official photograph of President Barack Obama
Amadalvarez (discussiócontribucions)

@Vriullop Reprenc aquest fil perquè avui no m'ha funcionat en una table que no tenia la versió ca. Treu en anglès que és la única que té. Merci

{{#invoke:Wikidata | claim|formatting=table| property=P18| qualifier =P2096 | qualifier2=P585|rowformat= $1 $2 |rowsubformat2= ($2) | colformat2=Y | list=false|item=Q223385}}

Hands, at the Cave of the Hands

Vriullop (discussiócontribucions)

Si vols que només surti en català, canvia list=false per list=lang.

A banda de les llegendes d'imatges, saps d'altres casos monolinguals en qualificadors? De estic segur si això està ben resolt.

Amadalvarez (discussiócontribucions)

No em sona. Ara que he estat fent l'eliminació de formatting=ca, no he vist cap altre

Amadalvarez (discussiócontribucions)

A clar. Per mi el list=false fa referència al nombre de multivalors que ha de passar, però en els monolinguals la multivalor que ens interessa és el de la llengua. Merci.

Amadalvarez (discussiócontribucions)

@Vriullop Retiro el "ah clar" que havia fet. Certament amb la solució de list=lang selecciona el multivalor de llengua, però no el multivalor de la propietat principal. A la Viquipèdia:Proves de Wikidata (Q4115189) he posat un cas real (tot i que al seu ítem no hi ha llegendes en CA i no volia potinejar-lo) basat en Michael Jordan. Té 3 fotos, una amb preferred + P2096 en ca. Les altres dues tenen P2096 en en i ca respectivament.

El resultat desitjat seria el monoligual de la prefered (que és el que es demana quan s'invoca la imatge amb list=false),

{{#invoke:Wikidata | claim|formatting=table| property=P18| qualifier =P2096 |rowformat= $1 | list=lang |item=Q4115189}}

foto de 2006

foto de 2014

Més enllà del que comentaves sobre l'estrany funcionament, la nova sintaxi no sembla poder cobrir les situacions reals amb qualificadors. Bé, ja t'ho pensaràs.

Per cert, en la neteja dels formatting=ca, el rastreig s'entesta a denunciar els articles de la {{infotaula composició}} i la {{Infotaula raça de gos}} tot i que ja estan netes.

Vriullop (discussiócontribucions)

Bé, jo tampoc ho tenia clar. Era un intent a veure si colava. Està clar que list=lang només serveix per a propietats. Per a qualificadors monolingual caldrà revisar-ho, com si fos per defecte sense més opcions.

El cas d'aquestes dues plantilles ja el tenia localitzat. És la funció linkWithParentLabel quan s'usa amb un parent monolingual. Un problema diferent però on caldrà aplicar la mateixa solució.

Amadalvarez (discussiócontribucions)

En el cas de propietats, avui he vist un cas que m'ha fet pensar. Quan el monolingual és un "idioma original", lògicament no el volem recuperar amb una list=lang. Ara recupero tots els valors amb el formatting que vas fer de $text $language i funciona bé, perquè els casos normals són entre 1 i 3 valors. Ara bé, quan una d'aquestes propietats eren malinterpretades pels editors i cadascú ho posa a la seva llengua, per evitar que sortís una llista de desenes, li posava un list=false, que ara no sé si li fa cas. Bé, només és una dada més per la reflexió.

Vriullop (discussiócontribucions)

Em sembla que ja ho tinc, en /proves. Comprova el Jordan amb list=false.

En les plantilles amb linkWithParentLabel ja detecta el parent monolingual i aplica el nou format eliminant el rastreig.

El monolingual amb list=false continua funcionant, en propietats: Special:Permalink/20236595.

Amadalvarez (discussiócontribucions)

El cas de les propietats està provat:

  • podem tenir: tots, el primer, el d'una llengua concreta, o el de la llengua defecte (si està a la llista)

En el cas dels qualificadors:

  • Aplica els list=false sobre la llista de propietats (ok), però no em queda clar com sap si la llengua del qualificador de la instància en que està li serveix o no. He fet varies proves i sembla que tria la CA, però no li he posat lang en cap cas. Se suposa que mira el lang ?
Vriullop (discussiócontribucions)

En qualificadors monolingual actua de la mateixa forma que una propietat amb list=lang i usant el mateix valor de lang. La diferència és que no es poden obtenir ni tots ni el primer, perquè no fa cas del paràmetre list reservat només per la propietat. Sí que es pot obtenir el d'una llengua concreta (amb lang=) o el de la llengua per defecte (sense definir lang) sigui la del wiki o la de l'usuari.

Vriullop (discussiócontribucions)

A més, en tots els casos monolingual, sigui propietat o qualificador, sense fallback de llengua, a diferència d'altres tipus de valors. Si no existeix en la llengua lang doncs no treu res.

Amadalvarez (discussiócontribucions)

Val. El 90% dels casos corregits era:

  • agafar una P18-imatge aconseguida amb list=false i, a continuació,
  • agafar una P2096-llegenda de la mateixa P18.
    • Segons les primeres normes d'ús, les he deixat amb un list=lang i res mes, i hauria de ser un list=false (per tornar a trobar la mateixa repetició de P18) i sense lang per a que agafi la P2096 de la llengua default. És correcte ?
  • en el cas de les table amb propietat =P18 + qualifier=P2096 d'una tacada. Entenc que és la mateixa situació: list =false (per triar una repetició) i sense cap colformat1 per a que agafi llengua default de la P2096. Correcte ?
    • Si volgués forçar a "francès", seria colformat1=fr ?
Vriullop (discussiócontribucions)

Correcte excepte l'últim punt. El paràmetre colformat1 és equivalent a formatting per a una columna, i el formatting=fr no funciona. Si vols francès hauria de ser lang=fr però llavors afecta a tota la taula. En un cas d'imatge+llegenda no afecta en res més. Per altres casos no està previst un paràmetre collang1=fr.

Amadalvarez (discussiócontribucions)

Està passat a producció ?

Vriullop (discussiócontribucions)

Sí.

Amadalvarez (discussiócontribucions)

Totes les infotaules de la llista del @Paucabot: estan corregides a list=false o list=firstrank. Només un parell ho fan servir per una propietat diferent de Llegenda (P2096), tota la resta són peus de foto amb el mateix patró.

Amadalvarez (discussiócontribucions)

Bé, era per no deixar punts no previstos, però fins ara no m'ho he trobat. En tot cas, mentre la table no tingui tipus element, no es produirien traduccions indesitjades. Començaré a fer els canvis al migdia. Merci

Amadalvarez (discussiócontribucions)

per tant, els formatting=ca i el colformatn=ca, ja els puc anar traient ara pels casos de recuperació específica.

Vriullop (discussiócontribucions)
Vriullop (discussiócontribucions)

Sense buscar-ho ja he trobat que el codi del mòdul fa un tractament diferent pels qualificadors monolingualtext (nota personal, és a function getQualifierSnak). Actua sempre com si fos list=lang. Recorda-m'ho si trobes algun cas en que hauria d'actuar igual que les propietats monolingualtext, tot i que no sembla fàcil.

He fet una actualització completa des de /proves/lang. Encara tinc coses en la llista de pendents però semblen menors. Totes les plantilles ja adopten la nova filosofia amb lang per defecte i llapisset quan cal traducció. Ja es pot començar a migrar el formatting=ca a list=lang.

Resposta a «Ja tenim client.»