Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions _plugins/localize_post_url.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# frozen_string_literal: true

module Jekyll

# Provides a Liquid filter to resolve a localized version of a
# post URL when a translation exists for the given language.
#
# Falls back to the original (English) URL if no translation is found.
#
# Example:
# {{ release.post | localize_post_url: page.lang }}
#
module LocalizePostUrlFilter

def localize_post_url(url, lang)
return url if lang.nil? || lang == "en"

localized_url = url.sub(%r{\A/en/}, "/#{lang}/")
return url if localized_url == url

site = @context.registers[:site]

# Build a lookup set of all post URLs on first use (cached per site)
@post_urls ||= Set.new(site.posts.docs.map(&:url))

if @post_urls.include?(localized_url)
localized_url
else
url
end
end
end
end

Liquid::Template.register_filter(Jekyll::LocalizePostUrlFilter)
2 changes: 1 addition & 1 deletion ja/downloads/releases/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,6 @@ lang: ja
<td>Ruby {{ release.version }}</td>
<td>{{ release.date }}</td>
<td><a href="{{ release.url.gz }}">download</a></td>
<td><a href="{{ release.post }}">more...</a></td>
<td><a href="{{ release.post | localize_post_url: page.lang }}">more...</a></td>
</tr>{% endfor %}
</table>
2 changes: 1 addition & 1 deletion ko/downloads/releases/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,6 @@ Ruby 릴리스 목록입니다.
<td>Ruby {{ release.version }}</td>
<td>{{ release.date }}</td>
<td><a href="{{ release.url.gz }}">다운로드</a></td>
<td><a href="{{ release.post }}">더 보기...</a></td>
<td><a href="{{ release.post | localize_post_url: page.lang }}">더 보기...</a></td>
</tr>{% endfor %}
</table>
2 changes: 1 addition & 1 deletion uk/downloads/releases/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,6 @@ lang: uk
<td>Ruby {{ release.version }}</td>
<td>{{ release.date }}</td>
<td><a href="{{ release.url.gz }}">завантажити</a></td>
<td><a href="{{ release.post }}">детальніше...</a></td>
<td><a href="{{ release.post | localize_post_url: page.lang }}">детальніше...</a></td>
</tr>{% endfor %}
</table>
2 changes: 1 addition & 1 deletion vi/downloads/releases/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,6 @@ các tarball mã nguồn.
<td>Ruby {{ release.version }}</td>
<td>{{ release.date }}</td>
<td><a href="{{ release.url.gz }}">tải về</a></td>
<td><a href="{{ release.post }}">xem thêm...</a></td>
<td><a href="{{ release.post | localize_post_url: page.lang }}">xem thêm...</a></td>
</tr>{% endfor %}
</table>
2 changes: 1 addition & 1 deletion zh_cn/downloads/releases/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,6 @@ lang: zh_cn
<td>Ruby {{ release.version }}</td>
<td>{{ release.date }}</td>
<td><a href="{{ release.url.gz }}">下载</a></td>
<td><a href="{{ release.post }}">查看…</a></td>
<td><a href="{{ release.post | localize_post_url: page.lang }}">查看…</a></td>
</tr>{% endfor %}
</table>