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-swedishav 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.
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
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.
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.shSkriptet 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.
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.
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.
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.
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.propertiesmedversion.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.
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 danskaArtefakterna hamnar i respektive */target/.
Publicering sker mot projektet (id 3922); konsumenter resolvar mot gruppen (id 2746).
mvn clean deployAutentisera 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}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
Ö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.
- Kör
./tools/aikau-versions.shoch läs av vilken Aikau-version släppet drar in. - Lägg till versionen i
<aikau.versions>ipom.xmlpå rätt branch. mvn clean installoch verifiera att katalogen kom med.
Det är hela ingreppet — en rad.
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 svararHTTP 200med en HTML-inloggningssida, som sparades somsv-SE.zip. update-sources.shkontrollerade bara att filen fanns, inte att den var en zip.unzipmisslyckades, skriptet saknadeset -eoch fortsatte tillrm -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 undershare/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.
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:
<<,{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.
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) somupdate-sources.shkonkatenerade in medcat >>. Nycklarna ligger nu direkt isv/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ägalfresco/site-webscripts/org/alfresco/aikau/<version>/libs/, verifierad motaikau-1.1.5.jarur 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 dessutomclipboard(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/repogick från 4515 till 312 nycklar ochrepo-rmingår inte längre. Se Vad paketet faktiskt tillför.
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.
Trimmen är inte magisk och behöver göras om när ett nytt band öppnas. Receptet:
- Packa upp alla jar ur
webapps/alfresco/WEB-INF/libfrån en installation av den äldsta och den nyaste Alfresco-versionen bandet ska stödja. - Bygg två mängder ur dem: alla nycklar som har
_sv, och alla nycklar med deras engelska värde. - 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. - 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.