Skip to content

Commit 8a326d8

Browse files
committed
[ chor ] 增加po4a配置,使用docker自动化更新翻译
1 parent 7c408ef commit 8a326d8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+76348
-70
lines changed

.github/workflows/ci-super-linter.yml

-32
This file was deleted.

.github/workflows/notify-on-fail.yml

-38
This file was deleted.
+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: 更新翻译进度
2+
3+
on:
4+
# schedule:
5+
# 定时构建
6+
# - cron: '0 0 * * *'
7+
# 手动触发
8+
workflow_dispatch: {}
9+
push:
10+
branches:
11+
- 'main'
12+
jobs:
13+
build:
14+
runs-on: ubuntu-latest
15+
16+
steps:
17+
- name: 检出代码仓库
18+
uses: actions/checkout@v3
19+
20+
- name: 配置git config
21+
run: |
22+
git config --global user.email "github-actions[bot]@users.noreply.github.com"
23+
git config --global user.name "github-actions[bot]"
24+
25+
- name: 更新翻译
26+
run: make update
27+
28+
- name: 提交修改
29+
run: git add . && git commit -m "更新翻译进度" && git push

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
build/
22
*.*~
3+
.vscode

Dockerfile

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
FROM alpine:3.16
2+
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories && apk add perl-yaml-tiny po4a
3+
# RUN apk add perl-yaml-tiny po4a
4+
WORKDIR /work
5+
6+
CMD rm -rf translation/src && cp -r src translation/src && cd translation && po4a -f -v ./po4a.cfg

Makefile

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
pwd :=$(shell pwd)
2+
3+
.PHONY: build-docker
4+
build-docker:
5+
docker build -t idris2-tutorial:dev .
6+
7+
.PHONY: update
8+
update: build-docker
9+
docker run --rm -v ${pwd}:/work idris2-tutorial:dev

README.md

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
> [Chinese Translation](translation/README.md)
2+
13
# Functional Programming in Idris 2
24

35
[中文翻译](https://github.com/running-grass/idris2-tutorial-zh/blob/main/translation/README.md)

translation/Makefile

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
.PHONY: update
2+
update:
3+
po4a ./po4a.cfg
4+

translation/README.md

+167
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
> 这里是中文版!
2+
3+
# Idris 2 中的函数式编程
4+
5+
6+
7+
这个项目的目标是:要成为 Idris 编程语言的全面指南,其中包含大量针对函数式编程新手的介绍性材料。
8+
9+
内容将分为几个部分,其中关于核心语言特性的部分是 Idris 函数式编程主要指南。每个部分都由几个章节组成,每个章节都试图深入介绍 Idris 编程语言及其核心库的某个方面。大多数章节都附带(有时很多)练习,在目录 `src/Solutions` 中提供了解决方案。
10+
11+
目前,虽然关于核心语言特性的部分还没有完成,但正在积极开发中,并在我自己的几个学生身上进行尝试,其中一些甚至是函数式编程的萌新。
12+
13+
## 目录
14+
15+
### 第 1 部分:核心语言特性
16+
17+
这部分试图对 Idris 编程语言进行深入的介绍。如果您是函数式编程的新手,请确保按顺序阅读这些章节并*解决所有练习*
18+
19+
如果您已经使用过其他纯函数式编程语言,例如 Haskell,那么您可能会很快完成介绍性材料(函数第 1 部分,代数数据类型和接口),因为这些内容中的大部分内容您已经很熟悉了。
20+
21+
1. [介绍](src/Tutorial/Intro.md)
22+
23+
1. [关于 Idris 编程语言](src/Tutorial/Intro.md#关于-Idris-编程语言)
24+
25+
2. [使用 REPL](src/Tutorial/Intro.md#使用-REPL)
26+
27+
3. [第一个 Idris 程序](src/Tutorial/Intro.md#第一个-Idris-程序)
28+
29+
4. [如何声明一个 Idris 定义](src/Tutorial/Intro.md#如何声明一个-Idris-定义)
30+
31+
5. [在哪里可以获得帮助](src/Tutorial/Intro.md#在哪里可以获得帮助)
32+
33+
2. [函数第 1 部分](src/Tutorial/Functions1.md)
34+
35+
1. [多参函数](src/Tutorial/Functions1.md#多参函数)
36+
37+
2. [函数组合](src/Tutorial/Functions1.md#函数组合])
38+
39+
3. [高阶函数](src/Tutorial/Functions1.md#高阶函数)
40+
41+
4. [柯里化](src/Tutorial/Functions1.md#柯里化)
42+
43+
5. [匿名函数](src/Tutorial/Functions1.md#匿名函数)
44+
45+
6. [运算符](src/Tutorial/Functions1.md#运算符)
46+
47+
3. [代数数据类型](src/Tutorial/DataTypes.md)
48+
49+
1. [枚举](src/Tutorial/DataTypes.md#枚举)
50+
51+
2. [和类型](src/Tutorial/DataTypes.md#和类型)
52+
53+
3. [记录](src/Tutorial/DataTypes.md#记录)
54+
55+
4. [泛型数据类型](src/Tutorial/DataTypes.md#泛型数据类型)
56+
57+
5. [数据定义的替代语法](src/Tutorial/DataTypes.md#数据定义的替代语法)
58+
59+
4. [接口](src/Tutorial/Interfaces.md)
60+
61+
1. [接口基础](src/Tutorial/Interfaces.md#接口基础)
62+
63+
2. [接口的更多内容](src/Tutorial/Interfaces.md#接口的更多内容)
64+
65+
3. [Prelude 中的接口](src/Tutorial/Interfaces.md#Prelude-中的接口)
66+
67+
5. [函数第 2 部分](src/Tutorial/Functions2.md)
68+
69+
1. [绑定和局部定义](src/Tutorial/Functions2.md#绑定和局部定义)
70+
71+
2. [函数参数的真相](src/Tutorial/Functions2.md#函数参数的真相)
72+
73+
3. [使用孔编程](src/Tutorial/Functions2.md#使用孔编程)
74+
75+
6. [依赖类型](src/Tutorial/Dependent.md)
76+
77+
1. [长度索引列表](src/Tutorial/Dependent.md#长度索引列表)
78+
79+
2. [Fin: 向量的安全索引](src/Tutorial/Dependent.md#Fin:-向量的安全索引)
80+
81+
3. [编译期计算](src/Tutorial/Dependent.md#编译期计算)
82+
83+
7. [IO:带有副作用的编程](src/Tutorial/IO.md)
84+
85+
1. [纯的副作用?](src/Tutorial/IO.md#纯的副作用?)
86+
87+
2. [Do 块,脱糖](src/Tutorial/IO.md#Do-块,脱糖)
88+
89+
3. [使用文件](src/Tutorial/IO.md#使用文件)
90+
91+
4. [IO 是如何实现的](src/Tutorial/IO.md#IO-是如何实现的)
92+
93+
8. [函子和它的伙伴们](src/Tutorial/Functor.md)
94+
95+
1. [函子](src/Tutorial/Functor.md#函子)
96+
97+
2. [应用函子](src/Tutorial/Functor.md#应用函子)
98+
99+
3. [单子](src/Tutorial/Functor.md#单子)
100+
101+
4. [背景与延伸阅读](src/Tutorial/Functor.md#背景与延伸阅读)
102+
103+
9. [递归与折叠](src/Tutorial/Folds.md)
104+
105+
1. [递归](src/Tutorial/Folds.md#递归)
106+
107+
2. [关于完全性检查的一些注意事项](src/Tutorial/Folds.md#关于完全性检查的一些注意事项)
108+
109+
3. [Foldable 接口](src/Tutorial/Folds.md#Foldable-接口)
110+
111+
10. [带副作用的遍历](src/Tutorial/Traverse.md)
112+
113+
1. [阅读 CSV 表格](src/Tutorial/Traverse.md#阅读-CSV-表格)
114+
115+
2. [使用状态编程](src/Tutorial/Traverse.md#使用状态编程)
116+
117+
3. [组合的力量](src/Tutorial/Traverse.md#组合的力量)
118+
119+
11. [Sigma 类型](src/Tutorial/DPair.md)
120+
121+
1. [依赖对](src/Tutorial/DPair.md#依赖对)
122+
123+
2. [用例:核酸](src/Tutorial/DPair.md#用例:核酸)
124+
125+
3. [用例:带有模式的 CSV 文件](src/Tutorial/DPair.md#用例:带有模式的-CSV-文件)
126+
127+
12. [命题等式 Equality](src/Tutorial/Eq.md)
128+
129+
1. [相等作为类型](src/Tutorial/Eq.md#相等作为类型)
130+
131+
2. [程序作为证明](src/Tutorial/Eq.md#程序作为证明)
132+
133+
3. [遁入虚无](src/Tutorial/Eq.md#遁入虚无)
134+
135+
4. [重写规则](src/Tutorial/Eq.md#重写规则)
136+
137+
13. [谓词和证明搜索](src/Tutorial/Predicates.md)
138+
139+
1. [前置条件](src/Tutorial/Predicates.md#前置条件)
140+
141+
2. [值之间的契约](src/Tutorial/Predicates.md#值之间的契约)
142+
143+
3. [用例:灵活的错误处理](src/Tutorial/Predicates.md#用例:灵活的错误处理)
144+
145+
4. [接口的真相](src/Tutorial/Predicates.md#接口的真相)
146+
147+
14. [原语](src/Tutorial/Prim.md)
148+
149+
1. [原语的实现](src/Tutorial/Prim.md#原语的实现)
150+
151+
2. [使用字符串](src/Tutorial/Prim.md#使用字符串)
152+
153+
3. [整数](src/Tutorial/Prim.md#整数)
154+
155+
4. [细化原语](src/Tutorial/Prim.md#细化原语)
156+
157+
158+
### 第 2 部分:附录
159+
160+
附录可用作手头主题的参考。我计划最终对 Idris 语法、典型错误消息、模块系统、交互式编辑以及可能的其他内容有一个简明的参考。
161+
162+
1. [Neovim 中的交互式编辑](src/Appendices/Neovim.md)
163+
164+
165+
## 前置条件
166+
167+
目前,该项目正在针对 Idris 2 存储库的主要分支进行积极开发和演进。它每晚在 GitHub 上进行测试,并针对 Idris 2 主分支的最新提交以及文件 `.idris-version` 中列出的 Idris 2 提交进行构建。

0 commit comments

Comments
 (0)