Skip to content

Latest commit

 

History

195 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Alfresco språkpaket — svenska och danska

Språkpaket för Alfresco Share och Alfresco Repository.

Alfresco Share levererar tio språk (de, es, fr, it, ja, nb, nl, pt-BR, ru, zh-CN). Svenska och danska ingår inte — det är hålet det här projektet fyller.

Källkod GitHub — Redpill-Linpro/alfresco-swedish
Färdiga paket GitLab — alfresco-dependency/alfresco-language

Repot heter alfresco-swedish av historiska skäl men innehåller båda språken. De byggs och versioneras ihop, publiceras som separata artefakter och går att bygga var för sig.


Ladda ner

Paketen ligger publikt i GitLabs Package Registry — ingen inloggning krävs:

https://gitlab.redpill-linpro.com/alfresco-dependency/alfresco-language/-/packages

Välj den version som matchar din Alfresco-installation (se Versionsband), lägg jar-filerna i tomcat/shared/lib/ och starta om Alfresco.

Direktlänk till en enskild artefakt:

https://gitlab.redpill-linpro.com/api/v4/groups/2746/-/packages/maven/\
org/redpill-linpro/alfresco/translations/alfresco-swedish-share/3.0.0/\
alfresco-swedish-share-3.0.0.jar

Som Maven-beroende

Lägg till registret som repository — det är publikt läsbart, så ingen autentisering behövs för att hämta:

<repository>
  <id>redpill-alfresco-language</id>
  <url>https://gitlab.redpill-linpro.com/api/v4/groups/2746/-/packages/maven</url>
</repository>

och sedan beroendet:

<dependency>
  <groupId>org.redpill-linpro.alfresco.translations</groupId>
  <artifactId>alfresco-swedish-share</artifactId>
  <version>3.0.0</version>
</dependency>

Tillgängliga artefakter, alla under org.redpill-linpro.alfresco.translations:

Artefakt Innehåll
alfresco-swedish-share Share, svenska
alfresco-swedish-share-rm Share Records Management, svenska
alfresco-swedish-repo Repository, svenska
alfresco-danish-share Share, danska

På band 1.x och 2.x finns även alfresco-swedish-repo-rm. Den ingår inte i 3.x — se Vad paketet faktiskt tillför.


Versionsband

Share slår upp Aikau-widgetarnas i18n på en sökväg som innehåller den exakta Aikau-versionen. Ett språkpaket måste därför innehålla en kopia av översättningarna per Aikau-version det ska stödja.

Stödet är uppdelat i tre band, ett per git-branch. Välj det som matchar din Alfresco-version:

Band Branch Alfresco Aikau
1.x support/1.x 5.2 – 6.2 1.0.101 – 1.0.112
2.x support/2.x 7.0 – 7.4 1.0.113 – 1.0.128
3.x main 23 – 26.x 1.0.129 – 1.1.6

Mappningen Alfresco → Aikau är inte monoton. Alfresco 23.1 använder Aikau 1.0.129 medan 25.1 använder 1.1.3, och 26.1 använder 1.1.4 medan 25.N använder 1.1.5. Gissa aldrig utifrån versionsnumret — läs av den med:

./tools/aikau-versions.sh

Skriptet hämtar alla släppta Aikau-versioner från Alfrescos egen maven-metadata och läser dependency.aikau.version ur Share:s release-brancher. Det skriver ut ett klistrafärdigt <aikau.versions>-block per band.


Vad paketet faktiskt tillför

Share: allt. Alfresco Share levererar ingen svenska eller danska. Kontrollerat mot share.war i Alfresco Content Services 26.2.1: nio språk levereras (engelska, tyska, franska, italienska, spanska, nederländska, ryska, japanska och norskt bokmål), inget nordiskt utöver nb. Detsamma gäller alfresco-governance-services-enterprise-share 26.3 — inga _sv- eller _da-buntar alls.

Det är alltså Share-modulerna som är hela poängen med projektet:

Nycklar Översatt Kvar på engelska
alfresco-swedish-share 6445 94,0 % 5,1 %
alfresco-danish-share 6206 93,4 % 5,7 %

Det som står kvar på engelska är i praktiken det som ska stå kvar — se Kända luckor.

Repository: mycket mindre än man kan tro — 312 nycklar. Alfresco Repository har levererat egna _sv- och _da-filer sedan 6.2 (84 filer) respektive 7.1 och framåt (105 filer). Enterprise lägger till ytterligare 130 filer, bland annat hela Admin Console.

Community-överlappet är bortrensat på 3.x

Tidigare dubblerade sv/repo 2422 nycklar som Alfresco redan översätter. Av dem skilde sig 70 % i ordalydelse, och Alfrescos egna var i regel bättre — vårt paket innehöll på sina håll oöversatt engelska (Free Memory (GB)) och stavfel (Kolum {0} … får inte vara tomt). Beroende på classloader-ordning riskerade paketet att skriva över Alfrescos korrekta strängar med sämre.

På band 3.x är alla nycklar som Alfresco Community levererar i hela spannet 23.1–26.2 borttagna. Baslinjen är snittet av 23.1 och 26.2, inte bara 26.2 — annars hade 23.x-användare kunnat tappa strängar. De två versionerna skiljer sig bara på 4 respektive 2 nycklar.

Det tog alfresco-swedish-repo från 4515 till 2093 nycklar.

Enterprise-innehållet är också bortrensat

Community-trimmen missade Enterprise, som levererar sina egna språkbuntar. En kontroll mot en komplett Enterprise 25.3-installation (373 jar i webapps/alfresco/WEB-INF/lib) visade att de kvarvarande 2093 nycklarna såg ut så här:

Nycklar
1237 59 % Alfresco Enterprise 25.3 levererar egen svensk översättning
264 13 % vår enda nyckel — men värdet var det engelska originalet
279 13 % nyckeln finns inte kvar i produkten
312 15 % faktisk svensk översättning som Alfresco saknar

Admin Console-översättningarna ligger i alfresco-enterprise-remote-api, inte i alfresco-enterprise-repository — det är därför de är lätta att missa.

Kvaliteten på de 1237 dubbletterna var argumentet som avgjorde saken:

oöversatt engelska
vår version 82 %
Alfrescos version 6 %

Vårt paket riskerade alltså att skriva över Alfrescos färdiga svenska Admin Console med engelska platshållare.

De 279 döda nycklarna hörde till funktioner som lyfts ur produkten: jBPM, passthru/NTLM, CIFS, Web Content Publishing, Cloud Sync och den gamla transformeringsmotorn. Där låg också alfresco/quickshare/quickshare-clients_sv.properties, som inte var översättningar alls utan konfiguration: quickshare.client.sfs.sharedLinkBaseUrl=http://localhost:8082/sfs/s.

Kvar i alfresco-swedish-repo: 312 nycklar i 24 bundles, 22 KB (från 162 KB). Tyngdpunkten ligger på data-list-model (83), dictionary-messages (73), dictionary-model (28), content-service (18) och version-service (14).

Fyra av de 312 finns inte i någon av Alfrescos buntar och är ändå kvar med flit: activitiAdhoc.task.adhocTask.* och activitiParallelReview.task.reviewTask.* slås upp via arbetsflödesmodellen i stället för via resursbunten (ALF-21841) och saknas därför i samtliga Alfrescos språk. De är märkta i filen.

Resultatet är verifierat mot två Enterprise-versioner — 25.3.0.76/81 (en körande installation) och 26.2.1.1 (alfresco.war ur distributionszip:en, med alfresco-share-services.amp pålagd). Båda ger samma svar: noll överlapp, noll oöversatta, 308 översatta nycklar plus de fyra ALF-21841-nycklarna.

Bandets nedre kant, Alfresco 23.x, är inte kontrollerad — jag har inte haft en 23.x-installation att jämföra mot. Skulle 23.x sakna någon av de borttagna svenska buntarna faller de nycklarna tillbaka på engelska där, vilket är precis vad de gjorde i vårt paket ändå i 82 % av fallen. Vill man stänga luckan räcker det att köra om mätningen mot en 23.x-installation, se receptet längst ned.

repo-rm ingår inte i 3.x

Alfresco levererar egen svensk RM-översättning från 23 och framåt; 99,6 % av modulen var dubblett. Det som återstod efter trimmen var inte användbart:

  • version_sv.properties med version.rm.schema=2501 — inte en översättning alls, och produkten står på 3500
  • två rma_notificationIssued-nycklar som inte finns kvar någonstans i 26.2
  • rm-workflow-messages_sv.properties, som Alfresco numera levererar själv

Modulen finns kvar på support/1.x och support/2.x, där Alfresco knappt hade svenska. Vill du återinföra den på 3.x räcker det att lägga tillbaka <module>repo-rm</module> i sv/pom.xml.


Bygga

Krav: JDK 17+ och Maven 3.9+.

mvn clean install                 # båda språken
mvn -f sv/pom.xml clean install   # bara svenska
mvn -f da/pom.xml clean install   # bara danska

Artefakterna hamnar i respektive */target/.

Publicera

Publicering sker mot projektet (id 3922); konsumenter resolvar mot gruppen (id 2746).

mvn clean deploy

Autentisera i ~/.m2/settings.xml:

<server>
  <id>gitlab-maven</id>
  <configuration>
    <httpHeaders>
      <property>
        <name>Private-Token</name>
        <value>DIN-TOKEN</value>
      </property>
    </httpHeaders>
  </configuration>
</server>

I CI används Job-Token med ${CI_JOB_TOKEN} istället, och projekt-id:t sätts av ${CI_PROJECT_ID}:

mvn clean deploy -Dgitlab.project.id=${CI_PROJECT_ID}

Repostruktur

pom.xml                     parent: versionsband, Aikau-fan-out, GitLab-distribution
sv/                         svenska
  repo/                     Repository (endast det Alfresco själv saknar)
  share/                    Share
    src/main/resources/     resurser som paketeras rakt av
    src/main/aikau/         widget-i18n, fläktas ut per Aikau-version
    src/main/aikau-libs/    webscript-lib-i18n, fläktas ut per Aikau-version
  share-rm/                 Share Records Management
da/                         danska
  share/                    Share (se Kända luckor)
tools/
  aikau-versions.sh         regenererar versionslistorna

Hur Aikau-fan-outen fungerar

Översättningarna finns i en uppsättning under src/main/aikau/ respektive src/main/aikau-libs/. Vid process-resources kopierar bygget ut dem till en katalog per version i <aikau.versions>:

Källa Hamnar i jar:en som
src/main/aikau/ META-INF/js/aikau/<version>/
src/main/aikau-libs/ alfresco/site-webscripts/org/alfresco/aikau/<version>/libs/

Checka aldrig in versionskopiorna. De genereras. Tidigare låg de i git, i åtta identiska exemplar som skulle hållas i synk för hand.

Lägga till stöd för ett nytt Alfresco-släpp

  1. Kör ./tools/aikau-versions.sh och läs av vilken Aikau-version släppet drar in.
  2. Lägg till versionen i <aikau.versions> i pom.xml på rätt branch.
  3. mvn clean install och verifiera att katalogen kom med.

Det är hela ingreppet — en rad.


Översättningskällan

Källan är den här git-repositoryn. Vill du rätta en översättning, ändra .properties-filen och committa.

Filerna använder \uXXXX-escapes och ska hållas i ren ASCII. Java läser .properties som ISO-8859-1; råa UTF-8-tecken blir mojibake.

Paketet byggde tidigare på Crowdin-projektet crowdin.com/project/alfresco via skripten download-sources.sh och update-sources.sh. Den kedjan är borttagen:

  • Nedladdnings-endpointen (crowdin.com/backend/download/project/...) finns inte kvar. Den svarar HTTP 200 med en HTML-inloggningssida, som sparades som sv-SE.zip.
  • update-sources.sh kontrollerade bara att filen fanns, inte att den var en zip. unzip misslyckades, skriptet saknade set -e och fortsatte till rm -rf ./repo/src/main/resources/* — vilket raderade alla incheckade översättningar utan att kunna återskapa dem.
  • Crowdin-innehållet stod dessutom kvar på Alfresco 5.2.
  • TinyMCE-språkfilerna hämtades från archive.tinymce.com, som är nedlagd. Filerna är incheckade under share/src/main/resources/META-INF/modules/.

Trots att källan är från 5.2-eran täcker översättningarna Share 26.2 nästan helt.


Kända luckor

Danskan omfattar bara Share. Det finns ingen dansk motsvarighet till sv/repo, sv/repo-rm eller sv/share-rm — de översättningarna har aldrig funnits. Danskan saknar även aikau-libs.

Strängar som står kvar på engelska. 328 svenska och 351 danska nycklar har fortfarande det engelska originalet som värde. Det är i allt väsentligt strängar som inte ska översättas, och som Alfrescos egna översättare också lämnat orörda i norska, tyska och franska:

  • ord som är identiska i svenska eller danska: Version, Type, Panel, Prefix, Auto, Ctrl, Max, Index, Information, Fax, URL, OK
  • datum- och tidsmönster som redan är korrekta: d mmm, yyyy, HH:mm
  • varumärken och produktnamn: Alfresco Share, OOoJodConverter, Solr 4
  • symboler, platshållare och filnamn: &lt;&lt;, {0}, app-logo-48.png

Metoden för att avgöra saken var att titta på vad Alfrescos egna språk gör med nyckeln. Om nb och de är identiska med engelskan är strängen inte avsedd att översättas.

De 60 nycklarna i common.properties som är oöversatta i båda språken tillhör Web Quick Start / Web Editor — den gamla WCM-exempelsajten, inte Share:s UI.

En fil innehåller rå UTF-8 istället för escapes: sv/share-rm/.../rm_sv.properties. De två övriga (clipboard_da.properties och clipboard/menu.get_en.properties) är borttagna, se nedan.

sv/share-rm är overifierad. AGS levererar ingen svenska, men modulens innehåll är inte kvalitetsmätt mot en AGS-installation på samma sätt som share-modulerna.


Ändringar mot tidigare struktur

Repot publicerades tidigare till Redpill Linpros Nexus. Nexus är nedlagd; artefakterna ligger nu i GitLabs Package Registry. Källkoden ligger kvar på GitHub — GitLab används enbart som maven-repo.

Versionsnumreringen är omlagd. Tidigare följde paketet Alfrescos versioner (6.2.x), vilket slutade fungera när Alfresco bytte till kalenderversioner. Nu anger major-versionen vilket kompatibilitetsband paketet tillhör.

Övrigt som ändrats:

  • De åtta incheckade Aikau-versionskopiorna är ersatta av en genererad fan-out.
  • Modulen repo-manual-additions är borttagen. Den innehöll fyra nycklar (se ALF-21841) som update-sources.sh konkatenerade in med cat >>. Nycklarna ligger nu direkt i sv/repo/src/main/resources/alfresco/workflow/workflow-messages_sv.properties, markerade med en kommentar.
  • Webscript-lib-översättningarna låg på alfresco/site-webscripts/org/alfresco/aikau/webscript/libs/ — en sökväg som inte finns i Aikau. De sex bundlarna laddades alltså aldrig. De ligger nu på Aikaus faktiska, versionerade sökväg alfresco/site-webscripts/org/alfresco/aikau/<version>/libs/, verifierad mot aikau-1.1.5.jar ur Share 26.2.1.
  • Buntar för funktioner som lyfts ur produkten är borttagna ur båda Share-modulerna: Alfresco Cloud Sync (99 nycklar), Alfresco Web Editor (28), Flash-uppladdaren (27) och den gamla modules/login-sökvägen (6). I danskan försvann dessutom clipboard (16), ett tredjepartstillägg vars ena fil var engelsk. Google Docs-buntarna är kvar — den integrationen är en separat AMP som fortfarande går att installera.
  • Den danska jar:ens dubblerade META-INF/webapp/-katalog är borttagen.
  • Sju användarsynliga strängar som saknades i båda språken är översatta (aspect.cm_attachable, label.actions.column.header, label.restricted-settings, message.edit-online-aos.edit_locked.*, message.document.notSiteMember).
  • 90 svenska och 386 danska strängar som stod kvar på engelska är översatta. Svenskan gick från 92,6 % till 94,0 % och danskan från 87,5 % till 93,4 %. Alfrescos egna norska, tyska och franska buntar användes som referens för terminologin. Största enskilda posten var Model Manager, där hela det danska gränssnittet — 189 strängar — var oöversatt.
  • Danskans etiketter för site var oöversatta (Site, Sites) medan prosan konsekvent skrev websted. Etiketterna följer nu prosan. Svenskan använder samarbetsyta, som redan var etablerat.
  • Överlappet mot Alfrescos egna översättningar är bortrensat på band 3.x — både mot Community 23.1/26.2 och mot en Enterprise 25.3-installation. sv/repo gick från 4515 till 312 nycklar och repo-rm ingår inte längre. Se Vad paketet faktiskt tillför.

Om du skapar support-brancherna

support/1.x och support/2.x måste utgå från commiten före trimmen. Alfresco levererade knappt någon svenska på 5.2–7.4, så där behövs både hela sv/repo och sv/repo-rm.

Så här görs om trimmen

Trimmen är inte magisk och behöver göras om när ett nytt band öppnas. Receptet:

  1. Packa upp alla jar ur webapps/alfresco/WEB-INF/lib från en installation av den äldsta och den nyaste Alfresco-versionen bandet ska stödja.
  2. Bygg två mängder ur dem: alla nycklar som har _sv, och alla nycklar med deras engelska värde.
  3. Ur sv/repo, ta bort varje nyckel som (a) finns i _sv-mängden, (b) har ett värde identiskt med det engelska originalet, eller (c) inte förekommer alls.
  4. Undanta ALF-21841-nycklarna i workflow-messages_sv.properties.

Jämför snittet av de två versionerna för det som ska bort, inte unionen — annars tappar användare av den äldre versionen strängar.

About

Swedish Translation of Alfresco

Resources

Stars

0 stars

Watchers

23 watching

Forks

Releases

Packages

Used by

Contributors

Languages