Skip to content

Commit

Permalink
squash: dictGenerate update, +replacement
Browse files Browse the repository at this point in the history
---
up custom

git fetch -t

out xml2json

getRepo

clean

xml2json

custom: replace; dict

view

fix

dockerig

up

generate: update build ENV

getRepo; ENV BRANCH/TAG

+slim

pt with alpine

yarn,npm preset; grunt inst -g

same imagePack err

libpng*

grunt inst inDocker; use slim-stretchImg;

gruntfile; mv conf

up imgs

replace, latest

dev_clone

pt use cache

use cache

cache

dockerig

upper pt

up

up: with dictReplace.txt

sort, +说明;

replace: view public.tar.gz

dictGen: ADD ./generate/dictReplace.txt /generate

up ig

readme: use

dictReplace

with @@@: non trans

jdus host barge 20089

fix

+pt

mv dir

notes

test ins: image-webpack-loader

webpack.production

automake gcc

fix

ig dir output

npmBuild

up readme

replacement Dockerfile
  • Loading branch information
Sam@host-20089 authored and sam committed Oct 15, 2021
1 parent 765bb7a commit ea090b0
Show file tree
Hide file tree
Showing 22 changed files with 817 additions and 59 deletions.
4 changes: 4 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
output
replacement
demo
*.md
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,14 @@ generate/*
!generate/tpl
!generate/*.sh
!generate/*.xml
!generate/*.md
!generate/dictReplace.txt
lang-replacement
# godiff*
# transfer*

output/*
!output/*.sh
!output/.cache
!output/.cache/Dockerfile
node_modules
8 changes: 4 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,18 @@ RUN apk --update add \
WORKDIR /generate
RUN wget https://hub.fastgit.org/rinetd/transfer/releases/download/v1.0.2/transfer-v1.0.2-linux-amd64.tar.gz; \
tar -zxf transfer-v1.0.2-linux-amd64.tar.gz && rm -f transfer-v1.0.2-linux-amd64.tar.gz
RUN wget https://hub.fastgit.org/covrom/xml2json/releases/download/1.0/xml2json; chmod +x xml2json
COPY --from=builder /src/lang-replacement /generate
COPY --from=builder /src/godiff /generate
ADD ./generate/tpl/ /generate/tpl/
ADD ./generate/gitdiff.sh /generate
ADD ./generate/dictReplace.txt /generate
ADD ./entry.sh /generate
RUN find /generate

# EXPOSE 80
ENV GENERATE_REPO="https://gitee.com/g-devops/fk-portainer" \
GENERATE_BRANCH="br-v29-lang" \
GENERATE_OUTPUT="portainer_zh.xml" \
REPLACE_REPO="https://gitee.com/g-devops/fk-portainer" \
REPLACE_BRANCH="release/2.9" \
EXEC_TYPE="GENERATE"
CMP1="2.9.1" \
CMP2="origin/br-lang2"
ENTRYPOINT /generate/entry.sh
79 changes: 60 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,57 @@
- Konga v0.14.9 全支持
- Portainer v2.9.0 半汉化(docker+porainer部分)

## Dev
## 操作说明

- pt >> infrastlabs/portainer-cn:latest #基于官方v2.9.1, 生成portainer-cn汉化版镜像
- registry.cn-shenzhen.aliyuncs.com/infrastlabs/lang-replacement
- dict #字典生成
- cache #node_modules @v291
- replace,latest #汉化程序+Node构建 >> 生成public.tar.gz

**汉化(容器)**

```bash
# choice1: 直接使用汉化的容器(基于官方v2.9.1, 替换/public)
docker run -it --rm --net=host -v /var/run/docker.sock:/var/run/docker.sock registry.cn-shenzhen.aliyuncs.com/infrastlabs/portainer-cn

# choice2: 生成public.tar.gz, 手动挂载到容器内使用
# choice2_step1: 容器运行(node环境: 替换后 直接构建输出public.tar.gz)
$ docker run -it --rm -v $(pwd)/output:/output registry.cn-shenzhen.aliyuncs.com/infrastlabs/lang-replacement
# choice2_step1: 挂载/public目录来使用
tar -zxf public.tar.gz
docker run -it --rm --net=host -v /var/run/docker.sock:/var/run/docker.sock -v $(pwd)/public:/public portainer/portainer-ce:2.9.1-alpine
```

**汉化(二进制用法)** 二进制运行替换后,手工build前端工程

```bash
# step1: 二进制运行替换
# headless @ barge in .../lang-replacement/generate |15:53:12 |dev U:1 ?:2 ✗|
$ ./lang-replacement ./portainer_zh.xml $(pwd)/portainer/app
...
i= 49 portainer/views/users/edit/user.html
(replace)j= 0 {Change user password} > {修改密码}
Replace-Copied 4325 bytes, backdir: /_ext/working/_ct/lang-replacement/generate/portainer/app/.lang-replacement/portainer/views/users/edit/user.html!
i= 50 portainer/views/users/users.html
(replace)j= 0 {Add a new user} > {添加用户}
(replace)j= 1 {Users} > {用户管理}
Replace-Copied 7171 bytes, backdir: /_ext/working/_ct/lang-replacement/generate/portainer/app/.lang-replacement/portainer/views/users/users.html!
FINISH!

# step2: 基于上1步替换后的源码, 手工build前端工程(Portainer需要在源码层做汉化替换)
# ...
```

**生成汉化字典**

```bash
# headless @ barge in .../_ct/lang-replacement |14:42:10 |dev U:1 ✗| #dindMnt
$ docker run -it --rm -v $(pwd)/output:/output registry.cn-shenzhen.aliyuncs.com/infrastlabs/lang-replacement:generate

```

## Dev开发说明

```bash
# headless @ barge in .../_ct/lang-replacement |11:39:37 |master ↑2 U:1 ?:1 ✗|
Expand All @@ -25,8 +75,9 @@ $ go build -o godiff -x -v -ldflags "-s -w $flags" ./diff/main.go
# -rwxr-xr-x 1 headless headless 2.6M 10月 9 10:09 main00*
```

## Replacement模版生成
**Replacement模版生成**

```bash
TODO: git diff 锁定到行? > tpl > Replace指定行

**Portainer汉化**
Expand All @@ -40,26 +91,15 @@ TODO: git diff 锁定到行? > tpl > Replace指定行
- app/edge

https://www.bejson.com/xml2json/
```

## Use
**buildPortainer**

```bash
# 生成汉化字典
# headless @ barge in .../_ct/lang-replacement |14:42:10 |dev U:1 ✗| #dindMnt
$ docker run -it --rm -v /mnt/data/$(pwd)/output:/output registry.cn-shenzhen.aliyuncs.com/infrastlabs/lang-replacement

# 汉化
# headless @ barge in .../lang-replacement/generate |15:53:12 |dev U:1 ?:2 ✗|
$ ./lang-replacement ./portainer_zh.xml $(pwd)/portainer/app
...
i= 49 portainer/views/users/edit/user.html
(replace)j= 0 {Change user password} > {修改密码}
Replace-Copied 4325 bytes, backdir: /_ext/working/_ct/lang-replacement/generate/portainer/app/.lang-replacement/portainer/views/users/edit/user.html!
i= 50 portainer/views/users/users.html
(replace)j= 0 {Add a new user} > {添加用户}
(replace)j= 1 {Users} > {用户管理}
Replace-Copied 7171 bytes, backdir: /_ext/working/_ct/lang-replacement/generate/portainer/app/.lang-replacement/portainer/views/users/users.html!
FINISH!
# https://www.cnblogs.com/ccti7/p/13956678.html
# npm install image-webpack-loader --save-dev
yarn add image-webpack-loader -D
yarn add image-webpack-loader -g

```

Expand All @@ -68,3 +108,4 @@ FINISH!
- https://github.com/jsonljd/konga-lang-plugin
- http://www.zzvips.com/article/167183.html
- https://blog.csdn.net/qiuyoujie/article/details/79289181

38 changes: 38 additions & 0 deletions custom.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@

**dict/public.tar.gz**

```bash
# dict生成
# ENV GENERATE_REPO="https://gitee.com/g-devops/fk-portainer" \
# GENERATE_OUTPUT="portainer_zh.xml" \
# CMP1="2.9.1" \
# CMP2="origin/br-lang2"
docker run -it --rm -e CMP1=2.9.1 -e CMP2=origin/br-lang3 -v /mnt/data/$(pwd)/output:/output registry.cn-shenzhen.aliyuncs.com/infrastlabs/lang-replacement:dict


# xml2json
# wget https://hub.fastgit.org/covrom/xml2json/releases/download/1.0/xml2json
cat portainer_zh.xml |./xml2json |jq

```

**publicMount**

```bash
# barge: 生成public.tar.gz
# ENV \
# REPO="https://gitee.com/g-devops/fk-portainer" \
# # BRANCH="release/2.9" \
# TAG="2.9.1"

# TAG=2.9.0
docker run -it --rm -e BRANCH=sam-custom -v /mnt/data/$(pwd)/output:/output registry.cn-shenzhen.aliyuncs.com/infrastlabs/lang-replacement:replace



# tar -zxf public.tar.gz
public=/mnt/data/$(pwd)/output/portainer/dist/public
docker run -it --rm --net=host -v /var/run/docker.sock:/var/run/docker.sock -v $public:/public portainer/portainer-ce:2.9.1-alpine


```
43 changes: 32 additions & 11 deletions entry.sh
Original file line number Diff line number Diff line change
@@ -1,15 +1,36 @@
#!/bin/bash
outPath="/output" && mkdir -p $outPath

# if EXEC_TYPE="GENERATE"
# $AUTH
git clone -b $GENERATE_BRANCH $GENERATE_REPO srcGen
export SOURCE=srcGen/app
export CMP1=055c57
export CMP2=br-v29-lang
export OUTPUT=$outPath/$GENERATE_OUTPUT
./gitdiff.sh
# $AUTH #-b $GENERATE_BRANCH
# TODO /output/.cache/pt0_dict
mkdir -p /output/.cache; srcGenerate=/output/.cache/pt0_dict
# git clone $GENERATE_REPO $srcGenerate #each newDir, just normal clone.
# repo
function getRepo(){
errExit(){
echo "$1"
exit 1
}
if [ ! -d $srcGenerate ]; then
git clone $GENERATE_REPO $srcGenerate #--depth=1
else
cd $srcGenerate;
git fetch
# if both tag:
git fetch origin tag $CMP1
git fetch origin tag $CMP2
fi
}
getRepo


cat $OUTPUT |wc
# SOURCE=srcReplace
outPath="/output" && mkdir -p $outPath
# export CMP1=055c57
# export CMP2=br-lang2
export SOURCE=$srcGenerate/app
export OUTPUT=$outPath/$GENERATE_OUTPUT
/generate/gitdiff.sh

# view
cat $OUTPUT |wc; tail -30 $OUTPUT
# /generate/transfer -f -s $OUTPUT -t /tmp/view.json; cat /tmp/view.json |jq #tranferErr: got "null"
cat $OUTPUT |/generate/xml2json |jq
13 changes: 13 additions & 0 deletions generate/dictReplace.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<expect><![CDATA[text="Containers"]]></expect>|<expect><![CDATA[text="容器"]]></expect>
<expect><![CDATA[text="Events"]]></expect>|<expect><![CDATA[text="Events事件"]]></expect>
<expect><![CDATA[text="Images"]]></expect>|<expect><![CDATA[text="镜像"]]></expect>
<expect><![CDATA[text="Networks"]]></expect>|<expect><![CDATA[text="网络"]]></expect>
<expect><![CDATA[text="Volumes"]]></expect>|<expect><![CDATA[text="磁盘"]]></expect>

<expect><![CDATA[text="Registries"]]></expect>|<expect><![CDATA[text="Registries仓库"]]></expect>
<expect><![CDATA[-text="Stacks"]]></expect>|<expect><![CDATA[-text="应用Stacks"]]></expect>
<expect><![CDATA[获取容噟����������������������������明细失败]]></expect>|<expect><![CDATA[获取容器明细失败]]></expect>




3 changes: 2 additions & 1 deletion generate/gen_portainer.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ BRANCH="br-v29-lang"
# export CMP1=055c57
# export CMP2=origin/br-v29-lang

export SOURCE="/_ext/bbox/_ee/fk-portainer/app"
export SOURCE="/_ext/working/_ct/fk-portainer/app"
# export SOURCE="/_ext/bbox/_ee/fk-portainer/app"
export CMP1=604f2823428aa26401b5b0f1ba118eb494325edb
export CMP2=br-lang2 #origin/br-v29-lang
# export SOURCE="portainer/app"
Expand Down
15 changes: 15 additions & 0 deletions generate/gitdiff.sh
Original file line number Diff line number Diff line change
Expand Up @@ -116,3 +116,18 @@ cat $tmp/root.txt > $tmp/root.json
# touch $OUTPUT #if notExist, transfer err (in alpine)
$cur/transfer -f -s $tmp/root.json -t $OUTPUT
# rm -rf $tmp

function dictReplace(){
echo "==[dictReplace]==============="
cat $cur/dictReplace.txt |grep -v "^#" |grep -v "^$" | while read one; do
# echo $one
f1=$(echo $one |cut -d'|' -f1)
f2=$(echo $one |cut -d'|' -f2)
f1=$(echo $f1 |sed "s/\[/\\\[/g" |sed "s/\!/\\\!/g" |sed "s/\]/\\\]/g")
f2=$(echo $f2 |sed "s/\[/\\\[/g" |sed "s/\!/\\\!/g" |sed "s/\]/\\\]/g")
echo "$f1"; echo "$f2"; echo ""

sed -i "s^$f1^$f2^g" $OUTPUT #$cur/portainer_zh.xml
done
}
dictReplace
35 changes: 27 additions & 8 deletions generate/portainer_zh.xml
Original file line number Diff line number Diff line change
Expand Up @@ -135,15 +135,18 @@
<target><![CDATA[Unable to exec into container]]></target>
</replace>
<replace>
<expect><![CDATA[获取容噟����������������������������明细失败]]></expect>
<expect><![CDATA[获取容器明细失败]]></expect>
<target><![CDATA[Unable to retrieve container details]]></target>
</replace>
</item>
<name>docker/views/containers/console/containerConsoleController.js</name>
</file>
<file>
<item>
<replace />
<replace>
<expect><![CDATA[text="容器"]]></expect>
<target><![CDATA[text="Containers"]]></target>
</replace>
</item>
<name>docker/views/containers/containers.html</name>
</file>
Expand Down Expand Up @@ -205,7 +208,10 @@
</file>
<file>
<item>
<replace />
<replace>
<expect><![CDATA[text="Events事件"]]></expect>
<target><![CDATA[text="Events"]]></target>
</replace>
</item>
<name>docker/views/events/events.html</name>
</file>
Expand All @@ -215,6 +221,10 @@
<expect><![CDATA[镜像拉取]]></expect>
<target><![CDATA[Pull image]]></target>
</replace>
<replace>
<expect><![CDATA[text="镜像"]]></expect>
<target><![CDATA[text="Images"]]></target>
</replace>
</item>
<name>docker/views/images/images.html</name>
</file>
Expand Down Expand Up @@ -259,7 +269,7 @@
<target><![CDATA[Driver options]]></target>
</replace>
<replace>
<expect><![CDATA[网络驱动]]></expect>
<expect><![CDATA[网络驱动)]]></expect>
<target><![CDATA[Driver options]]></target>
</replace>
<replace>
Expand All @@ -271,7 +281,10 @@
</file>
<file>
<item>
<replace />
<replace>
<expect><![CDATA[text="网络"]]></expect>
<target><![CDATA[text="Networks"]]></target>
</replace>
</item>
<name>docker/views/networks/networks.html</name>
</file>
Expand Down Expand Up @@ -339,7 +352,10 @@
</file>
<file>
<item>
<replace />
<replace>
<expect><![CDATA[text="磁盘"]]></expect>
<target><![CDATA[text="Volumes"]]></target>
</replace>
</item>
<name>docker/views/volumes/volumes.html</name>
</file>
Expand Down Expand Up @@ -450,7 +466,10 @@
</file>
<file>
<item>
<replace />
<replace>
<expect><![CDATA[text="Registries仓库"]]></expect>
<target><![CDATA[text="Registries"]]></target>
</replace>
</item>
<name>portainer/views/registries/registries.html</name>
</file>
Expand Down Expand Up @@ -488,7 +507,7 @@
<file>
<item>
<replace>
<expect><![CDATA[-text="Stacks"]]></expect>
<expect><![CDATA[-text="应用Stacks"]]></expect>
<target><![CDATA[-text="Stacks"]]></target>
</replace>
</item>
Expand Down
8 changes: 0 additions & 8 deletions generate/rep_portainer.sh

This file was deleted.

8 changes: 8 additions & 0 deletions generate/test.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@

```bash
headless @ barge in .../lang-replacement/generate |17:31:51 |dev U:3 ?:3 ✗|
$ cat t1.txt |sed "s^<expect><\!\[CDATA\[^bb/^g"
bb/
# $ cat t1.txt
<expect><![CDATA[
```
Loading

0 comments on commit ea090b0

Please sign in to comment.