Skip to content

Commit 3b4f375

Browse files
authored
Merge pull request #3819 from runlevel5/localize-release-post-urls
2 parents 6f726e0 + fce1757 commit 3b4f375

6 files changed

Lines changed: 40 additions & 5 deletions

File tree

_plugins/localize_post_url.rb

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
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)

ja/downloads/releases/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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>

ko/downloads/releases/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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>

uk/downloads/releases/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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>

vi/downloads/releases/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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>

zh_cn/downloads/releases/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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>

0 commit comments

Comments
 (0)