searxng/docs/dev/translation.svg

46 lines
17 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="968px" preserveAspectRatio="none" style="width:1008px;height:968px;background:#FFFFFF;" version="1.1" viewBox="0 0 1008 968" width="1008px" zoomAndPan="magnify"><defs><filter height="300%" id="fwj4fqzvak25j" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#FFFFFF" filter="url(#fwj4fqzvak25j)" height="320.7266" style="stroke:#000000;stroke-width:2.0;" width="981" x="10" y="116.7266"/><rect fill="#FFFFFF" filter="url(#fwj4fqzvak25j)" height="289.5938" style="stroke:#000000;stroke-width:2.0;" width="961" x="20" y="140.8594"/><rect fill="#FFFFFF" filter="url(#fwj4fqzvak25j)" height="324.7266" style="stroke:#000000;stroke-width:2.0;" width="848" x="143" y="494.5859"/><rect fill="#FFFFFF" filter="url(#fwj4fqzvak25j)" height="245.3281" style="stroke:#000000;stroke-width:2.0;" width="828" x="153" y="518.7188"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="91" x2="91" y1="56.5938" y2="908.5781"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="270" x2="270" y1="56.5938" y2="908.5781"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="514" x2="514" y1="56.5938" y2="908.5781"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="738" x2="738" y1="56.5938" y2="908.5781"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="899" x2="899" y1="56.5938" y2="908.5781"/><rect fill="#FEFECE" filter="url(#fwj4fqzvak25j)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="119" x="30" y="21.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="105" x="37" y="41.292">master branch</text><rect fill="#FEFECE" filter="url(#fwj4fqzvak25j)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="119" x="30" y="907.5781"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="105" x="37" y="927.5732">master branch</text><rect fill="#FEFECE" filter="url(#fwj4fqzvak25j)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="211" x="163" y="21.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="197" x="170" y="41.292">translations_update branch</text><rect fill="#FEFECE" filter="url(#fwj4fqzvak25j)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="211" x="163" y="907.5781"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="197" x="170" y="927.5732">translations_update branch</text><rect fill="#FEFECE" filter="url(#fwj4fqzvak25j)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="153" x="436" y="21.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="139" x="443" y="41.292">translations branch</text><rect fill="#FEFECE" filter="url(#fwj4fqzvak25j)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="153" x="436" y="907.5781"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="139" x="443" y="927.5732">translations branch</text><rect fill="#FEFECE" filter="url(#fwj4fqzvak25j)" height="46.5938" style="stroke:#A80036;stroke-width:1.5;" width="153" x="660" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="120" x="676.5" y="24.9951">weblate clone of</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="139" x="667" y="41.292">SearXNG repository</text><rect fill="#FEFECE" filter="
@startuml
participant "master branch" as master
participant "translations_update branch" as translations_update
participant "translations branch" as translations
participant "weblate clone of\ntranslations branch" as weblate
participant "weblate\npending changes " as weblate_change
== for each commit on master ==
group .github/workflows/integration.yml
group make babel.master.to.translations
hnote over weblate : wlc lock
translations -> weblate: wlc pull
weblate_change -> weblate: wlc commit
weblate -> translations: git merge weblate/translations
master -> translations: pybabel extract\nextract messages, store messages.pot on translations branch
translations -> weblate: pybabel update (messages.po)\ngit add searx/translations\ngit commit\ngit push
hnote over weblate : wlc unlock
end
end
== every Friday ==
group .github/workflows/translations-update.yml
group make babel.translations.to.master
hnote over weblate : wlc lock
translations -> weblate: wlc pull
weblate_change -> weblate: wlc commit
weblate -> translations: git merge weblate/translations
translations -> translations_update: pybabel compile\ncp searx/translations\ngit add\ngit commit
hnote over weblate : wlc unlock
end
hnote over translations_update : create or update pull request\n"Update translations"
end
== developper's review ==
translations_update -> master: merge pull request
@enduml
See
https://plantuml.com/en/sequence-diagram
https://www.planttext.com
--></g></svg>