Skip to content
This repository has been archived by the owner on Jan 15, 2024. It is now read-only.

Translate collections #72

Open
rdoylespk opened this issue Aug 12, 2016 · 3 comments
Open

Translate collections #72

rdoylespk opened this issue Aug 12, 2016 · 3 comments

Comments

@rdoylespk
Copy link

Hi!

Is it possible to translate collections? Right now, I have to manage 2 separates collections and I've created a tag to link the posts together. It's working but I've got to do a lot of validation to make it work and it's not reusable if wI need to use it in another project.

Thanks!

@Anthony-Gaudino
Copy link
Contributor

Hi @rdoylespk,

unfortunately it's not possible right now, so this would need to be implemented.

@andrewhilts
Copy link

andrewhilts commented Jul 21, 2017

FWIW I got translated collections to work in an inelegant way, but it works for my use case.

Let's say I have two languages, en and zh. I have a post in both _i18ln/en and _i18ln/zh in which I want to embed links to the docs in my resources collection.

My config.yml has this in it:

collections:
  resources:
    output: true
    permalink: /resources/:path/

I have a folder called _resources in my root directory, with this folder structure.

├── en
│   └── test.html
│   └── test2.html
└── zh
    └── test.html
    └── test2.html

test.html looks like this in the en folder:

---
title: "Test 1"
---
Test 1 Content

test.html looks like this in the zh folder:

---
title: "測試1"
---
測試1個內容

test2.html follows the same pattern in each folder.

In my posts for en and zh, If I want to present links to the pages in my resources collection, I can do the following:

{% for resource in site.resources %}
    {% assign resource_lang = resource.url | slice: 11, 2 %}
    {% if resource_lang == site.lang %}
      <a href="{{resource.url}}">{{resource.title}}</a>
    {% endif %}
{% endfor %}

This creates links to docs in the resources collection, but only if the doc url contains the site.lang string at index 11 (after /resources/).

The above will output this in the en post:
<a href="/resources/en/test1.html>Test1</a> <a href="/resources/en/test2.html>Test2</a>

The above will output this in the zh post:
<a href="/resources/zh/test1.html>測試1</a> <a href="/resources/zh/test2.html>測試2</a>

The items will be ordered alphabetically. There's probably a way to order them by some YAML front matter attribute present in each collection doc, as well, with some extra Liquid magic

I hope this helps some people!

@SeeTwoDev
Copy link

SeeTwoDev commented Aug 14, 2017

Can you, somehow, translate content and then pass it to a layout?

I can't seem to find how.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants