This is an automated email from the ASF dual-hosted git repository.
wu-sheng pushed a change to branch feat-i18n
in repository https://gitbox.apache.org/repos/asf/skywalking-horizon-ui.git
omit bdf534a fix(translations): rows + adaptive sizing + nav-click
interception
omit 36d394a feat(translations): finish — tile clicks, naming-alias
filter, conflict resolve
omit ec423d4 fix(translations): preview uses real chart renderers +
click-to-focus editor
omit 7dfc97b feat(i18n): translations admin page — picker, preview,
EN→target editor
omit 663b8ec feat(sync): symmetric write-and-confirm for
create/update/disable + conflict surfacing
omit e26a6ed chore: drop the one-shot probe-dupes diagnostic script
omit d77b2df fix(sync): cache-bypass + create-and-wait + self-heal
duplicates
omit cf65fd0 fix(admin): move 'refresh from remote' into the picker
dropdown footer
omit 5e1d7cb fix(i18n): bundle endpoint missed X-Horizon-Locale header
omit e639168 fix(i18n): teleport locale menu to <body>; clicks were
absorbed by .center
omit 3762457 fix(i18n): drop navigator-language fallback — localStorage or
'en'
omit ee9b258 fix(i18n): pre-auth locale pick — skip BFF refresh entirely
omit f80a473 fix(i18n): bulletproof LocaleChip — document outside-click,
no focusout
omit fa04d76 fix(i18n): bundle all locale catalogs statically — switch is
now sync
omit 9a4929c feat(i18n): translate layer aliases + group names; seed
re-fills bundled
omit 5490914 fix(i18n): sidebar nav reactive on locale switch; login was
already wired
omit ab185a8 fix(sync): dedupe OAP UI-template rows by envelope name,
prefer enabled
omit 136a6e3 fix(admin): force-refresh config bundle on admin page mount
omit e501d1c fix(i18n): bind every t() call to the global scope
omit bc5b34e fix(admin): force-refresh sync status for config features;
refetch bundle on locale switch
omit 3de6b40 fix(admin): reconcile local drafts against remote on push +
refresh
omit 74c307b feat(i18n): six-locale framework + lexicon + chrome
translations + admin polish
new c451a81 feat(i18n): eight-locale parity across UI chrome +
layer/overview overlays
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (bdf534a)
\
N -- N -- N refs/heads/feat-i18n (c451a81)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../bundled_templates/layers/activemq.i18n.de.json | 261 ++++++
.../bundled_templates/layers/activemq.i18n.es.json | 165 +++-
.../bundled_templates/layers/activemq.i18n.fr.json | 174 ++++
.../bundled_templates/layers/activemq.i18n.ja.json | 163 +++-
.../bundled_templates/layers/activemq.i18n.ko.json | 163 +++-
.../bundled_templates/layers/activemq.i18n.pt.json | 169 +++-
.../layers/activemq.i18n.zh-CN.json | 82 +-
.../layers/alipay_mini_program.i18n.de.json | 142 +++
.../layers/alipay_mini_program.i18n.es.json | 86 +-
.../layers/alipay_mini_program.i18n.fr.json | 103 +++
.../layers/alipay_mini_program.i18n.ja.json | 88 +-
.../layers/alipay_mini_program.i18n.ko.json | 88 +-
.../layers/alipay_mini_program.i18n.pt.json | 94 +-
.../layers/alipay_mini_program.i18n.zh-CN.json | 57 +-
.../bundled_templates/layers/apisix.i18n.de.json | 184 ++++
.../bundled_templates/layers/apisix.i18n.es.json | 116 ++-
.../bundled_templates/layers/apisix.i18n.fr.json | 123 +++
.../bundled_templates/layers/apisix.i18n.ja.json | 118 ++-
.../bundled_templates/layers/apisix.i18n.ko.json | 118 ++-
.../bundled_templates/layers/apisix.i18n.pt.json | 120 ++-
.../layers/apisix.i18n.zh-CN.json | 62 +-
.../layers/aws_dynamodb.i18n.de.json | 283 ++++++
.../layers/aws_dynamodb.i18n.es.json | 189 +++-
.../layers/aws_dynamodb.i18n.fr.json | 188 ++++
.../layers/aws_dynamodb.i18n.ja.json | 189 +++-
.../layers/aws_dynamodb.i18n.ko.json | 189 +++-
.../layers/aws_dynamodb.i18n.pt.json | 189 +++-
.../layers/aws_dynamodb.i18n.zh-CN.json | 72 +-
.../bundled_templates/layers/aws_eks.i18n.de.json | 209 +++++
.../bundled_templates/layers/aws_eks.i18n.es.json | 115 ++-
.../bundled_templates/layers/aws_eks.i18n.fr.json | 133 +++
.../bundled_templates/layers/aws_eks.i18n.ja.json | 113 ++-
.../bundled_templates/layers/aws_eks.i18n.ko.json | 113 ++-
.../bundled_templates/layers/aws_eks.i18n.pt.json | 117 ++-
.../layers/aws_eks.i18n.zh-CN.json | 66 +-
.../layers/aws_gateway.i18n.de.json | 157 ++++
.../layers/aws_gateway.i18n.es.json | 97 +-
.../layers/aws_gateway.i18n.fr.json | 109 +++
.../layers/aws_gateway.i18n.ja.json | 97 +-
.../layers/aws_gateway.i18n.ko.json | 97 +-
.../layers/aws_gateway.i18n.pt.json | 97 +-
.../layers/aws_gateway.i18n.zh-CN.json | 50 +-
.../bundled_templates/layers/aws_s3.i18n.de.json | 108 +++
.../bundled_templates/layers/aws_s3.i18n.es.json | 71 +-
.../bundled_templates/layers/aws_s3.i18n.fr.json | 78 ++
.../bundled_templates/layers/aws_s3.i18n.ja.json | 71 +-
.../bundled_templates/layers/aws_s3.i18n.ko.json | 71 +-
.../bundled_templates/layers/aws_s3.i18n.pt.json | 71 +-
.../layers/aws_s3.i18n.zh-CN.json | 34 +-
.../layers/bookkeeper.i18n.de.json | 198 +++++
.../layers/bookkeeper.i18n.es.json | 123 ++-
.../layers/bookkeeper.i18n.fr.json | 130 +++
.../layers/bookkeeper.i18n.ja.json | 123 ++-
.../layers/bookkeeper.i18n.ko.json | 123 ++-
.../layers/bookkeeper.i18n.pt.json | 123 ++-
.../layers/bookkeeper.i18n.zh-CN.json | 67 +-
.../bundled_templates/layers/browser.i18n.de.json | 215 +++++
.../bundled_templates/layers/browser.i18n.es.json | 108 ++-
.../bundled_templates/layers/browser.i18n.fr.json | 139 +++
.../bundled_templates/layers/browser.i18n.ja.json | 106 ++-
.../bundled_templates/layers/browser.i18n.ko.json | 106 ++-
.../bundled_templates/layers/browser.i18n.pt.json | 114 ++-
.../layers/browser.i18n.zh-CN.json | 90 +-
.../layers/cilium_service.i18n.de.json | 311 +++++++
.../layers/cilium_service.i18n.es.json | 177 +++-
.../layers/cilium_service.i18n.fr.json | 215 +++++
.../layers/cilium_service.i18n.ja.json | 177 +++-
.../layers/cilium_service.i18n.ko.json | 177 +++-
.../layers/cilium_service.i18n.pt.json | 184 +++-
.../layers/cilium_service.i18n.zh-CN.json | 115 ++-
.../layers/clickhouse.i18n.de.json | 320 +++++++
.../layers/clickhouse.i18n.es.json | 202 ++++-
.../layers/clickhouse.i18n.fr.json | 204 +++++
.../layers/clickhouse.i18n.ja.json | 200 ++++-
.../layers/clickhouse.i18n.ko.json | 200 ++++-
.../layers/clickhouse.i18n.pt.json | 206 ++++-
.../layers/clickhouse.i18n.zh-CN.json | 113 ++-
.../layers/elasticsearch.i18n.de.json | 324 +++++++
.../layers/elasticsearch.i18n.es.json | 199 ++++-
.../layers/elasticsearch.i18n.fr.json | 201 +++++
.../layers/elasticsearch.i18n.ja.json | 197 ++++-
.../layers/elasticsearch.i18n.ko.json | 197 ++++-
.../layers/elasticsearch.i18n.pt.json | 201 ++++-
.../layers/elasticsearch.i18n.zh-CN.json | 120 ++-
.../layers/envoy_ai_gateway.i18n.de.json | 239 +++++
.../layers/envoy_ai_gateway.i18n.es.json | 144 ++-
.../layers/envoy_ai_gateway.i18n.fr.json | 154 ++++
.../layers/envoy_ai_gateway.i18n.ja.json | 144 ++-
.../layers/envoy_ai_gateway.i18n.ko.json | 144 ++-
.../layers/envoy_ai_gateway.i18n.pt.json | 148 +++-
.../layers/envoy_ai_gateway.i18n.zh-CN.json | 81 +-
.../bundled_templates/layers/flink.i18n.de.json | 374 ++++++++
.../bundled_templates/layers/flink.i18n.es.json | 224 ++++-
.../bundled_templates/layers/flink.i18n.fr.json | 231 +++++
.../bundled_templates/layers/flink.i18n.ja.json | 224 ++++-
.../bundled_templates/layers/flink.i18n.ko.json | 224 ++++-
.../bundled_templates/layers/flink.i18n.pt.json | 224 ++++-
.../bundled_templates/layers/flink.i18n.zh-CN.json | 118 ++-
.../bundled_templates/layers/general.i18n.de.json | 760 ++++++++++++++++
.../bundled_templates/layers/general.i18n.es.json | 364 +++++++-
.../bundled_templates/layers/general.i18n.fr.json | 482 ++++++++++
.../bundled_templates/layers/general.i18n.ja.json | 366 +++++++-
.../bundled_templates/layers/general.i18n.ko.json | 366 +++++++-
.../bundled_templates/layers/general.i18n.pt.json | 378 +++++++-
.../layers/general.i18n.zh-CN.json | 274 ++++--
.../src/bundled_templates/layers/ios.i18n.de.json | 216 +++++
.../src/bundled_templates/layers/ios.i18n.es.json | 142 ++-
.../src/bundled_templates/layers/ios.i18n.fr.json | 140 +++
.../src/bundled_templates/layers/ios.i18n.ja.json | 140 ++-
.../src/bundled_templates/layers/ios.i18n.ko.json | 140 ++-
.../src/bundled_templates/layers/ios.i18n.pt.json | 142 ++-
.../bundled_templates/layers/ios.i18n.zh-CN.json | 98 ++-
.../src/bundled_templates/layers/k8s.i18n.de.json | 290 ++++++
.../src/bundled_templates/layers/k8s.i18n.es.json | 190 +++-
.../src/bundled_templates/layers/k8s.i18n.fr.json | 205 +++++
.../src/bundled_templates/layers/k8s.i18n.ja.json | 190 +++-
.../src/bundled_templates/layers/k8s.i18n.ko.json | 190 +++-
.../src/bundled_templates/layers/k8s.i18n.pt.json | 195 ++++-
.../bundled_templates/layers/k8s.i18n.zh-CN.json | 136 ++-
.../layers/k8s_service.i18n.de.json | 378 ++++++++
.../layers/k8s_service.i18n.es.json | 210 ++++-
.../layers/k8s_service.i18n.fr.json | 265 ++++++
.../layers/k8s_service.i18n.ja.json | 214 ++++-
.../layers/k8s_service.i18n.ko.json | 214 ++++-
.../layers/k8s_service.i18n.pt.json | 216 ++++-
.../layers/k8s_service.i18n.zh-CN.json | 159 ++--
.../bundled_templates/layers/kafka.i18n.de.json | 226 +++++
.../bundled_templates/layers/kafka.i18n.es.json | 138 ++-
.../bundled_templates/layers/kafka.i18n.fr.json | 146 +++
.../bundled_templates/layers/kafka.i18n.ja.json | 136 ++-
.../bundled_templates/layers/kafka.i18n.ko.json | 136 ++-
.../bundled_templates/layers/kafka.i18n.pt.json | 140 ++-
.../bundled_templates/layers/kafka.i18n.zh-CN.json | 67 +-
.../src/bundled_templates/layers/kong.i18n.de.json | 219 +++++
.../src/bundled_templates/layers/kong.i18n.es.json | 136 ++-
.../src/bundled_templates/layers/kong.i18n.fr.json | 141 +++
.../src/bundled_templates/layers/kong.i18n.ja.json | 136 ++-
.../src/bundled_templates/layers/kong.i18n.ko.json | 136 ++-
.../src/bundled_templates/layers/kong.i18n.pt.json | 140 ++-
.../bundled_templates/layers/kong.i18n.zh-CN.json | 76 +-
.../src/bundled_templates/layers/mesh.i18n.de.json | 365 ++++++++
.../src/bundled_templates/layers/mesh.i18n.es.json | 158 +++-
.../src/bundled_templates/layers/mesh.i18n.fr.json | 252 ++++++
.../src/bundled_templates/layers/mesh.i18n.ja.json | 158 +++-
.../src/bundled_templates/layers/mesh.i18n.ko.json | 158 +++-
.../src/bundled_templates/layers/mesh.i18n.pt.json | 165 +++-
.../bundled_templates/layers/mesh.i18n.zh-CN.json | 161 ++--
.../bundled_templates/layers/mesh_cp.i18n.de.json | 156 ++++
.../bundled_templates/layers/mesh_cp.i18n.es.json | 97 +-
.../bundled_templates/layers/mesh_cp.i18n.fr.json | 109 +++
.../bundled_templates/layers/mesh_cp.i18n.ja.json | 95 +-
.../bundled_templates/layers/mesh_cp.i18n.ko.json | 95 +-
.../bundled_templates/layers/mesh_cp.i18n.pt.json | 94 +-
.../layers/mesh_cp.i18n.zh-CN.json | 62 +-
.../bundled_templates/layers/mesh_dp.i18n.de.json | 115 +++
.../bundled_templates/layers/mesh_dp.i18n.es.json | 73 +-
.../bundled_templates/layers/mesh_dp.i18n.fr.json | 75 ++
.../bundled_templates/layers/mesh_dp.i18n.ja.json | 73 +-
.../bundled_templates/layers/mesh_dp.i18n.ko.json | 73 +-
.../bundled_templates/layers/mesh_dp.i18n.pt.json | 68 +-
.../layers/mesh_dp.i18n.zh-CN.json | 55 +-
.../bundled_templates/layers/mongodb.i18n.de.json | 266 ++++++
.../bundled_templates/layers/mongodb.i18n.es.json | 178 +++-
.../bundled_templates/layers/mongodb.i18n.fr.json | 178 ++++
.../bundled_templates/layers/mongodb.i18n.ja.json | 172 +++-
.../bundled_templates/layers/mongodb.i18n.ko.json | 172 +++-
.../bundled_templates/layers/mongodb.i18n.pt.json | 178 +++-
.../layers/mongodb.i18n.zh-CN.json | 112 ++-
.../bundled_templates/layers/mysql.i18n.de.json | 212 +++++
.../bundled_templates/layers/mysql.i18n.es.json | 136 ++-
.../bundled_templates/layers/mysql.i18n.fr.json | 145 +++
.../bundled_templates/layers/mysql.i18n.ja.json | 134 ++-
.../bundled_templates/layers/mysql.i18n.ko.json | 134 ++-
.../bundled_templates/layers/mysql.i18n.pt.json | 138 ++-
.../bundled_templates/layers/mysql.i18n.zh-CN.json | 73 +-
.../bundled_templates/layers/nginx.i18n.de.json | 188 ++++
.../bundled_templates/layers/nginx.i18n.es.json | 114 ++-
.../bundled_templates/layers/nginx.i18n.fr.json | 122 +++
.../bundled_templates/layers/nginx.i18n.ja.json | 116 ++-
.../bundled_templates/layers/nginx.i18n.ko.json | 116 ++-
.../bundled_templates/layers/nginx.i18n.pt.json | 118 ++-
.../bundled_templates/layers/nginx.i18n.zh-CN.json | 59 +-
.../bundled_templates/layers/os_linux.i18n.de.json | 140 +++
.../bundled_templates/layers/os_linux.i18n.es.json | 102 ++-
.../bundled_templates/layers/os_linux.i18n.fr.json | 101 +++
.../bundled_templates/layers/os_linux.i18n.ja.json | 102 ++-
.../bundled_templates/layers/os_linux.i18n.ko.json | 102 ++-
.../bundled_templates/layers/os_linux.i18n.pt.json | 102 ++-
.../layers/os_linux.i18n.zh-CN.json | 58 +-
.../layers/os_windows.i18n.de.json | 93 ++
.../layers/os_windows.i18n.es.json | 74 +-
.../layers/os_windows.i18n.fr.json | 73 ++
.../layers/os_windows.i18n.ja.json | 74 +-
.../layers/os_windows.i18n.ko.json | 74 +-
.../layers/os_windows.i18n.pt.json | 74 +-
.../layers/os_windows.i18n.zh-CN.json | 47 +-
.../layers/postgresql.i18n.de.json | 244 ++++++
.../layers/postgresql.i18n.es.json | 154 +++-
.../layers/postgresql.i18n.fr.json | 164 ++++
.../layers/postgresql.i18n.ja.json | 152 +++-
.../layers/postgresql.i18n.ko.json | 152 +++-
.../layers/postgresql.i18n.pt.json | 156 +++-
.../layers/postgresql.i18n.zh-CN.json | 80 +-
.../bundled_templates/layers/pulsar.i18n.de.json | 204 +++++
.../bundled_templates/layers/pulsar.i18n.es.json | 128 ++-
.../bundled_templates/layers/pulsar.i18n.fr.json | 136 +++
.../bundled_templates/layers/pulsar.i18n.ja.json | 124 ++-
.../bundled_templates/layers/pulsar.i18n.ko.json | 124 ++-
.../bundled_templates/layers/pulsar.i18n.pt.json | 130 ++-
.../layers/pulsar.i18n.zh-CN.json | 73 +-
.../bundled_templates/layers/rabbitmq.i18n.de.json | 243 +++++
.../bundled_templates/layers/rabbitmq.i18n.es.json | 160 +++-
.../bundled_templates/layers/rabbitmq.i18n.fr.json | 162 ++++
.../bundled_templates/layers/rabbitmq.i18n.ja.json | 156 +++-
.../bundled_templates/layers/rabbitmq.i18n.ko.json | 156 +++-
.../bundled_templates/layers/rabbitmq.i18n.pt.json | 162 +++-
.../layers/rabbitmq.i18n.zh-CN.json | 90 +-
.../bundled_templates/layers/redis.i18n.de.json | 207 +++++
.../bundled_templates/layers/redis.i18n.es.json | 128 ++-
.../bundled_templates/layers/redis.i18n.fr.json | 138 +++
.../bundled_templates/layers/redis.i18n.ja.json | 126 ++-
.../bundled_templates/layers/redis.i18n.ko.json | 126 ++-
.../bundled_templates/layers/redis.i18n.pt.json | 130 ++-
.../bundled_templates/layers/redis.i18n.zh-CN.json | 67 +-
.../bundled_templates/layers/rocketmq.i18n.de.json | 233 +++++
.../bundled_templates/layers/rocketmq.i18n.es.json | 140 ++-
.../bundled_templates/layers/rocketmq.i18n.fr.json | 156 ++++
.../bundled_templates/layers/rocketmq.i18n.ja.json | 136 ++-
.../bundled_templates/layers/rocketmq.i18n.ko.json | 136 ++-
.../bundled_templates/layers/rocketmq.i18n.pt.json | 144 ++-
.../layers/rocketmq.i18n.zh-CN.json | 93 +-
.../layers/so11y_go_agent.i18n.de.json | 64 ++
.../layers/so11y_go_agent.i18n.es.json | 39 +-
.../layers/so11y_go_agent.i18n.fr.json | 41 +
.../layers/so11y_go_agent.i18n.ja.json | 39 +-
.../layers/so11y_go_agent.i18n.ko.json | 39 +-
.../layers/so11y_go_agent.i18n.pt.json | 39 +-
.../layers/so11y_go_agent.i18n.zh-CN.json | 23 +-
.../layers/so11y_java_agent.i18n.de.json | 64 ++
.../layers/so11y_java_agent.i18n.es.json | 39 +-
.../layers/so11y_java_agent.i18n.fr.json | 41 +
.../layers/so11y_java_agent.i18n.ja.json | 39 +-
.../layers/so11y_java_agent.i18n.ko.json | 39 +-
.../layers/so11y_java_agent.i18n.pt.json | 39 +-
.../layers/so11y_java_agent.i18n.zh-CN.json | 23 +-
.../layers/so11y_oap.i18n.de.json | 254 ++++++
.../layers/so11y_oap.i18n.es.json | 152 +++-
.../layers/so11y_oap.i18n.fr.json | 153 ++++
.../layers/so11y_oap.i18n.ja.json | 152 +++-
.../layers/so11y_oap.i18n.ko.json | 152 +++-
.../layers/so11y_oap.i18n.pt.json | 152 +++-
.../layers/so11y_oap.i18n.zh-CN.json | 77 +-
.../layers/so11y_satellite.i18n.de.json | 69 ++
.../layers/so11y_satellite.i18n.es.json | 49 +-
.../layers/so11y_satellite.i18n.fr.json | 50 ++
.../layers/so11y_satellite.i18n.ja.json | 49 +-
.../layers/so11y_satellite.i18n.ko.json | 49 +-
.../layers/so11y_satellite.i18n.pt.json | 49 +-
.../layers/so11y_satellite.i18n.zh-CN.json | 30 +-
.../layers/virtual_cache.i18n.de.json | 139 +++
.../layers/virtual_cache.i18n.es.json | 72 +-
.../layers/virtual_cache.i18n.fr.json | 97 ++
.../layers/virtual_cache.i18n.ja.json | 76 +-
.../layers/virtual_cache.i18n.ko.json | 76 +-
.../layers/virtual_cache.i18n.pt.json | 80 +-
.../layers/virtual_cache.i18n.zh-CN.json | 59 +-
.../layers/virtual_database.i18n.de.json | 87 ++
.../layers/virtual_database.i18n.es.json | 40 +-
.../layers/virtual_database.i18n.fr.json | 72 ++
.../layers/virtual_database.i18n.ja.json | 46 +-
.../layers/virtual_database.i18n.ko.json | 46 +-
.../layers/virtual_database.i18n.pt.json | 52 +-
.../layers/virtual_database.i18n.zh-CN.json | 51 +-
.../layers/virtual_genai.i18n.de.json | 181 ++++
.../layers/virtual_genai.i18n.es.json | 101 ++-
.../layers/virtual_genai.i18n.fr.json | 129 +++
.../layers/virtual_genai.i18n.ja.json | 103 ++-
.../layers/virtual_genai.i18n.ko.json | 103 ++-
.../layers/virtual_genai.i18n.pt.json | 109 ++-
.../layers/virtual_genai.i18n.zh-CN.json | 83 +-
.../layers/virtual_mq.i18n.de.json | 134 +++
.../layers/virtual_mq.i18n.es.json | 86 +-
.../layers/virtual_mq.i18n.fr.json | 98 +++
.../layers/virtual_mq.i18n.ja.json | 88 +-
.../layers/virtual_mq.i18n.ko.json | 88 +-
.../layers/virtual_mq.i18n.pt.json | 92 +-
.../layers/virtual_mq.i18n.zh-CN.json | 53 +-
.../layers/wechat_mini_program.i18n.de.json | 179 ++++
.../layers/wechat_mini_program.i18n.es.json | 105 ++-
.../layers/wechat_mini_program.i18n.fr.json | 122 +++
.../layers/wechat_mini_program.i18n.ja.json | 107 ++-
.../layers/wechat_mini_program.i18n.ko.json | 107 ++-
.../layers/wechat_mini_program.i18n.pt.json | 113 ++-
.../layers/wechat_mini_program.i18n.zh-CN.json | 66 +-
.../bundled_templates/overviews/mesh.i18n.de.json | 58 ++
.../bundled_templates/overviews/mesh.i18n.fr.json | 58 ++
.../overviews/services.i18n.de.json | 84 ++
.../overviews/services.i18n.fr.json | 84 ++
apps/bff/src/http/admin/template-sync.ts | 190 ++++
apps/bff/src/http/config/bundle.ts | 48 +-
apps/bff/src/i18n/lexicon/de.json | 131 +++
apps/bff/src/i18n/lexicon/fr.json | 131 +++
apps/bff/src/i18n/merge.ts | 47 +-
apps/bff/src/i18n/types.ts | 20 +-
apps/bff/src/i18n/validate.ts | 41 +-
apps/bff/src/logic/templates/aggregator.ts | 38 +
apps/bff/src/logic/templates/names.ts | 96 +-
apps/bff/src/logic/templates/sync.ts | 83 +-
apps/bff/src/rbac/route-policy.ts | 3 +
apps/bff/src/server.ts | 3 +-
apps/ui/src/api/scopes/template-sync.ts | 34 +
apps/ui/src/components/charts/TopList.vue | 11 +-
.../ui/src/components/primitives/FloatingPanel.vue | 170 ++++
.../src/components/primitives/TypeaheadSelect.vue | 219 +++++
apps/ui/src/components/primitives/WidgetTip.vue | 164 ++++
apps/ui/src/controls/localTranslationEdits.ts | 129 +++
.../admin/_shared/LayerDashboardCanvas.vue | 303 +++++++
.../admin/_shared/OverviewDashboardCanvas.vue | 298 +++++++
.../features/admin/_shared/TemplateDiffModal.vue | 40 +-
.../src/features/admin/_shared/TemplatePicker.vue | 336 +++++++
.../features/admin/_shared/TranslationEditor.vue | 15 +-
.../admin/global-defaults/ThemePreviewCard.vue | 19 +-
.../admin/translations/TranslationPreview.vue | 15 +-
.../admin/translations/TranslationsView.vue | 974 +++++++++++++++------
apps/ui/src/features/alarms/AlarmDetailPanel.vue | 58 +-
apps/ui/src/features/operate/_shared/RuleCard.vue | 11 +-
.../features/operate/cluster/ClusterStatusView.vue | 40 +-
.../ui/src/features/operate/dsl/OalCatalogView.vue | 2 +-
.../operate/live-debug/DebugHistoryView.vue | 8 +-
.../src/features/operate/live-debug/DebugLal.vue | 118 ++-
.../src/features/operate/live-debug/DebugOal.vue | 73 +-
.../operate/live-debug/LiveDebuggerView.vue | 10 +-
apps/ui/src/i18n/index.ts | 12 +-
apps/ui/src/i18n/locales/de.json | 514 +++++++++++
apps/ui/src/i18n/locales/en.json | 417 ++++++++-
apps/ui/src/i18n/locales/es.json | 416 ++++++++-
apps/ui/src/i18n/locales/fr.json | 514 +++++++++++
apps/ui/src/i18n/locales/ja.json | 416 ++++++++-
apps/ui/src/i18n/locales/ko.json | 416 ++++++++-
apps/ui/src/i18n/locales/pt.json | 416 ++++++++-
apps/ui/src/i18n/locales/zh-CN.json | 417 ++++++++-
apps/ui/src/layer/LayerServiceSelector.vue | 11 +-
apps/ui/src/layer/LayerShell.vue | 152 +---
.../src/layer/profiling/ProcessTopologyGraph.vue | 9 +-
apps/ui/src/layer/profiling/ProfileFlameGraph.vue | 11 +-
apps/ui/src/layer/profiling/ProfileStackTable.vue | 19 +-
apps/ui/src/layer/traces/LayerTracesView.vue | 243 ++---
apps/ui/src/layer/traces/LayerZipkinTracesView.vue | 133 +--
apps/ui/src/layer/traces/TracePopout.vue | 76 +-
apps/ui/src/layer/traces/ZipkinTracePopout.vue | 35 +-
.../render/layer-dashboard/LayerDashboardsView.vue | 28 +-
apps/ui/src/render/widgets/AlarmsWidget.vue | 77 +-
apps/ui/src/render/widgets/KpiTileWidget.vue | 10 +-
.../src/render/widgets/MetricCompositeWidget.vue | 8 +-
apps/ui/src/render/widgets/MetricWidget.vue | 8 +-
apps/ui/src/shell/AdminFeatureWarning.vue | 39 +-
apps/ui/src/shell/AppShell.vue | 7 +-
apps/ui/src/shell/AppTopbar.vue | 19 +-
apps/ui/src/shell/ColdStageTrapBanner.vue | 10 +-
apps/ui/src/shell/DebugEventPanel.vue | 14 +-
apps/ui/src/shell/GlobalConnectivityBanner.vue | 15 +-
apps/ui/src/shell/LocaleChip.vue | 52 +-
apps/ui/src/shell/PreviewModeBanner.vue | 7 +-
apps/ui/src/shell/TemplateConflictPrompt.vue | 20 +-
apps/ui/src/shell/router/index.ts | 9 +-
apps/ui/src/state/layerSelection.ts | 91 +-
apps/ui/src/utils/autosize.ts | 58 ++
docs/customization/i18n.md | 19 +-
368 files changed, 46494 insertions(+), 3435 deletions(-)
create mode 100644 apps/bff/src/bundled_templates/layers/activemq.i18n.de.json
create mode 100644 apps/bff/src/bundled_templates/layers/activemq.i18n.fr.json
create mode 100644
apps/bff/src/bundled_templates/layers/alipay_mini_program.i18n.de.json
create mode 100644
apps/bff/src/bundled_templates/layers/alipay_mini_program.i18n.fr.json
create mode 100644 apps/bff/src/bundled_templates/layers/apisix.i18n.de.json
create mode 100644 apps/bff/src/bundled_templates/layers/apisix.i18n.fr.json
create mode 100644
apps/bff/src/bundled_templates/layers/aws_dynamodb.i18n.de.json
create mode 100644
apps/bff/src/bundled_templates/layers/aws_dynamodb.i18n.fr.json
create mode 100644 apps/bff/src/bundled_templates/layers/aws_eks.i18n.de.json
create mode 100644 apps/bff/src/bundled_templates/layers/aws_eks.i18n.fr.json
create mode 100644
apps/bff/src/bundled_templates/layers/aws_gateway.i18n.de.json
create mode 100644
apps/bff/src/bundled_templates/layers/aws_gateway.i18n.fr.json
create mode 100644 apps/bff/src/bundled_templates/layers/aws_s3.i18n.de.json
create mode 100644 apps/bff/src/bundled_templates/layers/aws_s3.i18n.fr.json
create mode 100644
apps/bff/src/bundled_templates/layers/bookkeeper.i18n.de.json
create mode 100644
apps/bff/src/bundled_templates/layers/bookkeeper.i18n.fr.json
create mode 100644 apps/bff/src/bundled_templates/layers/browser.i18n.de.json
create mode 100644 apps/bff/src/bundled_templates/layers/browser.i18n.fr.json
create mode 100644
apps/bff/src/bundled_templates/layers/cilium_service.i18n.de.json
create mode 100644
apps/bff/src/bundled_templates/layers/cilium_service.i18n.fr.json
create mode 100644
apps/bff/src/bundled_templates/layers/clickhouse.i18n.de.json
create mode 100644
apps/bff/src/bundled_templates/layers/clickhouse.i18n.fr.json
create mode 100644
apps/bff/src/bundled_templates/layers/elasticsearch.i18n.de.json
create mode 100644
apps/bff/src/bundled_templates/layers/elasticsearch.i18n.fr.json
create mode 100644
apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.de.json
create mode 100644
apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.fr.json
create mode 100644 apps/bff/src/bundled_templates/layers/flink.i18n.de.json
create mode 100644 apps/bff/src/bundled_templates/layers/flink.i18n.fr.json
create mode 100644 apps/bff/src/bundled_templates/layers/general.i18n.de.json
create mode 100644 apps/bff/src/bundled_templates/layers/general.i18n.fr.json
create mode 100644 apps/bff/src/bundled_templates/layers/ios.i18n.de.json
create mode 100644 apps/bff/src/bundled_templates/layers/ios.i18n.fr.json
create mode 100644 apps/bff/src/bundled_templates/layers/k8s.i18n.de.json
create mode 100644 apps/bff/src/bundled_templates/layers/k8s.i18n.fr.json
create mode 100644
apps/bff/src/bundled_templates/layers/k8s_service.i18n.de.json
create mode 100644
apps/bff/src/bundled_templates/layers/k8s_service.i18n.fr.json
create mode 100644 apps/bff/src/bundled_templates/layers/kafka.i18n.de.json
create mode 100644 apps/bff/src/bundled_templates/layers/kafka.i18n.fr.json
create mode 100644 apps/bff/src/bundled_templates/layers/kong.i18n.de.json
create mode 100644 apps/bff/src/bundled_templates/layers/kong.i18n.fr.json
create mode 100644 apps/bff/src/bundled_templates/layers/mesh.i18n.de.json
create mode 100644 apps/bff/src/bundled_templates/layers/mesh.i18n.fr.json
create mode 100644 apps/bff/src/bundled_templates/layers/mesh_cp.i18n.de.json
create mode 100644 apps/bff/src/bundled_templates/layers/mesh_cp.i18n.fr.json
create mode 100644 apps/bff/src/bundled_templates/layers/mesh_dp.i18n.de.json
create mode 100644 apps/bff/src/bundled_templates/layers/mesh_dp.i18n.fr.json
create mode 100644 apps/bff/src/bundled_templates/layers/mongodb.i18n.de.json
create mode 100644 apps/bff/src/bundled_templates/layers/mongodb.i18n.fr.json
create mode 100644 apps/bff/src/bundled_templates/layers/mysql.i18n.de.json
create mode 100644 apps/bff/src/bundled_templates/layers/mysql.i18n.fr.json
create mode 100644 apps/bff/src/bundled_templates/layers/nginx.i18n.de.json
create mode 100644 apps/bff/src/bundled_templates/layers/nginx.i18n.fr.json
create mode 100644 apps/bff/src/bundled_templates/layers/os_linux.i18n.de.json
create mode 100644 apps/bff/src/bundled_templates/layers/os_linux.i18n.fr.json
create mode 100644
apps/bff/src/bundled_templates/layers/os_windows.i18n.de.json
create mode 100644
apps/bff/src/bundled_templates/layers/os_windows.i18n.fr.json
create mode 100644
apps/bff/src/bundled_templates/layers/postgresql.i18n.de.json
create mode 100644
apps/bff/src/bundled_templates/layers/postgresql.i18n.fr.json
create mode 100644 apps/bff/src/bundled_templates/layers/pulsar.i18n.de.json
create mode 100644 apps/bff/src/bundled_templates/layers/pulsar.i18n.fr.json
create mode 100644 apps/bff/src/bundled_templates/layers/rabbitmq.i18n.de.json
create mode 100644 apps/bff/src/bundled_templates/layers/rabbitmq.i18n.fr.json
create mode 100644 apps/bff/src/bundled_templates/layers/redis.i18n.de.json
create mode 100644 apps/bff/src/bundled_templates/layers/redis.i18n.fr.json
create mode 100644 apps/bff/src/bundled_templates/layers/rocketmq.i18n.de.json
create mode 100644 apps/bff/src/bundled_templates/layers/rocketmq.i18n.fr.json
create mode 100644
apps/bff/src/bundled_templates/layers/so11y_go_agent.i18n.de.json
create mode 100644
apps/bff/src/bundled_templates/layers/so11y_go_agent.i18n.fr.json
create mode 100644
apps/bff/src/bundled_templates/layers/so11y_java_agent.i18n.de.json
create mode 100644
apps/bff/src/bundled_templates/layers/so11y_java_agent.i18n.fr.json
create mode 100644 apps/bff/src/bundled_templates/layers/so11y_oap.i18n.de.json
create mode 100644 apps/bff/src/bundled_templates/layers/so11y_oap.i18n.fr.json
create mode 100644
apps/bff/src/bundled_templates/layers/so11y_satellite.i18n.de.json
create mode 100644
apps/bff/src/bundled_templates/layers/so11y_satellite.i18n.fr.json
create mode 100644
apps/bff/src/bundled_templates/layers/virtual_cache.i18n.de.json
create mode 100644
apps/bff/src/bundled_templates/layers/virtual_cache.i18n.fr.json
create mode 100644
apps/bff/src/bundled_templates/layers/virtual_database.i18n.de.json
create mode 100644
apps/bff/src/bundled_templates/layers/virtual_database.i18n.fr.json
create mode 100644
apps/bff/src/bundled_templates/layers/virtual_genai.i18n.de.json
create mode 100644
apps/bff/src/bundled_templates/layers/virtual_genai.i18n.fr.json
create mode 100644
apps/bff/src/bundled_templates/layers/virtual_mq.i18n.de.json
create mode 100644
apps/bff/src/bundled_templates/layers/virtual_mq.i18n.fr.json
create mode 100644
apps/bff/src/bundled_templates/layers/wechat_mini_program.i18n.de.json
create mode 100644
apps/bff/src/bundled_templates/layers/wechat_mini_program.i18n.fr.json
create mode 100644 apps/bff/src/bundled_templates/overviews/mesh.i18n.de.json
create mode 100644 apps/bff/src/bundled_templates/overviews/mesh.i18n.fr.json
create mode 100644
apps/bff/src/bundled_templates/overviews/services.i18n.de.json
create mode 100644
apps/bff/src/bundled_templates/overviews/services.i18n.fr.json
create mode 100644 apps/bff/src/i18n/lexicon/de.json
create mode 100644 apps/bff/src/i18n/lexicon/fr.json
create mode 100644 apps/ui/src/components/primitives/FloatingPanel.vue
create mode 100644 apps/ui/src/components/primitives/TypeaheadSelect.vue
create mode 100644 apps/ui/src/components/primitives/WidgetTip.vue
create mode 100644 apps/ui/src/controls/localTranslationEdits.ts
create mode 100644 apps/ui/src/features/admin/_shared/LayerDashboardCanvas.vue
create mode 100644
apps/ui/src/features/admin/_shared/OverviewDashboardCanvas.vue
create mode 100644 apps/ui/src/features/admin/_shared/TemplatePicker.vue
create mode 100644 apps/ui/src/i18n/locales/de.json
create mode 100644 apps/ui/src/i18n/locales/fr.json
create mode 100644 apps/ui/src/utils/autosize.ts