Project

General

Profile

Development #71477

multilinguisme, filtrer sur les chaines utilisée par une démarche précise

Added by Frédéric Péters 2 months ago. Updated about 1 month ago.

Status:
Nouveau
Priority:
Normal
Target version:
-
Start date:
18 November 2022
Due date:
% Done:

0%

Estimated time:
Patch proposed:
No
Planning:
No

Description

Soit pour des questions de priorité, soit parce qu'on ne veut simplement pas tout traduire, il serait utile de pouvoir filtrer la liste des chaines à traduire sur une démarche.

History

#1

Updated by Marie Kuntz (absente) 2 months ago

  • Tags set to multilinguisme
#2

Updated by Frédéric Péters about 1 month ago

  • Assignee set to Frédéric Péters

Pierre, question SQL, dans la table des traductions il y a une colonne locations (character varying[]), dans laquelle les endroits où la chaine se trouve sont repris, ça donne par exemple {forms/351/}, ou {forms/209/fields/1/,forms/209/fields/6/,forms/208/fields/10/}, ou {workflows/176/status/6/,workflows/177/status/7/,workflows/173/status/8/}.

Quelle requête pour obtenir les lignes qui ont un élément de la colonne locations qui matche un préfixe donné ? i.e. je voudrais faire une recherche sur "forms/209/" et obtenir la ligne du deuxième exemple ci-dessus.

À la base j'imaginais que je pouvais juste dupliquer et avoir une colonne base_locations mais je me dis qu'il y a sans doute une requête SQL qui peut marcher avec l'existant.

#3

Updated by Pierre Ducroquet about 1 month ago

Cette première version n'est pas indexable, on pourrait creuser plus si nécessaire, on parle de quels volumes de données ?

test=# create table translatable_message(string text, locations text[]);
CREATE TABLE
Time: 38.484 ms
test=# insert into translatable_message values ('aaa', ARRAY['forms/123/toto', 'forms/321/tutu']);
INSERT 0 1
Time: 2.031 ms
test=# insert into translatable_message values ('bbb', ARRAY['forms/789/toto', 'forms/42']);
INSERT 0 1
Time: 10.109 ms
test=# select * from translatable_message where exists (select 1 from unnest(locations) v where v LIKE 'forms/789/%');
 string |         locations         
--------+---------------------------
 bbb    | {forms/789/toto,forms/42}
(1 row)
#4

Updated by Frédéric Péters about 1 month ago

Pour le premier site concerné par le multilinguisme, ce que je vois en recette est très léger, ~600 lignes avec une moyenne de 2 éléments dans le tableau locations.

En local où j'ai beaucoup de choses, ~7000 lignes et une moyenne de 2,5.

Sur un gros site de recette où ça a été évoqué, ~6000 lignes et une moyenne de 3.

#5

Updated by Pierre Ducroquet about 1 month ago

Frédéric Péters a écrit :

Pour le premier site concerné par le multilinguisme, ce que je vois en recette est très léger, ~600 lignes avec une moyenne de 2 éléments dans le tableau locations.

En local où j'ai beaucoup de choses, ~7000 lignes et une moyenne de 2,5.

Sur un gros site de recette où ça a été évoqué, ~6000 lignes et une moyenne de 3.

Ok donc on ne va pas se passer la rate au court bouillon, pour 6000 lignes, je suis même pas sûr qu'il sortirait une lecture d'index…

Also available in: Atom PDF