File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ # frozen_string_literal: true
2+
3+ module Jekyll
4+
5+ # Provides a Liquid filter to resolve a localized version of a
6+ # post URL when a translation exists for the given language.
7+ #
8+ # Falls back to the original (English) URL if no translation is found.
9+ #
10+ # Example:
11+ # {{ release.post | localize_post_url: page.lang }}
12+ #
13+ module LocalizePostUrlFilter
14+
15+ def localize_post_url ( url , lang )
16+ return url if lang . nil? || lang == "en"
17+
18+ localized_url = url . sub ( %r{\A /en/} , "/#{ lang } /" )
19+ return url if localized_url == url
20+
21+ site = @context . registers [ :site ]
22+
23+ # Build a lookup set of all post URLs on first use (cached per site)
24+ @post_urls ||= Set . new ( site . posts . docs . map ( &:url ) )
25+
26+ if @post_urls . include? ( localized_url )
27+ localized_url
28+ else
29+ url
30+ end
31+ end
32+ end
33+ end
34+
35+ Liquid ::Template . register_filter ( Jekyll ::LocalizePostUrlFilter )
Original file line number Diff line number Diff line change @@ -28,6 +28,6 @@ lang: ja
2828<td >Ruby {{ release.version }}</td >
2929<td >{{ release.date }}</td >
3030<td ><a href =" {{ release.url.gz }} " >download</a ></td >
31- <td ><a href =" {{ release.post }} " >more...</a ></td >
31+ <td ><a href =" {{ release.post | localize_post_url: page.lang }} " >more...</a ></td >
3232</tr >{% endfor %}
3333</table >
Original file line number Diff line number Diff line change @@ -29,6 +29,6 @@ Ruby 릴리스 목록입니다.
2929<td >Ruby {{ release.version }}</td >
3030<td >{{ release.date }}</td >
3131<td ><a href =" {{ release.url.gz }} " >다운로드</a ></td >
32- <td ><a href =" {{ release.post }} " >더 보기...</a ></td >
32+ <td ><a href =" {{ release.post | localize_post_url: page.lang }} " >더 보기...</a ></td >
3333</tr >{% endfor %}
3434</table >
Original file line number Diff line number Diff line change @@ -30,6 +30,6 @@ lang: uk
3030<td >Ruby {{ release.version }}</td >
3131<td >{{ release.date }}</td >
3232<td ><a href =" {{ release.url.gz }} " >завантажити</a ></td >
33- <td ><a href =" {{ release.post }} " >детальніше...</a ></td >
33+ <td ><a href =" {{ release.post | localize_post_url: page.lang }} " >детальніше...</a ></td >
3434</tr >{% endfor %}
3535</table >
Original file line number Diff line number Diff line change @@ -30,6 +30,6 @@ các tarball mã nguồn.
3030<td >Ruby {{ release.version }}</td >
3131<td >{{ release.date }}</td >
3232<td ><a href =" {{ release.url.gz }} " >tải về</a ></td >
33- <td ><a href =" {{ release.post }} " >xem thêm...</a ></td >
33+ <td ><a href =" {{ release.post | localize_post_url: page.lang }} " >xem thêm...</a ></td >
3434</tr >{% endfor %}
3535</table >
Original file line number Diff line number Diff line change @@ -28,6 +28,6 @@ lang: zh_cn
2828<td >Ruby {{ release.version }}</td >
2929<td >{{ release.date }}</td >
3030<td ><a href =" {{ release.url.gz }} " >下载</a ></td >
31- <td ><a href =" {{ release.post }} " >查看…</a ></td >
31+ <td ><a href =" {{ release.post | localize_post_url: page.lang }} " >查看…</a ></td >
3232</tr >{% endfor %}
3333</table >
You can’t perform that action at this time.
0 commit comments