Hi everyone!
I am making site with multilingual support. I want to add archetypes for posts in both language. Structure inside the content folder looks like this:
content
├── en
│ └── post.md
└── sr
└── post.md
I tried to add folders ‘en’ and ‘sr’ in ‘archetypes’ folder but it didn’t work.
How can I solve this problem? Is there a way to add archetypes for two languages?
While there may be other possibilities, you can just have two separate files in archetypes/ and then “call” each separately. For example, let’s say you have archetypes/en.md for English posts and archetypes/sr.md for Serbian posts. Then, if you want to create a new en post called my-new-english-post, you’d use hugo new en/my-new-english-post.md — or, for a new sr post called my-new-serbian-post, use hugo new sr/my-new-serbian-post.md.
(Based on an article I wrote for the CloudCannon Blog.)
Thanks, but still not working. When I use new en/my-new-english-post.md, it makes in ‘sr’ folder.
Path is sr/en/my-new-english-post.md, same thing happens when write 'new sr/my-new-serbian-post.md`. It’s always the same path ‘content/sr/…’.
I worked with this for a while and, as nearly as I can determine, it’s controlled by your config file’s DefaultContentLanguage setting.
With it set at sr, as you had it, hugo new blog/test-post.md --kind sr/blog creates content/sr/blog/test-post.md. But if that setting is either changed to en or commented-out (which invokes the default setting of en), hugo new blog/test-post.md --kind sr/blog creates content/en/blog/test-post.md — in other words, the --kind sets only which archetype it uses but does not change the final language-specific subdirectory within content/; instead, the DefaultContentLanguage setting does. That does make sense, but the documentation doesn’t explain it.
(You’ll definitely want to use the --kind flag because, otherwise, Hugo uses only the default.md archetype from either theme/[YourTheme]/archetypes/sr/ or theme/[YourTheme]/archetypes/en/, depending on how DefaultContentLanguage is set in the config file.)
Anyway, it appears that, while creating your content from archetypes, you’ll need to switch back and forth on that DefaultConfigLanguage setting. Sorry that I can’t offer a more convenient answer.
You may also want to read this old question from years ago:
It seems that there is no implementation yet for language-specific archetypes.
However
To use language-specific archetypes for a language you can do hugo new -k en/blog content/en/blog/my-new-post.md or hugo new -k sr/blog content/sr/blog/my-new-post.md and by including content in your path, the archetype will be interpolated and generated in the adequate folder. The archetypes folder should be structured as follows (in your example):