[Scummvm-git-logs] scummvm-web master -> bcf45949d016d89d5b73122602cfa25471b7be9d
Mataniko
mataniko at gmail.com
Tue Sep 29 20:08:42 UTC 2020
This automated email contains information about 16 new commits which have been
pushed to the 'scummvm-web' repo located at https://github.com/scummvm/scummvm-web .
Summary:
651488b8c8 DATA: Move L10N files for simple URLs
e483873d57 WEB: Remove the lang cookie and leverage the url path instead
053bad7b11 WEB: Fix screenshots in development
89cf4801e0 WEB: Fix menu links for localized pages
cae79c85e3 L10N: Add new smarty modifier function to add lang url path
a656fe3c71 L10N: Update templates to use new lang modifier
6d0899847b WEB: Cache based on locale
9b79a7590e L10N: Add backward compatibility support for users with lang params or cookies
12965cf658 WEB: Fix template syntax errors
35039fedb3 WEB: Update news and feed templates to use canonical language URLs
2a7620aff8 DATA: Rename faq L10N files
29f694654a WEB: Fix images in localized pages
8b04f8d073 WEB: Fix sponsors pages in localized pages
858b40f31d WEB: Update links in news articles to localized links
13e183e968 WEB: Add lang attribute to the pages
bcf45949d0 JANITORIAL: Code lint
Commit: 651488b8c853138659deca1960dee0d4d9684109
https://github.com/scummvm/scummvm-web/commit/651488b8c853138659deca1960dee0d4d9684109
Author: Mataniko (mataniko at gmail.com)
Date: 2020-09-29T16:08:34-04:00
Commit Message:
DATA: Move L10N files for simple URLs
Changed paths:
A data/localization/de/news.json
A data/localization/de/strings.json
A data/localization/el/news.json
A data/localization/el/strings.json
A data/localization/en/news.json
A data/localization/en/strings.json
A data/localization/es/news.json
A data/localization/es/strings.json
A data/localization/fr/news.json
A data/localization/fr/strings.json
A data/localization/he/strings.json
A data/localization/it/news.json
A data/localization/it/strings.json
A data/localization/pl/strings.json
A data/localization/pt-BR/news.json
A data/localization/pt-BR/strings.json
A data/localization/pt-PT/strings.json
A data/localization/ru/news.json
A data/localization/ru/strings.json
A data/news/de/.gitignore
A data/news/de/20020308.png
A data/news/de/20070401_1.png
A data/news/de/20070401_2.png
A data/news/de/20100401_2.jpg
A data/news/de/20120401_3.png
A data/news/de/20120401_4.png
A data/news/de/20140401_1.png
A data/news/de/20140401_2.png
A data/news/de/20140401_3.png
A data/news/de/20140401_4.png
A data/news/de/20140401_5.png
A data/news/de/20140401_6.png
A data/news/de/20140401_7.png
A data/news/de/20140401_8.png
A data/news/el/.gitignore
A data/news/en/20011122.markdown
A data/news/en/20020113.markdown
A data/news/en/20020121.markdown
A data/news/en/20020203.markdown
A data/news/en/20020214.markdown
A data/news/en/20020220.markdown
A data/news/en/20020308.markdown
A data/news/en/20020320.markdown
A data/news/en/20020404.markdown
A data/news/en/20020406.markdown
A data/news/en/20020409.markdown
A data/news/en/20020414.markdown
A data/news/en/20020501.markdown
A data/news/en/20020511.markdown
A data/news/en/20020514.markdown
A data/news/en/20020527.markdown
A data/news/en/20020616.markdown
A data/news/en/20020625.markdown
A data/news/en/20020701.markdown
A data/news/en/20020812.markdown
A data/news/en/20020829.markdown
A data/news/en/20020915.markdown
A data/news/en/20021004.markdown
A data/news/en/20021017.markdown
A data/news/en/20021105.markdown
A data/news/en/20021108.markdown
A data/news/en/20021207.markdown
A data/news/en/20021214.markdown
A data/news/en/20021227.markdown
A data/news/en/20021230.markdown
A data/news/en/20030104.markdown
A data/news/en/20030106.markdown
A data/news/en/20030114.markdown
A data/news/en/20030128.markdown
A data/news/en/20030308.markdown
A data/news/en/20030318.markdown
A data/news/en/20030424.markdown
A data/news/en/20030512.markdown
A data/news/en/20030525.markdown
A data/news/en/20030711.markdown
A data/news/en/20030802.markdown
A data/news/en/20030803.markdown
A data/news/en/20030808.markdown
A data/news/en/20030909.markdown
A data/news/en/20031212.markdown
A data/news/en/20031225.markdown
A data/news/en/20040117.markdown
A data/news/en/20040118.markdown
A data/news/en/20040130.markdown
A data/news/en/20040219.markdown
A data/news/en/20040309.markdown
A data/news/en/20040315.markdown
A data/news/en/20040316.markdown
A data/news/en/20040318.markdown
A data/news/en/20040401.markdown
A data/news/en/20040402.markdown
A data/news/en/20040510.markdown
A data/news/en/20040727.markdown
A data/news/en/20040728.markdown
A data/news/en/20040805.markdown
A data/news/en/20040911.markdown
A data/news/en/20040930.markdown
A data/news/en/20041011.markdown
A data/news/en/20041019.markdown
A data/news/en/20041022.markdown
A data/news/en/20041028.markdown
A data/news/en/20041205.markdown
A data/news/en/20041206.markdown
A data/news/en/20041217.markdown
A data/news/en/20041223.markdown
A data/news/en/20041224.markdown
A data/news/en/20050101.markdown
A data/news/en/20050309.markdown
A data/news/en/20050313.markdown
A data/news/en/20050328.markdown
A data/news/en/20050330.markdown
A data/news/en/20050401.markdown
A data/news/en/20050511.markdown
A data/news/en/20050804.markdown
A data/news/en/20050830.markdown
A data/news/en/20050909.markdown
A data/news/en/20051011.markdown
A data/news/en/20051030.markdown
A data/news/en/20051101.markdown
A data/news/en/20051109.markdown
A data/news/en/20051113.markdown
A data/news/en/20051114.markdown
A data/news/en/20051202.markdown
A data/news/en/20051205.markdown
A data/news/en/20060109.markdown
A data/news/en/20060114.markdown
A data/news/en/20060131.markdown
A data/news/en/20060208.markdown
A data/news/en/20060212.markdown
A data/news/en/20060314.markdown
A data/news/en/20060319.markdown
A data/news/en/20060409.markdown
A data/news/en/20060425.markdown
A data/news/en/20060513.markdown
A data/news/en/20060524.markdown
A data/news/en/20060527.markdown
A data/news/en/20060625.markdown
A data/news/en/20060704.markdown
A data/news/en/20060830.markdown
A data/news/en/20061029.markdown
A data/news/en/20061114.markdown
A data/news/en/20061117.markdown
A data/news/en/20061215.markdown
A data/news/en/20061218.markdown
A data/news/en/20061219.markdown
A data/news/en/20070103.markdown
A data/news/en/20070105.markdown
A data/news/en/20070130.markdown
A data/news/en/20070210.markdown
A data/news/en/20070216.markdown
A data/news/en/20070307.markdown
A data/news/en/20070315.markdown
A data/news/en/20070401.markdown
A data/news/en/20070412.markdown
A data/news/en/20070422.markdown
A data/news/en/20070519.markdown
A data/news/en/20070520.markdown
A data/news/en/20070606.markdown
A data/news/en/20070620.markdown
A data/news/en/20070703.markdown
A data/news/en/20070722.markdown
A data/news/en/20070731.markdown
A data/news/en/20070805.markdown
A data/news/en/20070916.markdown
A data/news/en/20071012.markdown
A data/news/en/20071127.markdown
A data/news/en/20071130.markdown
A data/news/en/20071202.markdown
A data/news/en/20071206.markdown
A data/news/en/20071228.markdown
A data/news/en/20080115.markdown
A data/news/en/20080229.markdown
A data/news/en/20080302.markdown
A data/news/en/20080321.markdown
A data/news/en/20080331.markdown
A data/news/en/20080401.markdown
A data/news/en/20080511.markdown
A data/news/en/20080522.markdown
A data/news/en/20080526.markdown
A data/news/en/20080622.markdown
A data/news/en/20080703.markdown
A data/news/en/20080721.markdown
A data/news/en/20080831.markdown
A data/news/en/20080906.markdown
A data/news/en/20080914.markdown
A data/news/en/20081201.markdown
A data/news/en/20081214.markdown
A data/news/en/20081216.markdown
A data/news/en/20090104.markdown
A data/news/en/20090114.markdown
A data/news/en/20090117.markdown
A data/news/en/20090122.markdown
A data/news/en/20090215.markdown
A data/news/en/20090228.markdown
A data/news/en/20090307.markdown
A data/news/en/20090318.markdown
A data/news/en/20090421.markdown
A data/news/en/20090423.markdown
A data/news/en/20090427.markdown
A data/news/en/20090514.markdown
A data/news/en/20090517.markdown
A data/news/en/20090523.markdown
A data/news/en/20090607.markdown
A data/news/en/20090616.markdown
A data/news/en/20090623.markdown
A data/news/en/20090630.markdown
A data/news/en/20090702.markdown
A data/news/en/20090709.markdown
A data/news/en/20090710a.markdown
A data/news/en/20090710b.markdown
A data/news/en/20090724.markdown
A data/news/en/20090802.markdown
A data/news/en/20090821.markdown
A data/news/en/20090831.markdown
A data/news/en/20090920.markdown
A data/news/en/20091030.markdown
A data/news/en/20091115.markdown
A data/news/en/20091221.markdown
A data/news/en/20091222.markdown
A data/news/en/20100109.markdown
A data/news/en/20100222.markdown
A data/news/en/20100318.markdown
A data/news/en/20100401.markdown
A data/news/en/20100404.markdown
A data/news/en/20100428.markdown
A data/news/en/20100502.markdown
A data/news/en/20100725.markdown
A data/news/en/20100828.markdown
A data/news/en/20100912.markdown
A data/news/en/20101015.markdown
A data/news/en/20101219.markdown
A data/news/en/20110123.markdown
A data/news/en/20110203.markdown
A data/news/en/20110212.markdown
A data/news/en/20110318.markdown
A data/news/en/20110328.markdown
A data/news/en/20110401.markdown
A data/news/en/20110416.markdown
A data/news/en/20110422.markdown
A data/news/en/20110528.markdown
A data/news/en/20110602.markdown
A data/news/en/20110712.markdown
A data/news/en/20110804.markdown
A data/news/en/20111003.markdown
A data/news/en/20111106.markdown
A data/news/en/20111111.markdown
A data/news/en/20111121.markdown
A data/news/en/20111126.markdown
A data/news/en/20111210.markdown
A data/news/en/20111219.markdown
A data/news/en/20120127.markdown
A data/news/en/20120316.markdown
A data/news/en/20120328.markdown
A data/news/en/20120401.markdown
A data/news/en/20120401b.markdown
A data/news/en/20120424.markdown
A data/news/en/20120502.markdown
A data/news/en/20120609.markdown
A data/news/en/20120616.markdown
A data/news/en/20120629.markdown
A data/news/en/20120727.markdown
A data/news/en/20120809.markdown
A data/news/en/20120916.markdown
A data/news/en/20121002.markdown
A data/news/en/20121017.markdown
A data/news/en/20121021.markdown
A data/news/en/20121025.markdown
A data/news/en/20121130.markdown
A data/news/en/20121222.markdown
A data/news/en/20130102.markdown
A data/news/en/20130328.markdown
A data/news/en/20130412.markdown
A data/news/en/20130420.markdown
A data/news/en/20130421.markdown
A data/news/en/20130531a.markdown
A data/news/en/20130531b.markdown
A data/news/en/20131011.markdown
A data/news/en/20131105.markdown
A data/news/en/20131202.markdown
A data/news/en/20131227.markdown
A data/news/en/20140112.markdown
A data/news/en/20140118.markdown
A data/news/en/20140225.markdown
A data/news/en/20140305.markdown
A data/news/en/20140401.markdown
A data/news/en/20140401b.markdown
A data/news/en/20140423.markdown
A data/news/en/20140519.markdown
A data/news/en/20140607.markdown
A data/news/en/20140616.markdown
A data/news/en/20140721.markdown
A data/news/en/20140810.markdown
A data/news/en/20140918.markdown
A data/news/en/20150111.markdown
A data/news/en/20150330.markdown
A data/news/en/20150913.markdown
A data/news/en/20151111.markdown
A data/news/en/20151122.markdown
A data/news/en/20151206.markdown
A data/news/en/20160119.markdown
A data/news/en/20160123.markdown
A data/news/en/20160201.markdown
A data/news/en/20160301.markdown
A data/news/en/20160304.markdown
A data/news/en/20160327.markdown
A data/news/en/20160401.markdown
A data/news/en/20160425.markdown
A data/news/en/20160502.markdown
A data/news/en/20160525.markdown
A data/news/en/20160606.markdown
A data/news/en/20160816.markdown
A data/news/en/20160913.markdown
A data/news/en/20160915.markdown
A data/news/en/20161017.markdown
A data/news/en/20161127.markdown
A data/news/en/20161201.markdown
A data/news/en/20170306.markdown
A data/news/en/20170401.markdown
A data/news/en/20170401a.markdown
A data/news/en/20170428.markdown
A data/news/en/20170505.markdown
A data/news/en/20170617.markdown
A data/news/en/20170702.markdown
A data/news/en/20170731.markdown
A data/news/en/20170801.markdown
A data/news/en/20171010.markdown
A data/news/en/20171122.markdown
A data/news/en/20171217.markdown
A data/news/en/20180214.markdown
A data/news/en/20180331.markdown
A data/news/en/20180423.markdown
A data/news/en/20180501.markdown
A data/news/en/20180612.markdown
A data/news/en/20180629.markdown
A data/news/en/20180701.markdown
A data/news/en/20181023.markdown
A data/news/en/20181024.markdown
A data/news/en/20181118.markdown
A data/news/en/20181210.markdown
A data/news/en/20190306.markdown
A data/news/en/20190413.markdown
A data/news/en/20190513.markdown
A data/news/en/20190603.markdown
A data/news/en/20190608.markdown
A data/news/en/20190616.markdown
A data/news/en/20190630.markdown
A data/news/en/20190728.markdown
A data/news/en/20190904.markdown
A data/news/en/20190912.markdown
A data/news/en/20190913.markdown
A data/news/en/20190917.markdown
A data/news/en/20190919.markdown
A data/news/en/20191013.markdown
A data/news/en/20191217.markdown
A data/news/en/20200131.markdown
A data/news/en/20200222.markdown
A data/news/en/20200331.markdown
A data/news/en/20200430.markdown
A data/news/en/20200504.markdown
A data/news/en/20200514.markdown
A data/news/en/20200521.markdown
A data/news/en/20200524.markdown
A data/news/en/20200622.markdown
A data/news/en/20200817.markdown
A data/news/en/20200820.markdown
A data/news/en/20200823.markdown
A data/news/en/20200825.markdown
A data/news/en/20200830.markdown
A data/news/en/20200906.markdown
A data/news/en/20200927.markdown
A data/news/es/.gitignore
A data/news/fr/.gitignore
A data/news/it/.gitignore
A data/news/pt-BR/.gitignore
A data/news/ru/.gitignore
R data/localization/de_DE/news.json
R data/localization/de_DE/strings.json
R data/localization/el_GR/news.json
R data/localization/el_GR/strings.json
R data/localization/en_US/news.json
R data/localization/en_US/strings.json
R data/localization/es_ES/news.json
R data/localization/es_ES/strings.json
R data/localization/fr_FR/news.json
R data/localization/fr_FR/strings.json
R data/localization/he_IL/strings.json
R data/localization/it_IT/news.json
R data/localization/it_IT/strings.json
R data/localization/pl_PL/strings.json
R data/localization/pt_BR/news.json
R data/localization/pt_BR/strings.json
R data/localization/pt_PT/strings.json
R data/localization/ru_RU/news.json
R data/localization/ru_RU/strings.json
R data/news/de_DE/.gitignore
R data/news/de_DE/20020308.png
R data/news/de_DE/20070401_1.png
R data/news/de_DE/20070401_2.png
R data/news/de_DE/20100401_2.jpg
R data/news/de_DE/20120401_3.png
R data/news/de_DE/20120401_4.png
R data/news/de_DE/20140401_1.png
R data/news/de_DE/20140401_2.png
R data/news/de_DE/20140401_3.png
R data/news/de_DE/20140401_4.png
R data/news/de_DE/20140401_5.png
R data/news/de_DE/20140401_6.png
R data/news/de_DE/20140401_7.png
R data/news/de_DE/20140401_8.png
R data/news/el_GR/.gitignore
R data/news/en_US/20011122.markdown
R data/news/en_US/20020113.markdown
R data/news/en_US/20020121.markdown
R data/news/en_US/20020203.markdown
R data/news/en_US/20020214.markdown
R data/news/en_US/20020220.markdown
R data/news/en_US/20020308.markdown
R data/news/en_US/20020320.markdown
R data/news/en_US/20020404.markdown
R data/news/en_US/20020406.markdown
R data/news/en_US/20020409.markdown
R data/news/en_US/20020414.markdown
R data/news/en_US/20020501.markdown
R data/news/en_US/20020511.markdown
R data/news/en_US/20020514.markdown
R data/news/en_US/20020527.markdown
R data/news/en_US/20020616.markdown
R data/news/en_US/20020625.markdown
R data/news/en_US/20020701.markdown
R data/news/en_US/20020812.markdown
R data/news/en_US/20020829.markdown
R data/news/en_US/20020915.markdown
R data/news/en_US/20021004.markdown
R data/news/en_US/20021017.markdown
R data/news/en_US/20021105.markdown
R data/news/en_US/20021108.markdown
R data/news/en_US/20021207.markdown
R data/news/en_US/20021214.markdown
R data/news/en_US/20021227.markdown
R data/news/en_US/20021230.markdown
R data/news/en_US/20030104.markdown
R data/news/en_US/20030106.markdown
R data/news/en_US/20030114.markdown
R data/news/en_US/20030128.markdown
R data/news/en_US/20030308.markdown
R data/news/en_US/20030318.markdown
R data/news/en_US/20030424.markdown
R data/news/en_US/20030512.markdown
R data/news/en_US/20030525.markdown
R data/news/en_US/20030711.markdown
R data/news/en_US/20030802.markdown
R data/news/en_US/20030803.markdown
R data/news/en_US/20030808.markdown
R data/news/en_US/20030909.markdown
R data/news/en_US/20031212.markdown
R data/news/en_US/20031225.markdown
R data/news/en_US/20040117.markdown
R data/news/en_US/20040118.markdown
R data/news/en_US/20040130.markdown
R data/news/en_US/20040219.markdown
R data/news/en_US/20040309.markdown
R data/news/en_US/20040315.markdown
R data/news/en_US/20040316.markdown
R data/news/en_US/20040318.markdown
R data/news/en_US/20040401.markdown
R data/news/en_US/20040402.markdown
R data/news/en_US/20040510.markdown
R data/news/en_US/20040727.markdown
R data/news/en_US/20040728.markdown
R data/news/en_US/20040805.markdown
R data/news/en_US/20040911.markdown
R data/news/en_US/20040930.markdown
R data/news/en_US/20041011.markdown
R data/news/en_US/20041019.markdown
R data/news/en_US/20041022.markdown
R data/news/en_US/20041028.markdown
R data/news/en_US/20041205.markdown
R data/news/en_US/20041206.markdown
R data/news/en_US/20041217.markdown
R data/news/en_US/20041223.markdown
R data/news/en_US/20041224.markdown
R data/news/en_US/20050101.markdown
R data/news/en_US/20050309.markdown
R data/news/en_US/20050313.markdown
R data/news/en_US/20050328.markdown
R data/news/en_US/20050330.markdown
R data/news/en_US/20050401.markdown
R data/news/en_US/20050511.markdown
R data/news/en_US/20050804.markdown
R data/news/en_US/20050830.markdown
R data/news/en_US/20050909.markdown
R data/news/en_US/20051011.markdown
R data/news/en_US/20051030.markdown
R data/news/en_US/20051101.markdown
R data/news/en_US/20051109.markdown
R data/news/en_US/20051113.markdown
R data/news/en_US/20051114.markdown
R data/news/en_US/20051202.markdown
R data/news/en_US/20051205.markdown
R data/news/en_US/20060109.markdown
R data/news/en_US/20060114.markdown
R data/news/en_US/20060131.markdown
R data/news/en_US/20060208.markdown
R data/news/en_US/20060212.markdown
R data/news/en_US/20060314.markdown
R data/news/en_US/20060319.markdown
R data/news/en_US/20060409.markdown
R data/news/en_US/20060425.markdown
R data/news/en_US/20060513.markdown
R data/news/en_US/20060524.markdown
R data/news/en_US/20060527.markdown
R data/news/en_US/20060625.markdown
R data/news/en_US/20060704.markdown
R data/news/en_US/20060830.markdown
R data/news/en_US/20061029.markdown
R data/news/en_US/20061114.markdown
R data/news/en_US/20061117.markdown
R data/news/en_US/20061215.markdown
R data/news/en_US/20061218.markdown
R data/news/en_US/20061219.markdown
R data/news/en_US/20070103.markdown
R data/news/en_US/20070105.markdown
R data/news/en_US/20070130.markdown
R data/news/en_US/20070210.markdown
R data/news/en_US/20070216.markdown
R data/news/en_US/20070307.markdown
R data/news/en_US/20070315.markdown
R data/news/en_US/20070401.markdown
R data/news/en_US/20070412.markdown
R data/news/en_US/20070422.markdown
R data/news/en_US/20070519.markdown
R data/news/en_US/20070520.markdown
R data/news/en_US/20070606.markdown
R data/news/en_US/20070620.markdown
R data/news/en_US/20070703.markdown
R data/news/en_US/20070722.markdown
R data/news/en_US/20070731.markdown
R data/news/en_US/20070805.markdown
R data/news/en_US/20070916.markdown
R data/news/en_US/20071012.markdown
R data/news/en_US/20071127.markdown
R data/news/en_US/20071130.markdown
R data/news/en_US/20071202.markdown
R data/news/en_US/20071206.markdown
R data/news/en_US/20071228.markdown
R data/news/en_US/20080115.markdown
R data/news/en_US/20080229.markdown
R data/news/en_US/20080302.markdown
R data/news/en_US/20080321.markdown
R data/news/en_US/20080331.markdown
R data/news/en_US/20080401.markdown
R data/news/en_US/20080511.markdown
R data/news/en_US/20080522.markdown
R data/news/en_US/20080526.markdown
R data/news/en_US/20080622.markdown
R data/news/en_US/20080703.markdown
R data/news/en_US/20080721.markdown
R data/news/en_US/20080831.markdown
R data/news/en_US/20080906.markdown
R data/news/en_US/20080914.markdown
R data/news/en_US/20081201.markdown
R data/news/en_US/20081214.markdown
R data/news/en_US/20081216.markdown
R data/news/en_US/20090104.markdown
R data/news/en_US/20090114.markdown
R data/news/en_US/20090117.markdown
R data/news/en_US/20090122.markdown
R data/news/en_US/20090215.markdown
R data/news/en_US/20090228.markdown
R data/news/en_US/20090307.markdown
R data/news/en_US/20090318.markdown
R data/news/en_US/20090421.markdown
R data/news/en_US/20090423.markdown
R data/news/en_US/20090427.markdown
R data/news/en_US/20090514.markdown
R data/news/en_US/20090517.markdown
R data/news/en_US/20090523.markdown
R data/news/en_US/20090607.markdown
R data/news/en_US/20090616.markdown
R data/news/en_US/20090623.markdown
R data/news/en_US/20090630.markdown
R data/news/en_US/20090702.markdown
R data/news/en_US/20090709.markdown
R data/news/en_US/20090710a.markdown
R data/news/en_US/20090710b.markdown
R data/news/en_US/20090724.markdown
R data/news/en_US/20090802.markdown
R data/news/en_US/20090821.markdown
R data/news/en_US/20090831.markdown
R data/news/en_US/20090920.markdown
R data/news/en_US/20091030.markdown
R data/news/en_US/20091115.markdown
R data/news/en_US/20091221.markdown
R data/news/en_US/20091222.markdown
R data/news/en_US/20100109.markdown
R data/news/en_US/20100222.markdown
R data/news/en_US/20100318.markdown
R data/news/en_US/20100401.markdown
R data/news/en_US/20100404.markdown
R data/news/en_US/20100428.markdown
R data/news/en_US/20100502.markdown
R data/news/en_US/20100725.markdown
R data/news/en_US/20100828.markdown
R data/news/en_US/20100912.markdown
R data/news/en_US/20101015.markdown
R data/news/en_US/20101219.markdown
R data/news/en_US/20110123.markdown
R data/news/en_US/20110203.markdown
R data/news/en_US/20110212.markdown
R data/news/en_US/20110318.markdown
R data/news/en_US/20110328.markdown
R data/news/en_US/20110401.markdown
R data/news/en_US/20110416.markdown
R data/news/en_US/20110422.markdown
R data/news/en_US/20110528.markdown
R data/news/en_US/20110602.markdown
R data/news/en_US/20110712.markdown
R data/news/en_US/20110804.markdown
R data/news/en_US/20111003.markdown
R data/news/en_US/20111106.markdown
R data/news/en_US/20111111.markdown
R data/news/en_US/20111121.markdown
R data/news/en_US/20111126.markdown
R data/news/en_US/20111210.markdown
R data/news/en_US/20111219.markdown
R data/news/en_US/20120127.markdown
R data/news/en_US/20120316.markdown
R data/news/en_US/20120328.markdown
R data/news/en_US/20120401.markdown
R data/news/en_US/20120401b.markdown
R data/news/en_US/20120424.markdown
R data/news/en_US/20120502.markdown
R data/news/en_US/20120609.markdown
R data/news/en_US/20120616.markdown
R data/news/en_US/20120629.markdown
R data/news/en_US/20120727.markdown
R data/news/en_US/20120809.markdown
R data/news/en_US/20120916.markdown
R data/news/en_US/20121002.markdown
R data/news/en_US/20121017.markdown
R data/news/en_US/20121021.markdown
R data/news/en_US/20121025.markdown
R data/news/en_US/20121130.markdown
R data/news/en_US/20121222.markdown
R data/news/en_US/20130102.markdown
R data/news/en_US/20130328.markdown
R data/news/en_US/20130412.markdown
R data/news/en_US/20130420.markdown
R data/news/en_US/20130421.markdown
R data/news/en_US/20130531a.markdown
R data/news/en_US/20130531b.markdown
R data/news/en_US/20131011.markdown
R data/news/en_US/20131105.markdown
R data/news/en_US/20131202.markdown
R data/news/en_US/20131227.markdown
R data/news/en_US/20140112.markdown
R data/news/en_US/20140118.markdown
R data/news/en_US/20140225.markdown
R data/news/en_US/20140305.markdown
R data/news/en_US/20140401.markdown
R data/news/en_US/20140401b.markdown
R data/news/en_US/20140423.markdown
R data/news/en_US/20140519.markdown
R data/news/en_US/20140607.markdown
R data/news/en_US/20140616.markdown
R data/news/en_US/20140721.markdown
R data/news/en_US/20140810.markdown
R data/news/en_US/20140918.markdown
R data/news/en_US/20150111.markdown
R data/news/en_US/20150330.markdown
R data/news/en_US/20150913.markdown
R data/news/en_US/20151111.markdown
R data/news/en_US/20151122.markdown
R data/news/en_US/20151206.markdown
R data/news/en_US/20160119.markdown
R data/news/en_US/20160123.markdown
R data/news/en_US/20160201.markdown
R data/news/en_US/20160301.markdown
R data/news/en_US/20160304.markdown
R data/news/en_US/20160327.markdown
R data/news/en_US/20160401.markdown
R data/news/en_US/20160425.markdown
R data/news/en_US/20160502.markdown
R data/news/en_US/20160525.markdown
R data/news/en_US/20160606.markdown
R data/news/en_US/20160816.markdown
R data/news/en_US/20160913.markdown
R data/news/en_US/20160915.markdown
R data/news/en_US/20161017.markdown
R data/news/en_US/20161127.markdown
R data/news/en_US/20161201.markdown
R data/news/en_US/20170306.markdown
R data/news/en_US/20170401.markdown
R data/news/en_US/20170401a.markdown
R data/news/en_US/20170428.markdown
R data/news/en_US/20170505.markdown
R data/news/en_US/20170617.markdown
R data/news/en_US/20170702.markdown
R data/news/en_US/20170731.markdown
R data/news/en_US/20170801.markdown
R data/news/en_US/20171010.markdown
R data/news/en_US/20171122.markdown
R data/news/en_US/20171217.markdown
R data/news/en_US/20180214.markdown
R data/news/en_US/20180331.markdown
R data/news/en_US/20180423.markdown
R data/news/en_US/20180501.markdown
R data/news/en_US/20180612.markdown
R data/news/en_US/20180629.markdown
R data/news/en_US/20180701.markdown
R data/news/en_US/20181023.markdown
R data/news/en_US/20181024.markdown
R data/news/en_US/20181118.markdown
R data/news/en_US/20181210.markdown
R data/news/en_US/20190306.markdown
R data/news/en_US/20190413.markdown
R data/news/en_US/20190513.markdown
R data/news/en_US/20190603.markdown
R data/news/en_US/20190608.markdown
R data/news/en_US/20190616.markdown
R data/news/en_US/20190630.markdown
R data/news/en_US/20190728.markdown
R data/news/en_US/20190904.markdown
R data/news/en_US/20190912.markdown
R data/news/en_US/20190913.markdown
R data/news/en_US/20190917.markdown
R data/news/en_US/20190919.markdown
R data/news/en_US/20191013.markdown
R data/news/en_US/20191217.markdown
R data/news/en_US/20200131.markdown
R data/news/en_US/20200222.markdown
R data/news/en_US/20200331.markdown
R data/news/en_US/20200430.markdown
R data/news/en_US/20200504.markdown
R data/news/en_US/20200514.markdown
R data/news/en_US/20200521.markdown
R data/news/en_US/20200524.markdown
R data/news/en_US/20200622.markdown
R data/news/en_US/20200817.markdown
R data/news/en_US/20200820.markdown
R data/news/en_US/20200823.markdown
R data/news/en_US/20200825.markdown
R data/news/en_US/20200830.markdown
R data/news/en_US/20200906.markdown
R data/news/en_US/20200927.markdown
R data/news/es_ES/.gitignore
R data/news/fr_FR/.gitignore
R data/news/it_IT/.gitignore
R data/news/pt_BR/.gitignore
R data/news/ru_RU/.gitignore
diff --git a/data/localization/de_DE/news.json b/data/localization/de/news.json
similarity index 100%
rename from data/localization/de_DE/news.json
rename to data/localization/de/news.json
diff --git a/data/localization/de_DE/strings.json b/data/localization/de/strings.json
similarity index 100%
rename from data/localization/de_DE/strings.json
rename to data/localization/de/strings.json
diff --git a/data/localization/el_GR/news.json b/data/localization/el/news.json
similarity index 100%
rename from data/localization/el_GR/news.json
rename to data/localization/el/news.json
diff --git a/data/localization/el_GR/strings.json b/data/localization/el/strings.json
similarity index 100%
rename from data/localization/el_GR/strings.json
rename to data/localization/el/strings.json
diff --git a/data/localization/en_US/news.json b/data/localization/en/news.json
similarity index 100%
rename from data/localization/en_US/news.json
rename to data/localization/en/news.json
diff --git a/data/localization/en_US/strings.json b/data/localization/en/strings.json
similarity index 100%
rename from data/localization/en_US/strings.json
rename to data/localization/en/strings.json
diff --git a/data/localization/es_ES/news.json b/data/localization/es/news.json
similarity index 100%
rename from data/localization/es_ES/news.json
rename to data/localization/es/news.json
diff --git a/data/localization/es_ES/strings.json b/data/localization/es/strings.json
similarity index 100%
rename from data/localization/es_ES/strings.json
rename to data/localization/es/strings.json
diff --git a/data/localization/fr_FR/news.json b/data/localization/fr/news.json
similarity index 100%
rename from data/localization/fr_FR/news.json
rename to data/localization/fr/news.json
diff --git a/data/localization/fr_FR/strings.json b/data/localization/fr/strings.json
similarity index 100%
rename from data/localization/fr_FR/strings.json
rename to data/localization/fr/strings.json
diff --git a/data/localization/he_IL/strings.json b/data/localization/he/strings.json
similarity index 100%
rename from data/localization/he_IL/strings.json
rename to data/localization/he/strings.json
diff --git a/data/localization/it_IT/news.json b/data/localization/it/news.json
similarity index 100%
rename from data/localization/it_IT/news.json
rename to data/localization/it/news.json
diff --git a/data/localization/it_IT/strings.json b/data/localization/it/strings.json
similarity index 100%
rename from data/localization/it_IT/strings.json
rename to data/localization/it/strings.json
diff --git a/data/localization/pl_PL/strings.json b/data/localization/pl/strings.json
similarity index 100%
rename from data/localization/pl_PL/strings.json
rename to data/localization/pl/strings.json
diff --git a/data/localization/pt_BR/news.json b/data/localization/pt-BR/news.json
similarity index 100%
rename from data/localization/pt_BR/news.json
rename to data/localization/pt-BR/news.json
diff --git a/data/localization/pt_BR/strings.json b/data/localization/pt-BR/strings.json
similarity index 100%
rename from data/localization/pt_BR/strings.json
rename to data/localization/pt-BR/strings.json
diff --git a/data/localization/pt_PT/strings.json b/data/localization/pt-PT/strings.json
similarity index 100%
rename from data/localization/pt_PT/strings.json
rename to data/localization/pt-PT/strings.json
diff --git a/data/localization/ru_RU/news.json b/data/localization/ru/news.json
similarity index 100%
rename from data/localization/ru_RU/news.json
rename to data/localization/ru/news.json
diff --git a/data/localization/ru_RU/strings.json b/data/localization/ru/strings.json
similarity index 100%
rename from data/localization/ru_RU/strings.json
rename to data/localization/ru/strings.json
diff --git a/data/news/de_DE/.gitignore b/data/news/de/.gitignore
similarity index 100%
rename from data/news/de_DE/.gitignore
rename to data/news/de/.gitignore
diff --git a/data/news/de_DE/20020308.png b/data/news/de/20020308.png
similarity index 100%
rename from data/news/de_DE/20020308.png
rename to data/news/de/20020308.png
diff --git a/data/news/de_DE/20070401_1.png b/data/news/de/20070401_1.png
similarity index 100%
rename from data/news/de_DE/20070401_1.png
rename to data/news/de/20070401_1.png
diff --git a/data/news/de_DE/20070401_2.png b/data/news/de/20070401_2.png
similarity index 100%
rename from data/news/de_DE/20070401_2.png
rename to data/news/de/20070401_2.png
diff --git a/data/news/de_DE/20100401_2.jpg b/data/news/de/20100401_2.jpg
similarity index 100%
rename from data/news/de_DE/20100401_2.jpg
rename to data/news/de/20100401_2.jpg
diff --git a/data/news/de_DE/20120401_3.png b/data/news/de/20120401_3.png
similarity index 100%
rename from data/news/de_DE/20120401_3.png
rename to data/news/de/20120401_3.png
diff --git a/data/news/de_DE/20120401_4.png b/data/news/de/20120401_4.png
similarity index 100%
rename from data/news/de_DE/20120401_4.png
rename to data/news/de/20120401_4.png
diff --git a/data/news/de_DE/20140401_1.png b/data/news/de/20140401_1.png
similarity index 100%
rename from data/news/de_DE/20140401_1.png
rename to data/news/de/20140401_1.png
diff --git a/data/news/de_DE/20140401_2.png b/data/news/de/20140401_2.png
similarity index 100%
rename from data/news/de_DE/20140401_2.png
rename to data/news/de/20140401_2.png
diff --git a/data/news/de_DE/20140401_3.png b/data/news/de/20140401_3.png
similarity index 100%
rename from data/news/de_DE/20140401_3.png
rename to data/news/de/20140401_3.png
diff --git a/data/news/de_DE/20140401_4.png b/data/news/de/20140401_4.png
similarity index 100%
rename from data/news/de_DE/20140401_4.png
rename to data/news/de/20140401_4.png
diff --git a/data/news/de_DE/20140401_5.png b/data/news/de/20140401_5.png
similarity index 100%
rename from data/news/de_DE/20140401_5.png
rename to data/news/de/20140401_5.png
diff --git a/data/news/de_DE/20140401_6.png b/data/news/de/20140401_6.png
similarity index 100%
rename from data/news/de_DE/20140401_6.png
rename to data/news/de/20140401_6.png
diff --git a/data/news/de_DE/20140401_7.png b/data/news/de/20140401_7.png
similarity index 100%
rename from data/news/de_DE/20140401_7.png
rename to data/news/de/20140401_7.png
diff --git a/data/news/de_DE/20140401_8.png b/data/news/de/20140401_8.png
similarity index 100%
rename from data/news/de_DE/20140401_8.png
rename to data/news/de/20140401_8.png
diff --git a/data/news/el_GR/.gitignore b/data/news/el/.gitignore
similarity index 100%
rename from data/news/el_GR/.gitignore
rename to data/news/el/.gitignore
diff --git a/data/news/en_US/20011122.markdown b/data/news/en/20011122.markdown
similarity index 100%
rename from data/news/en_US/20011122.markdown
rename to data/news/en/20011122.markdown
diff --git a/data/news/en_US/20020113.markdown b/data/news/en/20020113.markdown
similarity index 100%
rename from data/news/en_US/20020113.markdown
rename to data/news/en/20020113.markdown
diff --git a/data/news/en_US/20020121.markdown b/data/news/en/20020121.markdown
similarity index 100%
rename from data/news/en_US/20020121.markdown
rename to data/news/en/20020121.markdown
diff --git a/data/news/en_US/20020203.markdown b/data/news/en/20020203.markdown
similarity index 100%
rename from data/news/en_US/20020203.markdown
rename to data/news/en/20020203.markdown
diff --git a/data/news/en_US/20020214.markdown b/data/news/en/20020214.markdown
similarity index 100%
rename from data/news/en_US/20020214.markdown
rename to data/news/en/20020214.markdown
diff --git a/data/news/en_US/20020220.markdown b/data/news/en/20020220.markdown
similarity index 100%
rename from data/news/en_US/20020220.markdown
rename to data/news/en/20020220.markdown
diff --git a/data/news/en_US/20020308.markdown b/data/news/en/20020308.markdown
similarity index 100%
rename from data/news/en_US/20020308.markdown
rename to data/news/en/20020308.markdown
diff --git a/data/news/en_US/20020320.markdown b/data/news/en/20020320.markdown
similarity index 100%
rename from data/news/en_US/20020320.markdown
rename to data/news/en/20020320.markdown
diff --git a/data/news/en_US/20020404.markdown b/data/news/en/20020404.markdown
similarity index 100%
rename from data/news/en_US/20020404.markdown
rename to data/news/en/20020404.markdown
diff --git a/data/news/en_US/20020406.markdown b/data/news/en/20020406.markdown
similarity index 100%
rename from data/news/en_US/20020406.markdown
rename to data/news/en/20020406.markdown
diff --git a/data/news/en_US/20020409.markdown b/data/news/en/20020409.markdown
similarity index 100%
rename from data/news/en_US/20020409.markdown
rename to data/news/en/20020409.markdown
diff --git a/data/news/en_US/20020414.markdown b/data/news/en/20020414.markdown
similarity index 100%
rename from data/news/en_US/20020414.markdown
rename to data/news/en/20020414.markdown
diff --git a/data/news/en_US/20020501.markdown b/data/news/en/20020501.markdown
similarity index 100%
rename from data/news/en_US/20020501.markdown
rename to data/news/en/20020501.markdown
diff --git a/data/news/en_US/20020511.markdown b/data/news/en/20020511.markdown
similarity index 100%
rename from data/news/en_US/20020511.markdown
rename to data/news/en/20020511.markdown
diff --git a/data/news/en_US/20020514.markdown b/data/news/en/20020514.markdown
similarity index 100%
rename from data/news/en_US/20020514.markdown
rename to data/news/en/20020514.markdown
diff --git a/data/news/en_US/20020527.markdown b/data/news/en/20020527.markdown
similarity index 100%
rename from data/news/en_US/20020527.markdown
rename to data/news/en/20020527.markdown
diff --git a/data/news/en_US/20020616.markdown b/data/news/en/20020616.markdown
similarity index 100%
rename from data/news/en_US/20020616.markdown
rename to data/news/en/20020616.markdown
diff --git a/data/news/en_US/20020625.markdown b/data/news/en/20020625.markdown
similarity index 100%
rename from data/news/en_US/20020625.markdown
rename to data/news/en/20020625.markdown
diff --git a/data/news/en_US/20020701.markdown b/data/news/en/20020701.markdown
similarity index 100%
rename from data/news/en_US/20020701.markdown
rename to data/news/en/20020701.markdown
diff --git a/data/news/en_US/20020812.markdown b/data/news/en/20020812.markdown
similarity index 100%
rename from data/news/en_US/20020812.markdown
rename to data/news/en/20020812.markdown
diff --git a/data/news/en_US/20020829.markdown b/data/news/en/20020829.markdown
similarity index 100%
rename from data/news/en_US/20020829.markdown
rename to data/news/en/20020829.markdown
diff --git a/data/news/en_US/20020915.markdown b/data/news/en/20020915.markdown
similarity index 100%
rename from data/news/en_US/20020915.markdown
rename to data/news/en/20020915.markdown
diff --git a/data/news/en_US/20021004.markdown b/data/news/en/20021004.markdown
similarity index 100%
rename from data/news/en_US/20021004.markdown
rename to data/news/en/20021004.markdown
diff --git a/data/news/en_US/20021017.markdown b/data/news/en/20021017.markdown
similarity index 100%
rename from data/news/en_US/20021017.markdown
rename to data/news/en/20021017.markdown
diff --git a/data/news/en_US/20021105.markdown b/data/news/en/20021105.markdown
similarity index 100%
rename from data/news/en_US/20021105.markdown
rename to data/news/en/20021105.markdown
diff --git a/data/news/en_US/20021108.markdown b/data/news/en/20021108.markdown
similarity index 100%
rename from data/news/en_US/20021108.markdown
rename to data/news/en/20021108.markdown
diff --git a/data/news/en_US/20021207.markdown b/data/news/en/20021207.markdown
similarity index 100%
rename from data/news/en_US/20021207.markdown
rename to data/news/en/20021207.markdown
diff --git a/data/news/en_US/20021214.markdown b/data/news/en/20021214.markdown
similarity index 100%
rename from data/news/en_US/20021214.markdown
rename to data/news/en/20021214.markdown
diff --git a/data/news/en_US/20021227.markdown b/data/news/en/20021227.markdown
similarity index 100%
rename from data/news/en_US/20021227.markdown
rename to data/news/en/20021227.markdown
diff --git a/data/news/en_US/20021230.markdown b/data/news/en/20021230.markdown
similarity index 100%
rename from data/news/en_US/20021230.markdown
rename to data/news/en/20021230.markdown
diff --git a/data/news/en_US/20030104.markdown b/data/news/en/20030104.markdown
similarity index 100%
rename from data/news/en_US/20030104.markdown
rename to data/news/en/20030104.markdown
diff --git a/data/news/en_US/20030106.markdown b/data/news/en/20030106.markdown
similarity index 100%
rename from data/news/en_US/20030106.markdown
rename to data/news/en/20030106.markdown
diff --git a/data/news/en_US/20030114.markdown b/data/news/en/20030114.markdown
similarity index 100%
rename from data/news/en_US/20030114.markdown
rename to data/news/en/20030114.markdown
diff --git a/data/news/en_US/20030128.markdown b/data/news/en/20030128.markdown
similarity index 100%
rename from data/news/en_US/20030128.markdown
rename to data/news/en/20030128.markdown
diff --git a/data/news/en_US/20030308.markdown b/data/news/en/20030308.markdown
similarity index 100%
rename from data/news/en_US/20030308.markdown
rename to data/news/en/20030308.markdown
diff --git a/data/news/en_US/20030318.markdown b/data/news/en/20030318.markdown
similarity index 100%
rename from data/news/en_US/20030318.markdown
rename to data/news/en/20030318.markdown
diff --git a/data/news/en_US/20030424.markdown b/data/news/en/20030424.markdown
similarity index 100%
rename from data/news/en_US/20030424.markdown
rename to data/news/en/20030424.markdown
diff --git a/data/news/en_US/20030512.markdown b/data/news/en/20030512.markdown
similarity index 100%
rename from data/news/en_US/20030512.markdown
rename to data/news/en/20030512.markdown
diff --git a/data/news/en_US/20030525.markdown b/data/news/en/20030525.markdown
similarity index 100%
rename from data/news/en_US/20030525.markdown
rename to data/news/en/20030525.markdown
diff --git a/data/news/en_US/20030711.markdown b/data/news/en/20030711.markdown
similarity index 100%
rename from data/news/en_US/20030711.markdown
rename to data/news/en/20030711.markdown
diff --git a/data/news/en_US/20030802.markdown b/data/news/en/20030802.markdown
similarity index 100%
rename from data/news/en_US/20030802.markdown
rename to data/news/en/20030802.markdown
diff --git a/data/news/en_US/20030803.markdown b/data/news/en/20030803.markdown
similarity index 100%
rename from data/news/en_US/20030803.markdown
rename to data/news/en/20030803.markdown
diff --git a/data/news/en_US/20030808.markdown b/data/news/en/20030808.markdown
similarity index 100%
rename from data/news/en_US/20030808.markdown
rename to data/news/en/20030808.markdown
diff --git a/data/news/en_US/20030909.markdown b/data/news/en/20030909.markdown
similarity index 100%
rename from data/news/en_US/20030909.markdown
rename to data/news/en/20030909.markdown
diff --git a/data/news/en_US/20031212.markdown b/data/news/en/20031212.markdown
similarity index 100%
rename from data/news/en_US/20031212.markdown
rename to data/news/en/20031212.markdown
diff --git a/data/news/en_US/20031225.markdown b/data/news/en/20031225.markdown
similarity index 100%
rename from data/news/en_US/20031225.markdown
rename to data/news/en/20031225.markdown
diff --git a/data/news/en_US/20040117.markdown b/data/news/en/20040117.markdown
similarity index 100%
rename from data/news/en_US/20040117.markdown
rename to data/news/en/20040117.markdown
diff --git a/data/news/en_US/20040118.markdown b/data/news/en/20040118.markdown
similarity index 100%
rename from data/news/en_US/20040118.markdown
rename to data/news/en/20040118.markdown
diff --git a/data/news/en_US/20040130.markdown b/data/news/en/20040130.markdown
similarity index 100%
rename from data/news/en_US/20040130.markdown
rename to data/news/en/20040130.markdown
diff --git a/data/news/en_US/20040219.markdown b/data/news/en/20040219.markdown
similarity index 100%
rename from data/news/en_US/20040219.markdown
rename to data/news/en/20040219.markdown
diff --git a/data/news/en_US/20040309.markdown b/data/news/en/20040309.markdown
similarity index 100%
rename from data/news/en_US/20040309.markdown
rename to data/news/en/20040309.markdown
diff --git a/data/news/en_US/20040315.markdown b/data/news/en/20040315.markdown
similarity index 100%
rename from data/news/en_US/20040315.markdown
rename to data/news/en/20040315.markdown
diff --git a/data/news/en_US/20040316.markdown b/data/news/en/20040316.markdown
similarity index 100%
rename from data/news/en_US/20040316.markdown
rename to data/news/en/20040316.markdown
diff --git a/data/news/en_US/20040318.markdown b/data/news/en/20040318.markdown
similarity index 100%
rename from data/news/en_US/20040318.markdown
rename to data/news/en/20040318.markdown
diff --git a/data/news/en_US/20040401.markdown b/data/news/en/20040401.markdown
similarity index 100%
rename from data/news/en_US/20040401.markdown
rename to data/news/en/20040401.markdown
diff --git a/data/news/en_US/20040402.markdown b/data/news/en/20040402.markdown
similarity index 100%
rename from data/news/en_US/20040402.markdown
rename to data/news/en/20040402.markdown
diff --git a/data/news/en_US/20040510.markdown b/data/news/en/20040510.markdown
similarity index 100%
rename from data/news/en_US/20040510.markdown
rename to data/news/en/20040510.markdown
diff --git a/data/news/en_US/20040727.markdown b/data/news/en/20040727.markdown
similarity index 100%
rename from data/news/en_US/20040727.markdown
rename to data/news/en/20040727.markdown
diff --git a/data/news/en_US/20040728.markdown b/data/news/en/20040728.markdown
similarity index 100%
rename from data/news/en_US/20040728.markdown
rename to data/news/en/20040728.markdown
diff --git a/data/news/en_US/20040805.markdown b/data/news/en/20040805.markdown
similarity index 100%
rename from data/news/en_US/20040805.markdown
rename to data/news/en/20040805.markdown
diff --git a/data/news/en_US/20040911.markdown b/data/news/en/20040911.markdown
similarity index 100%
rename from data/news/en_US/20040911.markdown
rename to data/news/en/20040911.markdown
diff --git a/data/news/en_US/20040930.markdown b/data/news/en/20040930.markdown
similarity index 100%
rename from data/news/en_US/20040930.markdown
rename to data/news/en/20040930.markdown
diff --git a/data/news/en_US/20041011.markdown b/data/news/en/20041011.markdown
similarity index 100%
rename from data/news/en_US/20041011.markdown
rename to data/news/en/20041011.markdown
diff --git a/data/news/en_US/20041019.markdown b/data/news/en/20041019.markdown
similarity index 100%
rename from data/news/en_US/20041019.markdown
rename to data/news/en/20041019.markdown
diff --git a/data/news/en_US/20041022.markdown b/data/news/en/20041022.markdown
similarity index 100%
rename from data/news/en_US/20041022.markdown
rename to data/news/en/20041022.markdown
diff --git a/data/news/en_US/20041028.markdown b/data/news/en/20041028.markdown
similarity index 100%
rename from data/news/en_US/20041028.markdown
rename to data/news/en/20041028.markdown
diff --git a/data/news/en_US/20041205.markdown b/data/news/en/20041205.markdown
similarity index 100%
rename from data/news/en_US/20041205.markdown
rename to data/news/en/20041205.markdown
diff --git a/data/news/en_US/20041206.markdown b/data/news/en/20041206.markdown
similarity index 100%
rename from data/news/en_US/20041206.markdown
rename to data/news/en/20041206.markdown
diff --git a/data/news/en_US/20041217.markdown b/data/news/en/20041217.markdown
similarity index 100%
rename from data/news/en_US/20041217.markdown
rename to data/news/en/20041217.markdown
diff --git a/data/news/en_US/20041223.markdown b/data/news/en/20041223.markdown
similarity index 100%
rename from data/news/en_US/20041223.markdown
rename to data/news/en/20041223.markdown
diff --git a/data/news/en_US/20041224.markdown b/data/news/en/20041224.markdown
similarity index 100%
rename from data/news/en_US/20041224.markdown
rename to data/news/en/20041224.markdown
diff --git a/data/news/en_US/20050101.markdown b/data/news/en/20050101.markdown
similarity index 100%
rename from data/news/en_US/20050101.markdown
rename to data/news/en/20050101.markdown
diff --git a/data/news/en_US/20050309.markdown b/data/news/en/20050309.markdown
similarity index 100%
rename from data/news/en_US/20050309.markdown
rename to data/news/en/20050309.markdown
diff --git a/data/news/en_US/20050313.markdown b/data/news/en/20050313.markdown
similarity index 100%
rename from data/news/en_US/20050313.markdown
rename to data/news/en/20050313.markdown
diff --git a/data/news/en_US/20050328.markdown b/data/news/en/20050328.markdown
similarity index 100%
rename from data/news/en_US/20050328.markdown
rename to data/news/en/20050328.markdown
diff --git a/data/news/en_US/20050330.markdown b/data/news/en/20050330.markdown
similarity index 100%
rename from data/news/en_US/20050330.markdown
rename to data/news/en/20050330.markdown
diff --git a/data/news/en_US/20050401.markdown b/data/news/en/20050401.markdown
similarity index 100%
rename from data/news/en_US/20050401.markdown
rename to data/news/en/20050401.markdown
diff --git a/data/news/en_US/20050511.markdown b/data/news/en/20050511.markdown
similarity index 100%
rename from data/news/en_US/20050511.markdown
rename to data/news/en/20050511.markdown
diff --git a/data/news/en_US/20050804.markdown b/data/news/en/20050804.markdown
similarity index 100%
rename from data/news/en_US/20050804.markdown
rename to data/news/en/20050804.markdown
diff --git a/data/news/en_US/20050830.markdown b/data/news/en/20050830.markdown
similarity index 100%
rename from data/news/en_US/20050830.markdown
rename to data/news/en/20050830.markdown
diff --git a/data/news/en_US/20050909.markdown b/data/news/en/20050909.markdown
similarity index 100%
rename from data/news/en_US/20050909.markdown
rename to data/news/en/20050909.markdown
diff --git a/data/news/en_US/20051011.markdown b/data/news/en/20051011.markdown
similarity index 100%
rename from data/news/en_US/20051011.markdown
rename to data/news/en/20051011.markdown
diff --git a/data/news/en_US/20051030.markdown b/data/news/en/20051030.markdown
similarity index 100%
rename from data/news/en_US/20051030.markdown
rename to data/news/en/20051030.markdown
diff --git a/data/news/en_US/20051101.markdown b/data/news/en/20051101.markdown
similarity index 100%
rename from data/news/en_US/20051101.markdown
rename to data/news/en/20051101.markdown
diff --git a/data/news/en_US/20051109.markdown b/data/news/en/20051109.markdown
similarity index 100%
rename from data/news/en_US/20051109.markdown
rename to data/news/en/20051109.markdown
diff --git a/data/news/en_US/20051113.markdown b/data/news/en/20051113.markdown
similarity index 100%
rename from data/news/en_US/20051113.markdown
rename to data/news/en/20051113.markdown
diff --git a/data/news/en_US/20051114.markdown b/data/news/en/20051114.markdown
similarity index 100%
rename from data/news/en_US/20051114.markdown
rename to data/news/en/20051114.markdown
diff --git a/data/news/en_US/20051202.markdown b/data/news/en/20051202.markdown
similarity index 100%
rename from data/news/en_US/20051202.markdown
rename to data/news/en/20051202.markdown
diff --git a/data/news/en_US/20051205.markdown b/data/news/en/20051205.markdown
similarity index 100%
rename from data/news/en_US/20051205.markdown
rename to data/news/en/20051205.markdown
diff --git a/data/news/en_US/20060109.markdown b/data/news/en/20060109.markdown
similarity index 100%
rename from data/news/en_US/20060109.markdown
rename to data/news/en/20060109.markdown
diff --git a/data/news/en_US/20060114.markdown b/data/news/en/20060114.markdown
similarity index 100%
rename from data/news/en_US/20060114.markdown
rename to data/news/en/20060114.markdown
diff --git a/data/news/en_US/20060131.markdown b/data/news/en/20060131.markdown
similarity index 100%
rename from data/news/en_US/20060131.markdown
rename to data/news/en/20060131.markdown
diff --git a/data/news/en_US/20060208.markdown b/data/news/en/20060208.markdown
similarity index 100%
rename from data/news/en_US/20060208.markdown
rename to data/news/en/20060208.markdown
diff --git a/data/news/en_US/20060212.markdown b/data/news/en/20060212.markdown
similarity index 100%
rename from data/news/en_US/20060212.markdown
rename to data/news/en/20060212.markdown
diff --git a/data/news/en_US/20060314.markdown b/data/news/en/20060314.markdown
similarity index 100%
rename from data/news/en_US/20060314.markdown
rename to data/news/en/20060314.markdown
diff --git a/data/news/en_US/20060319.markdown b/data/news/en/20060319.markdown
similarity index 100%
rename from data/news/en_US/20060319.markdown
rename to data/news/en/20060319.markdown
diff --git a/data/news/en_US/20060409.markdown b/data/news/en/20060409.markdown
similarity index 100%
rename from data/news/en_US/20060409.markdown
rename to data/news/en/20060409.markdown
diff --git a/data/news/en_US/20060425.markdown b/data/news/en/20060425.markdown
similarity index 100%
rename from data/news/en_US/20060425.markdown
rename to data/news/en/20060425.markdown
diff --git a/data/news/en_US/20060513.markdown b/data/news/en/20060513.markdown
similarity index 100%
rename from data/news/en_US/20060513.markdown
rename to data/news/en/20060513.markdown
diff --git a/data/news/en_US/20060524.markdown b/data/news/en/20060524.markdown
similarity index 100%
rename from data/news/en_US/20060524.markdown
rename to data/news/en/20060524.markdown
diff --git a/data/news/en_US/20060527.markdown b/data/news/en/20060527.markdown
similarity index 100%
rename from data/news/en_US/20060527.markdown
rename to data/news/en/20060527.markdown
diff --git a/data/news/en_US/20060625.markdown b/data/news/en/20060625.markdown
similarity index 100%
rename from data/news/en_US/20060625.markdown
rename to data/news/en/20060625.markdown
diff --git a/data/news/en_US/20060704.markdown b/data/news/en/20060704.markdown
similarity index 100%
rename from data/news/en_US/20060704.markdown
rename to data/news/en/20060704.markdown
diff --git a/data/news/en_US/20060830.markdown b/data/news/en/20060830.markdown
similarity index 100%
rename from data/news/en_US/20060830.markdown
rename to data/news/en/20060830.markdown
diff --git a/data/news/en_US/20061029.markdown b/data/news/en/20061029.markdown
similarity index 100%
rename from data/news/en_US/20061029.markdown
rename to data/news/en/20061029.markdown
diff --git a/data/news/en_US/20061114.markdown b/data/news/en/20061114.markdown
similarity index 100%
rename from data/news/en_US/20061114.markdown
rename to data/news/en/20061114.markdown
diff --git a/data/news/en_US/20061117.markdown b/data/news/en/20061117.markdown
similarity index 100%
rename from data/news/en_US/20061117.markdown
rename to data/news/en/20061117.markdown
diff --git a/data/news/en_US/20061215.markdown b/data/news/en/20061215.markdown
similarity index 100%
rename from data/news/en_US/20061215.markdown
rename to data/news/en/20061215.markdown
diff --git a/data/news/en_US/20061218.markdown b/data/news/en/20061218.markdown
similarity index 100%
rename from data/news/en_US/20061218.markdown
rename to data/news/en/20061218.markdown
diff --git a/data/news/en_US/20061219.markdown b/data/news/en/20061219.markdown
similarity index 100%
rename from data/news/en_US/20061219.markdown
rename to data/news/en/20061219.markdown
diff --git a/data/news/en_US/20070103.markdown b/data/news/en/20070103.markdown
similarity index 100%
rename from data/news/en_US/20070103.markdown
rename to data/news/en/20070103.markdown
diff --git a/data/news/en_US/20070105.markdown b/data/news/en/20070105.markdown
similarity index 100%
rename from data/news/en_US/20070105.markdown
rename to data/news/en/20070105.markdown
diff --git a/data/news/en_US/20070130.markdown b/data/news/en/20070130.markdown
similarity index 100%
rename from data/news/en_US/20070130.markdown
rename to data/news/en/20070130.markdown
diff --git a/data/news/en_US/20070210.markdown b/data/news/en/20070210.markdown
similarity index 100%
rename from data/news/en_US/20070210.markdown
rename to data/news/en/20070210.markdown
diff --git a/data/news/en_US/20070216.markdown b/data/news/en/20070216.markdown
similarity index 100%
rename from data/news/en_US/20070216.markdown
rename to data/news/en/20070216.markdown
diff --git a/data/news/en_US/20070307.markdown b/data/news/en/20070307.markdown
similarity index 100%
rename from data/news/en_US/20070307.markdown
rename to data/news/en/20070307.markdown
diff --git a/data/news/en_US/20070315.markdown b/data/news/en/20070315.markdown
similarity index 100%
rename from data/news/en_US/20070315.markdown
rename to data/news/en/20070315.markdown
diff --git a/data/news/en_US/20070401.markdown b/data/news/en/20070401.markdown
similarity index 100%
rename from data/news/en_US/20070401.markdown
rename to data/news/en/20070401.markdown
diff --git a/data/news/en_US/20070412.markdown b/data/news/en/20070412.markdown
similarity index 100%
rename from data/news/en_US/20070412.markdown
rename to data/news/en/20070412.markdown
diff --git a/data/news/en_US/20070422.markdown b/data/news/en/20070422.markdown
similarity index 100%
rename from data/news/en_US/20070422.markdown
rename to data/news/en/20070422.markdown
diff --git a/data/news/en_US/20070519.markdown b/data/news/en/20070519.markdown
similarity index 100%
rename from data/news/en_US/20070519.markdown
rename to data/news/en/20070519.markdown
diff --git a/data/news/en_US/20070520.markdown b/data/news/en/20070520.markdown
similarity index 100%
rename from data/news/en_US/20070520.markdown
rename to data/news/en/20070520.markdown
diff --git a/data/news/en_US/20070606.markdown b/data/news/en/20070606.markdown
similarity index 100%
rename from data/news/en_US/20070606.markdown
rename to data/news/en/20070606.markdown
diff --git a/data/news/en_US/20070620.markdown b/data/news/en/20070620.markdown
similarity index 100%
rename from data/news/en_US/20070620.markdown
rename to data/news/en/20070620.markdown
diff --git a/data/news/en_US/20070703.markdown b/data/news/en/20070703.markdown
similarity index 100%
rename from data/news/en_US/20070703.markdown
rename to data/news/en/20070703.markdown
diff --git a/data/news/en_US/20070722.markdown b/data/news/en/20070722.markdown
similarity index 100%
rename from data/news/en_US/20070722.markdown
rename to data/news/en/20070722.markdown
diff --git a/data/news/en_US/20070731.markdown b/data/news/en/20070731.markdown
similarity index 100%
rename from data/news/en_US/20070731.markdown
rename to data/news/en/20070731.markdown
diff --git a/data/news/en_US/20070805.markdown b/data/news/en/20070805.markdown
similarity index 100%
rename from data/news/en_US/20070805.markdown
rename to data/news/en/20070805.markdown
diff --git a/data/news/en_US/20070916.markdown b/data/news/en/20070916.markdown
similarity index 100%
rename from data/news/en_US/20070916.markdown
rename to data/news/en/20070916.markdown
diff --git a/data/news/en_US/20071012.markdown b/data/news/en/20071012.markdown
similarity index 100%
rename from data/news/en_US/20071012.markdown
rename to data/news/en/20071012.markdown
diff --git a/data/news/en_US/20071127.markdown b/data/news/en/20071127.markdown
similarity index 100%
rename from data/news/en_US/20071127.markdown
rename to data/news/en/20071127.markdown
diff --git a/data/news/en_US/20071130.markdown b/data/news/en/20071130.markdown
similarity index 100%
rename from data/news/en_US/20071130.markdown
rename to data/news/en/20071130.markdown
diff --git a/data/news/en_US/20071202.markdown b/data/news/en/20071202.markdown
similarity index 100%
rename from data/news/en_US/20071202.markdown
rename to data/news/en/20071202.markdown
diff --git a/data/news/en_US/20071206.markdown b/data/news/en/20071206.markdown
similarity index 100%
rename from data/news/en_US/20071206.markdown
rename to data/news/en/20071206.markdown
diff --git a/data/news/en_US/20071228.markdown b/data/news/en/20071228.markdown
similarity index 100%
rename from data/news/en_US/20071228.markdown
rename to data/news/en/20071228.markdown
diff --git a/data/news/en_US/20080115.markdown b/data/news/en/20080115.markdown
similarity index 100%
rename from data/news/en_US/20080115.markdown
rename to data/news/en/20080115.markdown
diff --git a/data/news/en_US/20080229.markdown b/data/news/en/20080229.markdown
similarity index 100%
rename from data/news/en_US/20080229.markdown
rename to data/news/en/20080229.markdown
diff --git a/data/news/en_US/20080302.markdown b/data/news/en/20080302.markdown
similarity index 100%
rename from data/news/en_US/20080302.markdown
rename to data/news/en/20080302.markdown
diff --git a/data/news/en_US/20080321.markdown b/data/news/en/20080321.markdown
similarity index 100%
rename from data/news/en_US/20080321.markdown
rename to data/news/en/20080321.markdown
diff --git a/data/news/en_US/20080331.markdown b/data/news/en/20080331.markdown
similarity index 100%
rename from data/news/en_US/20080331.markdown
rename to data/news/en/20080331.markdown
diff --git a/data/news/en_US/20080401.markdown b/data/news/en/20080401.markdown
similarity index 100%
rename from data/news/en_US/20080401.markdown
rename to data/news/en/20080401.markdown
diff --git a/data/news/en_US/20080511.markdown b/data/news/en/20080511.markdown
similarity index 100%
rename from data/news/en_US/20080511.markdown
rename to data/news/en/20080511.markdown
diff --git a/data/news/en_US/20080522.markdown b/data/news/en/20080522.markdown
similarity index 100%
rename from data/news/en_US/20080522.markdown
rename to data/news/en/20080522.markdown
diff --git a/data/news/en_US/20080526.markdown b/data/news/en/20080526.markdown
similarity index 100%
rename from data/news/en_US/20080526.markdown
rename to data/news/en/20080526.markdown
diff --git a/data/news/en_US/20080622.markdown b/data/news/en/20080622.markdown
similarity index 100%
rename from data/news/en_US/20080622.markdown
rename to data/news/en/20080622.markdown
diff --git a/data/news/en_US/20080703.markdown b/data/news/en/20080703.markdown
similarity index 100%
rename from data/news/en_US/20080703.markdown
rename to data/news/en/20080703.markdown
diff --git a/data/news/en_US/20080721.markdown b/data/news/en/20080721.markdown
similarity index 100%
rename from data/news/en_US/20080721.markdown
rename to data/news/en/20080721.markdown
diff --git a/data/news/en_US/20080831.markdown b/data/news/en/20080831.markdown
similarity index 100%
rename from data/news/en_US/20080831.markdown
rename to data/news/en/20080831.markdown
diff --git a/data/news/en_US/20080906.markdown b/data/news/en/20080906.markdown
similarity index 100%
rename from data/news/en_US/20080906.markdown
rename to data/news/en/20080906.markdown
diff --git a/data/news/en_US/20080914.markdown b/data/news/en/20080914.markdown
similarity index 100%
rename from data/news/en_US/20080914.markdown
rename to data/news/en/20080914.markdown
diff --git a/data/news/en_US/20081201.markdown b/data/news/en/20081201.markdown
similarity index 100%
rename from data/news/en_US/20081201.markdown
rename to data/news/en/20081201.markdown
diff --git a/data/news/en_US/20081214.markdown b/data/news/en/20081214.markdown
similarity index 100%
rename from data/news/en_US/20081214.markdown
rename to data/news/en/20081214.markdown
diff --git a/data/news/en_US/20081216.markdown b/data/news/en/20081216.markdown
similarity index 100%
rename from data/news/en_US/20081216.markdown
rename to data/news/en/20081216.markdown
diff --git a/data/news/en_US/20090104.markdown b/data/news/en/20090104.markdown
similarity index 100%
rename from data/news/en_US/20090104.markdown
rename to data/news/en/20090104.markdown
diff --git a/data/news/en_US/20090114.markdown b/data/news/en/20090114.markdown
similarity index 100%
rename from data/news/en_US/20090114.markdown
rename to data/news/en/20090114.markdown
diff --git a/data/news/en_US/20090117.markdown b/data/news/en/20090117.markdown
similarity index 100%
rename from data/news/en_US/20090117.markdown
rename to data/news/en/20090117.markdown
diff --git a/data/news/en_US/20090122.markdown b/data/news/en/20090122.markdown
similarity index 100%
rename from data/news/en_US/20090122.markdown
rename to data/news/en/20090122.markdown
diff --git a/data/news/en_US/20090215.markdown b/data/news/en/20090215.markdown
similarity index 100%
rename from data/news/en_US/20090215.markdown
rename to data/news/en/20090215.markdown
diff --git a/data/news/en_US/20090228.markdown b/data/news/en/20090228.markdown
similarity index 100%
rename from data/news/en_US/20090228.markdown
rename to data/news/en/20090228.markdown
diff --git a/data/news/en_US/20090307.markdown b/data/news/en/20090307.markdown
similarity index 100%
rename from data/news/en_US/20090307.markdown
rename to data/news/en/20090307.markdown
diff --git a/data/news/en_US/20090318.markdown b/data/news/en/20090318.markdown
similarity index 100%
rename from data/news/en_US/20090318.markdown
rename to data/news/en/20090318.markdown
diff --git a/data/news/en_US/20090421.markdown b/data/news/en/20090421.markdown
similarity index 100%
rename from data/news/en_US/20090421.markdown
rename to data/news/en/20090421.markdown
diff --git a/data/news/en_US/20090423.markdown b/data/news/en/20090423.markdown
similarity index 100%
rename from data/news/en_US/20090423.markdown
rename to data/news/en/20090423.markdown
diff --git a/data/news/en_US/20090427.markdown b/data/news/en/20090427.markdown
similarity index 100%
rename from data/news/en_US/20090427.markdown
rename to data/news/en/20090427.markdown
diff --git a/data/news/en_US/20090514.markdown b/data/news/en/20090514.markdown
similarity index 100%
rename from data/news/en_US/20090514.markdown
rename to data/news/en/20090514.markdown
diff --git a/data/news/en_US/20090517.markdown b/data/news/en/20090517.markdown
similarity index 100%
rename from data/news/en_US/20090517.markdown
rename to data/news/en/20090517.markdown
diff --git a/data/news/en_US/20090523.markdown b/data/news/en/20090523.markdown
similarity index 100%
rename from data/news/en_US/20090523.markdown
rename to data/news/en/20090523.markdown
diff --git a/data/news/en_US/20090607.markdown b/data/news/en/20090607.markdown
similarity index 100%
rename from data/news/en_US/20090607.markdown
rename to data/news/en/20090607.markdown
diff --git a/data/news/en_US/20090616.markdown b/data/news/en/20090616.markdown
similarity index 100%
rename from data/news/en_US/20090616.markdown
rename to data/news/en/20090616.markdown
diff --git a/data/news/en_US/20090623.markdown b/data/news/en/20090623.markdown
similarity index 100%
rename from data/news/en_US/20090623.markdown
rename to data/news/en/20090623.markdown
diff --git a/data/news/en_US/20090630.markdown b/data/news/en/20090630.markdown
similarity index 100%
rename from data/news/en_US/20090630.markdown
rename to data/news/en/20090630.markdown
diff --git a/data/news/en_US/20090702.markdown b/data/news/en/20090702.markdown
similarity index 100%
rename from data/news/en_US/20090702.markdown
rename to data/news/en/20090702.markdown
diff --git a/data/news/en_US/20090709.markdown b/data/news/en/20090709.markdown
similarity index 100%
rename from data/news/en_US/20090709.markdown
rename to data/news/en/20090709.markdown
diff --git a/data/news/en_US/20090710a.markdown b/data/news/en/20090710a.markdown
similarity index 100%
rename from data/news/en_US/20090710a.markdown
rename to data/news/en/20090710a.markdown
diff --git a/data/news/en_US/20090710b.markdown b/data/news/en/20090710b.markdown
similarity index 100%
rename from data/news/en_US/20090710b.markdown
rename to data/news/en/20090710b.markdown
diff --git a/data/news/en_US/20090724.markdown b/data/news/en/20090724.markdown
similarity index 100%
rename from data/news/en_US/20090724.markdown
rename to data/news/en/20090724.markdown
diff --git a/data/news/en_US/20090802.markdown b/data/news/en/20090802.markdown
similarity index 100%
rename from data/news/en_US/20090802.markdown
rename to data/news/en/20090802.markdown
diff --git a/data/news/en_US/20090821.markdown b/data/news/en/20090821.markdown
similarity index 100%
rename from data/news/en_US/20090821.markdown
rename to data/news/en/20090821.markdown
diff --git a/data/news/en_US/20090831.markdown b/data/news/en/20090831.markdown
similarity index 100%
rename from data/news/en_US/20090831.markdown
rename to data/news/en/20090831.markdown
diff --git a/data/news/en_US/20090920.markdown b/data/news/en/20090920.markdown
similarity index 100%
rename from data/news/en_US/20090920.markdown
rename to data/news/en/20090920.markdown
diff --git a/data/news/en_US/20091030.markdown b/data/news/en/20091030.markdown
similarity index 100%
rename from data/news/en_US/20091030.markdown
rename to data/news/en/20091030.markdown
diff --git a/data/news/en_US/20091115.markdown b/data/news/en/20091115.markdown
similarity index 100%
rename from data/news/en_US/20091115.markdown
rename to data/news/en/20091115.markdown
diff --git a/data/news/en_US/20091221.markdown b/data/news/en/20091221.markdown
similarity index 100%
rename from data/news/en_US/20091221.markdown
rename to data/news/en/20091221.markdown
diff --git a/data/news/en_US/20091222.markdown b/data/news/en/20091222.markdown
similarity index 100%
rename from data/news/en_US/20091222.markdown
rename to data/news/en/20091222.markdown
diff --git a/data/news/en_US/20100109.markdown b/data/news/en/20100109.markdown
similarity index 100%
rename from data/news/en_US/20100109.markdown
rename to data/news/en/20100109.markdown
diff --git a/data/news/en_US/20100222.markdown b/data/news/en/20100222.markdown
similarity index 100%
rename from data/news/en_US/20100222.markdown
rename to data/news/en/20100222.markdown
diff --git a/data/news/en_US/20100318.markdown b/data/news/en/20100318.markdown
similarity index 100%
rename from data/news/en_US/20100318.markdown
rename to data/news/en/20100318.markdown
diff --git a/data/news/en_US/20100401.markdown b/data/news/en/20100401.markdown
similarity index 100%
rename from data/news/en_US/20100401.markdown
rename to data/news/en/20100401.markdown
diff --git a/data/news/en_US/20100404.markdown b/data/news/en/20100404.markdown
similarity index 100%
rename from data/news/en_US/20100404.markdown
rename to data/news/en/20100404.markdown
diff --git a/data/news/en_US/20100428.markdown b/data/news/en/20100428.markdown
similarity index 100%
rename from data/news/en_US/20100428.markdown
rename to data/news/en/20100428.markdown
diff --git a/data/news/en_US/20100502.markdown b/data/news/en/20100502.markdown
similarity index 100%
rename from data/news/en_US/20100502.markdown
rename to data/news/en/20100502.markdown
diff --git a/data/news/en_US/20100725.markdown b/data/news/en/20100725.markdown
similarity index 100%
rename from data/news/en_US/20100725.markdown
rename to data/news/en/20100725.markdown
diff --git a/data/news/en_US/20100828.markdown b/data/news/en/20100828.markdown
similarity index 100%
rename from data/news/en_US/20100828.markdown
rename to data/news/en/20100828.markdown
diff --git a/data/news/en_US/20100912.markdown b/data/news/en/20100912.markdown
similarity index 100%
rename from data/news/en_US/20100912.markdown
rename to data/news/en/20100912.markdown
diff --git a/data/news/en_US/20101015.markdown b/data/news/en/20101015.markdown
similarity index 100%
rename from data/news/en_US/20101015.markdown
rename to data/news/en/20101015.markdown
diff --git a/data/news/en_US/20101219.markdown b/data/news/en/20101219.markdown
similarity index 100%
rename from data/news/en_US/20101219.markdown
rename to data/news/en/20101219.markdown
diff --git a/data/news/en_US/20110123.markdown b/data/news/en/20110123.markdown
similarity index 100%
rename from data/news/en_US/20110123.markdown
rename to data/news/en/20110123.markdown
diff --git a/data/news/en_US/20110203.markdown b/data/news/en/20110203.markdown
similarity index 100%
rename from data/news/en_US/20110203.markdown
rename to data/news/en/20110203.markdown
diff --git a/data/news/en_US/20110212.markdown b/data/news/en/20110212.markdown
similarity index 100%
rename from data/news/en_US/20110212.markdown
rename to data/news/en/20110212.markdown
diff --git a/data/news/en_US/20110318.markdown b/data/news/en/20110318.markdown
similarity index 100%
rename from data/news/en_US/20110318.markdown
rename to data/news/en/20110318.markdown
diff --git a/data/news/en_US/20110328.markdown b/data/news/en/20110328.markdown
similarity index 100%
rename from data/news/en_US/20110328.markdown
rename to data/news/en/20110328.markdown
diff --git a/data/news/en_US/20110401.markdown b/data/news/en/20110401.markdown
similarity index 100%
rename from data/news/en_US/20110401.markdown
rename to data/news/en/20110401.markdown
diff --git a/data/news/en_US/20110416.markdown b/data/news/en/20110416.markdown
similarity index 100%
rename from data/news/en_US/20110416.markdown
rename to data/news/en/20110416.markdown
diff --git a/data/news/en_US/20110422.markdown b/data/news/en/20110422.markdown
similarity index 100%
rename from data/news/en_US/20110422.markdown
rename to data/news/en/20110422.markdown
diff --git a/data/news/en_US/20110528.markdown b/data/news/en/20110528.markdown
similarity index 100%
rename from data/news/en_US/20110528.markdown
rename to data/news/en/20110528.markdown
diff --git a/data/news/en_US/20110602.markdown b/data/news/en/20110602.markdown
similarity index 100%
rename from data/news/en_US/20110602.markdown
rename to data/news/en/20110602.markdown
diff --git a/data/news/en_US/20110712.markdown b/data/news/en/20110712.markdown
similarity index 100%
rename from data/news/en_US/20110712.markdown
rename to data/news/en/20110712.markdown
diff --git a/data/news/en_US/20110804.markdown b/data/news/en/20110804.markdown
similarity index 100%
rename from data/news/en_US/20110804.markdown
rename to data/news/en/20110804.markdown
diff --git a/data/news/en_US/20111003.markdown b/data/news/en/20111003.markdown
similarity index 100%
rename from data/news/en_US/20111003.markdown
rename to data/news/en/20111003.markdown
diff --git a/data/news/en_US/20111106.markdown b/data/news/en/20111106.markdown
similarity index 100%
rename from data/news/en_US/20111106.markdown
rename to data/news/en/20111106.markdown
diff --git a/data/news/en_US/20111111.markdown b/data/news/en/20111111.markdown
similarity index 100%
rename from data/news/en_US/20111111.markdown
rename to data/news/en/20111111.markdown
diff --git a/data/news/en_US/20111121.markdown b/data/news/en/20111121.markdown
similarity index 100%
rename from data/news/en_US/20111121.markdown
rename to data/news/en/20111121.markdown
diff --git a/data/news/en_US/20111126.markdown b/data/news/en/20111126.markdown
similarity index 100%
rename from data/news/en_US/20111126.markdown
rename to data/news/en/20111126.markdown
diff --git a/data/news/en_US/20111210.markdown b/data/news/en/20111210.markdown
similarity index 100%
rename from data/news/en_US/20111210.markdown
rename to data/news/en/20111210.markdown
diff --git a/data/news/en_US/20111219.markdown b/data/news/en/20111219.markdown
similarity index 100%
rename from data/news/en_US/20111219.markdown
rename to data/news/en/20111219.markdown
diff --git a/data/news/en_US/20120127.markdown b/data/news/en/20120127.markdown
similarity index 100%
rename from data/news/en_US/20120127.markdown
rename to data/news/en/20120127.markdown
diff --git a/data/news/en_US/20120316.markdown b/data/news/en/20120316.markdown
similarity index 100%
rename from data/news/en_US/20120316.markdown
rename to data/news/en/20120316.markdown
diff --git a/data/news/en_US/20120328.markdown b/data/news/en/20120328.markdown
similarity index 100%
rename from data/news/en_US/20120328.markdown
rename to data/news/en/20120328.markdown
diff --git a/data/news/en_US/20120401.markdown b/data/news/en/20120401.markdown
similarity index 100%
rename from data/news/en_US/20120401.markdown
rename to data/news/en/20120401.markdown
diff --git a/data/news/en_US/20120401b.markdown b/data/news/en/20120401b.markdown
similarity index 100%
rename from data/news/en_US/20120401b.markdown
rename to data/news/en/20120401b.markdown
diff --git a/data/news/en_US/20120424.markdown b/data/news/en/20120424.markdown
similarity index 100%
rename from data/news/en_US/20120424.markdown
rename to data/news/en/20120424.markdown
diff --git a/data/news/en_US/20120502.markdown b/data/news/en/20120502.markdown
similarity index 100%
rename from data/news/en_US/20120502.markdown
rename to data/news/en/20120502.markdown
diff --git a/data/news/en_US/20120609.markdown b/data/news/en/20120609.markdown
similarity index 100%
rename from data/news/en_US/20120609.markdown
rename to data/news/en/20120609.markdown
diff --git a/data/news/en_US/20120616.markdown b/data/news/en/20120616.markdown
similarity index 100%
rename from data/news/en_US/20120616.markdown
rename to data/news/en/20120616.markdown
diff --git a/data/news/en_US/20120629.markdown b/data/news/en/20120629.markdown
similarity index 100%
rename from data/news/en_US/20120629.markdown
rename to data/news/en/20120629.markdown
diff --git a/data/news/en_US/20120727.markdown b/data/news/en/20120727.markdown
similarity index 100%
rename from data/news/en_US/20120727.markdown
rename to data/news/en/20120727.markdown
diff --git a/data/news/en_US/20120809.markdown b/data/news/en/20120809.markdown
similarity index 100%
rename from data/news/en_US/20120809.markdown
rename to data/news/en/20120809.markdown
diff --git a/data/news/en_US/20120916.markdown b/data/news/en/20120916.markdown
similarity index 100%
rename from data/news/en_US/20120916.markdown
rename to data/news/en/20120916.markdown
diff --git a/data/news/en_US/20121002.markdown b/data/news/en/20121002.markdown
similarity index 100%
rename from data/news/en_US/20121002.markdown
rename to data/news/en/20121002.markdown
diff --git a/data/news/en_US/20121017.markdown b/data/news/en/20121017.markdown
similarity index 100%
rename from data/news/en_US/20121017.markdown
rename to data/news/en/20121017.markdown
diff --git a/data/news/en_US/20121021.markdown b/data/news/en/20121021.markdown
similarity index 100%
rename from data/news/en_US/20121021.markdown
rename to data/news/en/20121021.markdown
diff --git a/data/news/en_US/20121025.markdown b/data/news/en/20121025.markdown
similarity index 100%
rename from data/news/en_US/20121025.markdown
rename to data/news/en/20121025.markdown
diff --git a/data/news/en_US/20121130.markdown b/data/news/en/20121130.markdown
similarity index 100%
rename from data/news/en_US/20121130.markdown
rename to data/news/en/20121130.markdown
diff --git a/data/news/en_US/20121222.markdown b/data/news/en/20121222.markdown
similarity index 100%
rename from data/news/en_US/20121222.markdown
rename to data/news/en/20121222.markdown
diff --git a/data/news/en_US/20130102.markdown b/data/news/en/20130102.markdown
similarity index 100%
rename from data/news/en_US/20130102.markdown
rename to data/news/en/20130102.markdown
diff --git a/data/news/en_US/20130328.markdown b/data/news/en/20130328.markdown
similarity index 100%
rename from data/news/en_US/20130328.markdown
rename to data/news/en/20130328.markdown
diff --git a/data/news/en_US/20130412.markdown b/data/news/en/20130412.markdown
similarity index 100%
rename from data/news/en_US/20130412.markdown
rename to data/news/en/20130412.markdown
diff --git a/data/news/en_US/20130420.markdown b/data/news/en/20130420.markdown
similarity index 100%
rename from data/news/en_US/20130420.markdown
rename to data/news/en/20130420.markdown
diff --git a/data/news/en_US/20130421.markdown b/data/news/en/20130421.markdown
similarity index 100%
rename from data/news/en_US/20130421.markdown
rename to data/news/en/20130421.markdown
diff --git a/data/news/en_US/20130531a.markdown b/data/news/en/20130531a.markdown
similarity index 100%
rename from data/news/en_US/20130531a.markdown
rename to data/news/en/20130531a.markdown
diff --git a/data/news/en_US/20130531b.markdown b/data/news/en/20130531b.markdown
similarity index 100%
rename from data/news/en_US/20130531b.markdown
rename to data/news/en/20130531b.markdown
diff --git a/data/news/en_US/20131011.markdown b/data/news/en/20131011.markdown
similarity index 100%
rename from data/news/en_US/20131011.markdown
rename to data/news/en/20131011.markdown
diff --git a/data/news/en_US/20131105.markdown b/data/news/en/20131105.markdown
similarity index 100%
rename from data/news/en_US/20131105.markdown
rename to data/news/en/20131105.markdown
diff --git a/data/news/en_US/20131202.markdown b/data/news/en/20131202.markdown
similarity index 100%
rename from data/news/en_US/20131202.markdown
rename to data/news/en/20131202.markdown
diff --git a/data/news/en_US/20131227.markdown b/data/news/en/20131227.markdown
similarity index 100%
rename from data/news/en_US/20131227.markdown
rename to data/news/en/20131227.markdown
diff --git a/data/news/en_US/20140112.markdown b/data/news/en/20140112.markdown
similarity index 100%
rename from data/news/en_US/20140112.markdown
rename to data/news/en/20140112.markdown
diff --git a/data/news/en_US/20140118.markdown b/data/news/en/20140118.markdown
similarity index 100%
rename from data/news/en_US/20140118.markdown
rename to data/news/en/20140118.markdown
diff --git a/data/news/en_US/20140225.markdown b/data/news/en/20140225.markdown
similarity index 100%
rename from data/news/en_US/20140225.markdown
rename to data/news/en/20140225.markdown
diff --git a/data/news/en_US/20140305.markdown b/data/news/en/20140305.markdown
similarity index 100%
rename from data/news/en_US/20140305.markdown
rename to data/news/en/20140305.markdown
diff --git a/data/news/en_US/20140401.markdown b/data/news/en/20140401.markdown
similarity index 100%
rename from data/news/en_US/20140401.markdown
rename to data/news/en/20140401.markdown
diff --git a/data/news/en_US/20140401b.markdown b/data/news/en/20140401b.markdown
similarity index 100%
rename from data/news/en_US/20140401b.markdown
rename to data/news/en/20140401b.markdown
diff --git a/data/news/en_US/20140423.markdown b/data/news/en/20140423.markdown
similarity index 100%
rename from data/news/en_US/20140423.markdown
rename to data/news/en/20140423.markdown
diff --git a/data/news/en_US/20140519.markdown b/data/news/en/20140519.markdown
similarity index 100%
rename from data/news/en_US/20140519.markdown
rename to data/news/en/20140519.markdown
diff --git a/data/news/en_US/20140607.markdown b/data/news/en/20140607.markdown
similarity index 100%
rename from data/news/en_US/20140607.markdown
rename to data/news/en/20140607.markdown
diff --git a/data/news/en_US/20140616.markdown b/data/news/en/20140616.markdown
similarity index 100%
rename from data/news/en_US/20140616.markdown
rename to data/news/en/20140616.markdown
diff --git a/data/news/en_US/20140721.markdown b/data/news/en/20140721.markdown
similarity index 100%
rename from data/news/en_US/20140721.markdown
rename to data/news/en/20140721.markdown
diff --git a/data/news/en_US/20140810.markdown b/data/news/en/20140810.markdown
similarity index 100%
rename from data/news/en_US/20140810.markdown
rename to data/news/en/20140810.markdown
diff --git a/data/news/en_US/20140918.markdown b/data/news/en/20140918.markdown
similarity index 100%
rename from data/news/en_US/20140918.markdown
rename to data/news/en/20140918.markdown
diff --git a/data/news/en_US/20150111.markdown b/data/news/en/20150111.markdown
similarity index 100%
rename from data/news/en_US/20150111.markdown
rename to data/news/en/20150111.markdown
diff --git a/data/news/en_US/20150330.markdown b/data/news/en/20150330.markdown
similarity index 100%
rename from data/news/en_US/20150330.markdown
rename to data/news/en/20150330.markdown
diff --git a/data/news/en_US/20150913.markdown b/data/news/en/20150913.markdown
similarity index 100%
rename from data/news/en_US/20150913.markdown
rename to data/news/en/20150913.markdown
diff --git a/data/news/en_US/20151111.markdown b/data/news/en/20151111.markdown
similarity index 100%
rename from data/news/en_US/20151111.markdown
rename to data/news/en/20151111.markdown
diff --git a/data/news/en_US/20151122.markdown b/data/news/en/20151122.markdown
similarity index 100%
rename from data/news/en_US/20151122.markdown
rename to data/news/en/20151122.markdown
diff --git a/data/news/en_US/20151206.markdown b/data/news/en/20151206.markdown
similarity index 100%
rename from data/news/en_US/20151206.markdown
rename to data/news/en/20151206.markdown
diff --git a/data/news/en_US/20160119.markdown b/data/news/en/20160119.markdown
similarity index 100%
rename from data/news/en_US/20160119.markdown
rename to data/news/en/20160119.markdown
diff --git a/data/news/en_US/20160123.markdown b/data/news/en/20160123.markdown
similarity index 100%
rename from data/news/en_US/20160123.markdown
rename to data/news/en/20160123.markdown
diff --git a/data/news/en_US/20160201.markdown b/data/news/en/20160201.markdown
similarity index 100%
rename from data/news/en_US/20160201.markdown
rename to data/news/en/20160201.markdown
diff --git a/data/news/en_US/20160301.markdown b/data/news/en/20160301.markdown
similarity index 100%
rename from data/news/en_US/20160301.markdown
rename to data/news/en/20160301.markdown
diff --git a/data/news/en_US/20160304.markdown b/data/news/en/20160304.markdown
similarity index 100%
rename from data/news/en_US/20160304.markdown
rename to data/news/en/20160304.markdown
diff --git a/data/news/en_US/20160327.markdown b/data/news/en/20160327.markdown
similarity index 100%
rename from data/news/en_US/20160327.markdown
rename to data/news/en/20160327.markdown
diff --git a/data/news/en_US/20160401.markdown b/data/news/en/20160401.markdown
similarity index 100%
rename from data/news/en_US/20160401.markdown
rename to data/news/en/20160401.markdown
diff --git a/data/news/en_US/20160425.markdown b/data/news/en/20160425.markdown
similarity index 100%
rename from data/news/en_US/20160425.markdown
rename to data/news/en/20160425.markdown
diff --git a/data/news/en_US/20160502.markdown b/data/news/en/20160502.markdown
similarity index 100%
rename from data/news/en_US/20160502.markdown
rename to data/news/en/20160502.markdown
diff --git a/data/news/en_US/20160525.markdown b/data/news/en/20160525.markdown
similarity index 100%
rename from data/news/en_US/20160525.markdown
rename to data/news/en/20160525.markdown
diff --git a/data/news/en_US/20160606.markdown b/data/news/en/20160606.markdown
similarity index 100%
rename from data/news/en_US/20160606.markdown
rename to data/news/en/20160606.markdown
diff --git a/data/news/en_US/20160816.markdown b/data/news/en/20160816.markdown
similarity index 100%
rename from data/news/en_US/20160816.markdown
rename to data/news/en/20160816.markdown
diff --git a/data/news/en_US/20160913.markdown b/data/news/en/20160913.markdown
similarity index 100%
rename from data/news/en_US/20160913.markdown
rename to data/news/en/20160913.markdown
diff --git a/data/news/en_US/20160915.markdown b/data/news/en/20160915.markdown
similarity index 100%
rename from data/news/en_US/20160915.markdown
rename to data/news/en/20160915.markdown
diff --git a/data/news/en_US/20161017.markdown b/data/news/en/20161017.markdown
similarity index 100%
rename from data/news/en_US/20161017.markdown
rename to data/news/en/20161017.markdown
diff --git a/data/news/en_US/20161127.markdown b/data/news/en/20161127.markdown
similarity index 100%
rename from data/news/en_US/20161127.markdown
rename to data/news/en/20161127.markdown
diff --git a/data/news/en_US/20161201.markdown b/data/news/en/20161201.markdown
similarity index 100%
rename from data/news/en_US/20161201.markdown
rename to data/news/en/20161201.markdown
diff --git a/data/news/en_US/20170306.markdown b/data/news/en/20170306.markdown
similarity index 100%
rename from data/news/en_US/20170306.markdown
rename to data/news/en/20170306.markdown
diff --git a/data/news/en_US/20170401.markdown b/data/news/en/20170401.markdown
similarity index 100%
rename from data/news/en_US/20170401.markdown
rename to data/news/en/20170401.markdown
diff --git a/data/news/en_US/20170401a.markdown b/data/news/en/20170401a.markdown
similarity index 100%
rename from data/news/en_US/20170401a.markdown
rename to data/news/en/20170401a.markdown
diff --git a/data/news/en_US/20170428.markdown b/data/news/en/20170428.markdown
similarity index 100%
rename from data/news/en_US/20170428.markdown
rename to data/news/en/20170428.markdown
diff --git a/data/news/en_US/20170505.markdown b/data/news/en/20170505.markdown
similarity index 100%
rename from data/news/en_US/20170505.markdown
rename to data/news/en/20170505.markdown
diff --git a/data/news/en_US/20170617.markdown b/data/news/en/20170617.markdown
similarity index 100%
rename from data/news/en_US/20170617.markdown
rename to data/news/en/20170617.markdown
diff --git a/data/news/en_US/20170702.markdown b/data/news/en/20170702.markdown
similarity index 100%
rename from data/news/en_US/20170702.markdown
rename to data/news/en/20170702.markdown
diff --git a/data/news/en_US/20170731.markdown b/data/news/en/20170731.markdown
similarity index 100%
rename from data/news/en_US/20170731.markdown
rename to data/news/en/20170731.markdown
diff --git a/data/news/en_US/20170801.markdown b/data/news/en/20170801.markdown
similarity index 100%
rename from data/news/en_US/20170801.markdown
rename to data/news/en/20170801.markdown
diff --git a/data/news/en_US/20171010.markdown b/data/news/en/20171010.markdown
similarity index 100%
rename from data/news/en_US/20171010.markdown
rename to data/news/en/20171010.markdown
diff --git a/data/news/en_US/20171122.markdown b/data/news/en/20171122.markdown
similarity index 100%
rename from data/news/en_US/20171122.markdown
rename to data/news/en/20171122.markdown
diff --git a/data/news/en_US/20171217.markdown b/data/news/en/20171217.markdown
similarity index 100%
rename from data/news/en_US/20171217.markdown
rename to data/news/en/20171217.markdown
diff --git a/data/news/en_US/20180214.markdown b/data/news/en/20180214.markdown
similarity index 100%
rename from data/news/en_US/20180214.markdown
rename to data/news/en/20180214.markdown
diff --git a/data/news/en_US/20180331.markdown b/data/news/en/20180331.markdown
similarity index 100%
rename from data/news/en_US/20180331.markdown
rename to data/news/en/20180331.markdown
diff --git a/data/news/en_US/20180423.markdown b/data/news/en/20180423.markdown
similarity index 100%
rename from data/news/en_US/20180423.markdown
rename to data/news/en/20180423.markdown
diff --git a/data/news/en_US/20180501.markdown b/data/news/en/20180501.markdown
similarity index 100%
rename from data/news/en_US/20180501.markdown
rename to data/news/en/20180501.markdown
diff --git a/data/news/en_US/20180612.markdown b/data/news/en/20180612.markdown
similarity index 100%
rename from data/news/en_US/20180612.markdown
rename to data/news/en/20180612.markdown
diff --git a/data/news/en_US/20180629.markdown b/data/news/en/20180629.markdown
similarity index 100%
rename from data/news/en_US/20180629.markdown
rename to data/news/en/20180629.markdown
diff --git a/data/news/en_US/20180701.markdown b/data/news/en/20180701.markdown
similarity index 100%
rename from data/news/en_US/20180701.markdown
rename to data/news/en/20180701.markdown
diff --git a/data/news/en_US/20181023.markdown b/data/news/en/20181023.markdown
similarity index 100%
rename from data/news/en_US/20181023.markdown
rename to data/news/en/20181023.markdown
diff --git a/data/news/en_US/20181024.markdown b/data/news/en/20181024.markdown
similarity index 100%
rename from data/news/en_US/20181024.markdown
rename to data/news/en/20181024.markdown
diff --git a/data/news/en_US/20181118.markdown b/data/news/en/20181118.markdown
similarity index 100%
rename from data/news/en_US/20181118.markdown
rename to data/news/en/20181118.markdown
diff --git a/data/news/en_US/20181210.markdown b/data/news/en/20181210.markdown
similarity index 100%
rename from data/news/en_US/20181210.markdown
rename to data/news/en/20181210.markdown
diff --git a/data/news/en_US/20190306.markdown b/data/news/en/20190306.markdown
similarity index 100%
rename from data/news/en_US/20190306.markdown
rename to data/news/en/20190306.markdown
diff --git a/data/news/en_US/20190413.markdown b/data/news/en/20190413.markdown
similarity index 100%
rename from data/news/en_US/20190413.markdown
rename to data/news/en/20190413.markdown
diff --git a/data/news/en_US/20190513.markdown b/data/news/en/20190513.markdown
similarity index 100%
rename from data/news/en_US/20190513.markdown
rename to data/news/en/20190513.markdown
diff --git a/data/news/en_US/20190603.markdown b/data/news/en/20190603.markdown
similarity index 100%
rename from data/news/en_US/20190603.markdown
rename to data/news/en/20190603.markdown
diff --git a/data/news/en_US/20190608.markdown b/data/news/en/20190608.markdown
similarity index 100%
rename from data/news/en_US/20190608.markdown
rename to data/news/en/20190608.markdown
diff --git a/data/news/en_US/20190616.markdown b/data/news/en/20190616.markdown
similarity index 100%
rename from data/news/en_US/20190616.markdown
rename to data/news/en/20190616.markdown
diff --git a/data/news/en_US/20190630.markdown b/data/news/en/20190630.markdown
similarity index 100%
rename from data/news/en_US/20190630.markdown
rename to data/news/en/20190630.markdown
diff --git a/data/news/en_US/20190728.markdown b/data/news/en/20190728.markdown
similarity index 100%
rename from data/news/en_US/20190728.markdown
rename to data/news/en/20190728.markdown
diff --git a/data/news/en_US/20190904.markdown b/data/news/en/20190904.markdown
similarity index 100%
rename from data/news/en_US/20190904.markdown
rename to data/news/en/20190904.markdown
diff --git a/data/news/en_US/20190912.markdown b/data/news/en/20190912.markdown
similarity index 100%
rename from data/news/en_US/20190912.markdown
rename to data/news/en/20190912.markdown
diff --git a/data/news/en_US/20190913.markdown b/data/news/en/20190913.markdown
similarity index 100%
rename from data/news/en_US/20190913.markdown
rename to data/news/en/20190913.markdown
diff --git a/data/news/en_US/20190917.markdown b/data/news/en/20190917.markdown
similarity index 100%
rename from data/news/en_US/20190917.markdown
rename to data/news/en/20190917.markdown
diff --git a/data/news/en_US/20190919.markdown b/data/news/en/20190919.markdown
similarity index 100%
rename from data/news/en_US/20190919.markdown
rename to data/news/en/20190919.markdown
diff --git a/data/news/en_US/20191013.markdown b/data/news/en/20191013.markdown
similarity index 100%
rename from data/news/en_US/20191013.markdown
rename to data/news/en/20191013.markdown
diff --git a/data/news/en_US/20191217.markdown b/data/news/en/20191217.markdown
similarity index 100%
rename from data/news/en_US/20191217.markdown
rename to data/news/en/20191217.markdown
diff --git a/data/news/en_US/20200131.markdown b/data/news/en/20200131.markdown
similarity index 100%
rename from data/news/en_US/20200131.markdown
rename to data/news/en/20200131.markdown
diff --git a/data/news/en_US/20200222.markdown b/data/news/en/20200222.markdown
similarity index 100%
rename from data/news/en_US/20200222.markdown
rename to data/news/en/20200222.markdown
diff --git a/data/news/en_US/20200331.markdown b/data/news/en/20200331.markdown
similarity index 100%
rename from data/news/en_US/20200331.markdown
rename to data/news/en/20200331.markdown
diff --git a/data/news/en_US/20200430.markdown b/data/news/en/20200430.markdown
similarity index 100%
rename from data/news/en_US/20200430.markdown
rename to data/news/en/20200430.markdown
diff --git a/data/news/en_US/20200504.markdown b/data/news/en/20200504.markdown
similarity index 100%
rename from data/news/en_US/20200504.markdown
rename to data/news/en/20200504.markdown
diff --git a/data/news/en_US/20200514.markdown b/data/news/en/20200514.markdown
similarity index 100%
rename from data/news/en_US/20200514.markdown
rename to data/news/en/20200514.markdown
diff --git a/data/news/en_US/20200521.markdown b/data/news/en/20200521.markdown
similarity index 100%
rename from data/news/en_US/20200521.markdown
rename to data/news/en/20200521.markdown
diff --git a/data/news/en_US/20200524.markdown b/data/news/en/20200524.markdown
similarity index 100%
rename from data/news/en_US/20200524.markdown
rename to data/news/en/20200524.markdown
diff --git a/data/news/en_US/20200622.markdown b/data/news/en/20200622.markdown
similarity index 100%
rename from data/news/en_US/20200622.markdown
rename to data/news/en/20200622.markdown
diff --git a/data/news/en_US/20200817.markdown b/data/news/en/20200817.markdown
similarity index 100%
rename from data/news/en_US/20200817.markdown
rename to data/news/en/20200817.markdown
diff --git a/data/news/en_US/20200820.markdown b/data/news/en/20200820.markdown
similarity index 100%
rename from data/news/en_US/20200820.markdown
rename to data/news/en/20200820.markdown
diff --git a/data/news/en_US/20200823.markdown b/data/news/en/20200823.markdown
similarity index 100%
rename from data/news/en_US/20200823.markdown
rename to data/news/en/20200823.markdown
diff --git a/data/news/en_US/20200825.markdown b/data/news/en/20200825.markdown
similarity index 100%
rename from data/news/en_US/20200825.markdown
rename to data/news/en/20200825.markdown
diff --git a/data/news/en_US/20200830.markdown b/data/news/en/20200830.markdown
similarity index 100%
rename from data/news/en_US/20200830.markdown
rename to data/news/en/20200830.markdown
diff --git a/data/news/en_US/20200906.markdown b/data/news/en/20200906.markdown
similarity index 100%
rename from data/news/en_US/20200906.markdown
rename to data/news/en/20200906.markdown
diff --git a/data/news/en_US/20200927.markdown b/data/news/en/20200927.markdown
similarity index 100%
rename from data/news/en_US/20200927.markdown
rename to data/news/en/20200927.markdown
diff --git a/data/news/es_ES/.gitignore b/data/news/es/.gitignore
similarity index 100%
rename from data/news/es_ES/.gitignore
rename to data/news/es/.gitignore
diff --git a/data/news/fr_FR/.gitignore b/data/news/fr/.gitignore
similarity index 100%
rename from data/news/fr_FR/.gitignore
rename to data/news/fr/.gitignore
diff --git a/data/news/it_IT/.gitignore b/data/news/it/.gitignore
similarity index 100%
rename from data/news/it_IT/.gitignore
rename to data/news/it/.gitignore
diff --git a/data/news/pt_BR/.gitignore b/data/news/pt-BR/.gitignore
similarity index 100%
rename from data/news/pt_BR/.gitignore
rename to data/news/pt-BR/.gitignore
diff --git a/data/news/ru_RU/.gitignore b/data/news/ru/.gitignore
similarity index 100%
rename from data/news/ru_RU/.gitignore
rename to data/news/ru/.gitignore
Commit: e483873d57f45b2cbd6910f229fa8bf18fb79647
https://github.com/scummvm/scummvm-web/commit/e483873d57f45b2cbd6910f229fa8bf18fb79647
Author: Mataniko (mataniko at gmail.com)
Date: 2020-09-29T16:08:34-04:00
Commit Message:
WEB: Remove the lang cookie and leverage the url path instead
Changed paths:
include/Constants.php
include/Controller.php
include/LocalizationUtils.php
include/XMLParser.php
public_html/index.php
templates/components/lang_menu.tpl
templates/components/menu_group.tpl
templates/pages/index.tpl
diff --git a/include/Constants.php b/include/Constants.php
index 1fc1d453..eed1fb3b 100644
--- a/include/Constants.php
+++ b/include/Constants.php
@@ -45,7 +45,7 @@ class Constants
define('DIR_SCREENSHOTS', 'data/screenshots/');
/* Locale */
- define('DEFAULT_LOCALE', 'en_US');
+ define('DEFAULT_LOCALE', 'en');
/* Downloads */
define('DOWNLOADS_URL', '/frs/scummvm/{$release}/');
diff --git a/include/Controller.php b/include/Controller.php
index f09cb1fc..73ae47b3 100644
--- a/include/Controller.php
+++ b/include/Controller.php
@@ -65,8 +65,8 @@ class Controller
}
// Construct lang URL
- $pageurl = preg_replace('/\?lang=[a-zA-Z_]*$/', '', $_SERVER['REQUEST_URI']);
-
+ $langs = join("|", array_keys($available_languages));
+ $pageurl = preg_replace("/\/($langs)/i", '', $_SERVER['REQUEST_URI']);
/* Check RTL */
$rtl = $this->isRtl($available_languages[$lang]);
@@ -78,6 +78,7 @@ class Controller
'menus' => $menus,
'pageurl' => $pageurl,
'available_languages' => $available_languages,
+ 'lang' => $lang === DEFAULT_LOCALE ? '' : $lang,
'rtl' => $rtl,
);
$this->smarty->assign($vars);
diff --git a/include/LocalizationUtils.php b/include/LocalizationUtils.php
index fe4ed552..32957d43 100644
--- a/include/LocalizationUtils.php
+++ b/include/LocalizationUtils.php
@@ -74,7 +74,7 @@ class LocalizationUtils
}
// Special handling of french colon character
- if ($lang === 'fr_FR') {
+ if ($lang === 'fr') {
$content = preg_replace_callback(
"/(?<=\(http)(.*?)(?=\))/u",
function ($matches) {
diff --git a/include/XMLParser.php b/include/XMLParser.php
index 91e3e182..17eed2a7 100644
--- a/include/XMLParser.php
+++ b/include/XMLParser.php
@@ -55,7 +55,7 @@ class XMLParser
{
global $lang;
- if ($lang != 'en') {
+ if ($lang != DEFAULT_LOCALE) {
$fname = substr($filename, 0, strrpos($filename, '.'));
$fext = strrchr($filename, '.');
diff --git a/public_html/index.php b/public_html/index.php
index 2e9fd6df..f88869ab 100644
--- a/public_html/index.php
+++ b/public_html/index.php
@@ -22,28 +22,17 @@ global $lang, $available_languages;
$languages = array_slice(scandir(DIR_LANG),2);
$available_languages = [];
foreach ($languages as $l) {
- if (\in_array($l, ['pt_PT', 'pt_BR'])) {
- $available_languages[$l] = \locale_get_display_name($l, $l);
- } else {
- $available_languages[$l] = \locale_get_display_language($l, $l);
- }
+ if ($lang === DEFAULT_LOCALE) {
+ continue;
+ }
+ $available_languages[$l] = \locale_get_display_name($l, $l);
}
-if (!empty($_GET['lang'])) {
- $lang = $_GET['lang'];
- $cookie_options = array (
- 'expires' => time()+86400,
- 'path' => '/',
- 'domain' => 'www.scummvm.org',
- 'secure' => true,
- 'samesite' => 'None'
- );
- setcookie("lang", $lang, $cookie_options);
-} elseif (!empty($_COOKIE['lang'])) {
- $lang = $_COOKIE['lang'];
-} elseif (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
- $lang = locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE']);
+$langs = join("|", array_keys($available_languages));
+$langMatches = [];
+if (\preg_match("/^\/($langs)\//i", $_SERVER['REQUEST_URI'], $langMatches)) {
+ $lang = $langMatches[1];
}
if (!array_key_exists($lang, $available_languages)) {
@@ -62,46 +51,50 @@ if (!is_writeable(SMARTY_DIR_COMPILE)) {
}
/* Exception handling. */
-set_exception_handler(array('ScummVM\ExceptionHandler', 'handleException'));
+// set_exception_handler(array('ScummVM\ExceptionHandler', 'handleException'));
/* Page mapping. */
$pages = array(
- '/compatibility' => '\ScummVM\Pages\CompatibilityPage',
- '/compatibility/[cId:version]' => '\ScummVM\Pages\CompatibilityPage',
- '/compatibility/[cId:version]/[a:game]' => '\ScummVM\Pages\CompatibilityPage',
- '/contact' => '\ScummVM\Pages\ContactPage',
- '/credits' => '\ScummVM\Pages\CreditsPage',
- '/demos' => '\ScummVM\Pages\DemosPage',
- '/documentation' => '\ScummVM\Pages\DocumentationPage',
- '/downloads' => '\ScummVM\Pages\DownloadsPage',
- '/games' => '\ScummVM\Pages\GamesPage',
- '/faq' => '\ScummVM\Pages\FAQPage',
- '/feeds' => '\ScummVM\Pages\FeedsPage',
- '/feeds/[a:type]' => '\ScummVM\Pages\FeedsPage',
- '/links' => '\ScummVM\Pages\LinksPage',
- '/' => '\ScummVM\Pages\NewsPage',
- '/news' => '\ScummVM\Pages\NewsPage',
- '/news/[a:date]' => '\ScummVM\Pages\NewsPage',
- '/press' => '\ScummVM\Pages\PressPage',
- '/presssnowberry' => '\ScummVM\Pages\PressSnowberryPage', // HACK
- '/screenshots' => '\ScummVM\Pages\ScreenshotsPage',
- '/screenshots/[a:category]' => '\ScummVM\Pages\ScreenshotsPage',
- '/screenshots/[a:category]/[:game]' => '\ScummVM\Pages\ScreenshotsPage',
- '/subprojects' => '\ScummVM\Pages\SubprojectsPage',
- '/sponsors' => '\ScummVM\Pages\SponsorsPage',
+ 'compatibility' => '\ScummVM\Pages\CompatibilityPage',
+ 'compatibility/[cId:version]' => '\ScummVM\Pages\CompatibilityPage',
+ 'compatibility/[cId:version]/[a:game]' => '\ScummVM\Pages\CompatibilityPage',
+ 'contact' => '\ScummVM\Pages\ContactPage',
+ 'credits' => '\ScummVM\Pages\CreditsPage',
+ 'demos' => '\ScummVM\Pages\DemosPage',
+ 'documentation' => '\ScummVM\Pages\DocumentationPage',
+ 'downloads' => '\ScummVM\Pages\DownloadsPage',
+ 'games' => '\ScummVM\Pages\GamesPage',
+ 'faq' => '\ScummVM\Pages\FAQPage',
+ 'feeds' => '\ScummVM\Pages\FeedsPage',
+ 'feeds/[a:type]' => '\ScummVM\Pages\FeedsPage',
+ 'links' => '\ScummVM\Pages\LinksPage',
+ '' => '\ScummVM\Pages\NewsPage',
+ 'news' => '\ScummVM\Pages\NewsPage',
+ 'news/[a:date]' => '\ScummVM\Pages\NewsPage',
+ 'press' => '\ScummVM\Pages\PressPage',
+ 'presssnowberry' => '\ScummVM\Pages\PressSnowberryPage', // HACK
+ 'screenshots' => '\ScummVM\Pages\ScreenshotsPage',
+ 'screenshots/[a:category]' => '\ScummVM\Pages\ScreenshotsPage',
+ 'screenshots/[a:category]/[:game]' => '\ScummVM\Pages\ScreenshotsPage',
+ 'subprojects' => '\ScummVM\Pages\SubprojectsPage',
+ 'sponsors' => '\ScummVM\Pages\SponsorsPage',
);
$router = new \AltoRouter();
-// Custom match for Compatability ID.
-$router->addMatchTypes(array('cId' => "dev|[\d\.]+([rc\d]+)?"));
+// Custom match for Compatibility ID.
+$router->addMatchTypes([
+ 'cId' => "dev|[\d\.]+([rc\d]+)?",
+ 'lang' => \join("|", array_keys(array_change_key_case($available_languages, CASE_LOWER)))
+]);
foreach ($pages as $key => $value) {
- $router->map('GET', $key, $value);
- $router->map('GET', $key . '/', $value);
+ $router->map('GET', "/[lang:lang]?/$key", $value);
+ $router->map('GET', "/[lang:lang]?/$key/", $value);
}
$match = $router->match(strtolower($_SERVER['REQUEST_URI']));
+
if ($match) {
$page = new $match['target']();
return $page->index($match['params']);
diff --git a/templates/components/lang_menu.tpl b/templates/components/lang_menu.tpl
index 8c77a2bd..1235b5bf 100644
--- a/templates/components/lang_menu.tpl
+++ b/templates/components/lang_menu.tpl
@@ -3,9 +3,12 @@
<dt>
<label for="menu-lang">Language</label>
</dt>
+ <dd>
+ <span class="bullet"></span><a href="{$pageurl}">English</a>
+ </dd>
{foreach from=$available_languages key=key item=item}
<dd>
- <span class="bullet"></span><a href="{$pageurl}?lang={$key}">{$item|escape}</a>
+ <span class="bullet"></span><a href="{$key}{$pageurl}">{$item}</a>
</dd>
{/foreach}
</dl>
diff --git a/templates/components/menu_group.tpl b/templates/components/menu_group.tpl
index 68d771f1..4dc48690 100644
--- a/templates/components/menu_group.tpl
+++ b/templates/components/menu_group.tpl
@@ -4,6 +4,6 @@
<label for="{$menu->getClass()}">{eval var=$menu->getName()}</label>
</dt>
{foreach from=$menu->getEntries() key=text item=url}
- <dd><span class="bullet"></span><a href="{eval var=$url}">{eval var=$text}</a></dd>
+ <dd><span class="bullet"></span><a href="{$lang}{eval var=$url}">{eval var=$text}</a></dd>
{/foreach}
</dl>
diff --git a/templates/pages/index.tpl b/templates/pages/index.tpl
index d37e4e6c..371074ba 100644
--- a/templates/pages/index.tpl
+++ b/templates/pages/index.tpl
@@ -4,29 +4,32 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="referrer" content="no-referrer">
- <base href="{$baseurl}">
- <link rel="alternate" type="application/atom+xml" title="{#indexAtomFeed#}" href="{$baseurl}feeds/atom/">
+ <base href="{$baseurl}">
+ <link rel="alternate" type="application/atom+xml" title="{#indexAtomFeed#}" href="{$baseurl}feeds/atom/">
<link rel="alternate" type="application/rss+xml" title="{#indexRSSFeed#}" href="{$baseurl}feeds/rss/">
<title>ScummVM :: {$title}</title>
- <!-- Favicon -->
- <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=oLBEjaJ9ag">
- <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png?v=oLBEjaJ9ag">
- <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png?v=oLBEjaJ9ag">
- <link rel="manifest" href="/site.webmanifest?v=oLBEjaJ9ag">
- <link rel="mask-icon" href="/safari-pinned-tab.svg?v=oLBEjaJ9ag" color="#046c00">
- <link rel="shortcut icon" href="/favicon.ico?v=oLBEjaJ9ag">
- <meta name="apple-mobile-web-app-title" content="ScummVM">
- <meta name="application-name" content="ScummVM">
- <meta name="msapplication-TileColor" content="#cc6600">
- <meta name="theme-color" content="#cc6600">
- <!-- OpenGraph -->
- <meta property="og:image:width" content="1200">
- <meta property="og:image:height" content="630">
- <meta property="og:title" content="ScummVM">
- <meta property="og:description" content="ScummVM is a collection of game engines for playing classic graphical RPGs and point-and-click adventure games on modern hardware.">
- <meta property="og:url" content="https://www.scummvm.org">
- <meta property="og:image" content="https://www.scummvm.org/images/og-image.jpg">
-
+ <!-- Favicon -->
+ <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=oLBEjaJ9ag">
+ <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png?v=oLBEjaJ9ag">
+ <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png?v=oLBEjaJ9ag">
+ <link rel="manifest" href="/site.webmanifest?v=oLBEjaJ9ag">
+ <link rel="mask-icon" href="/safari-pinned-tab.svg?v=oLBEjaJ9ag" color="#046c00">
+ <link rel="shortcut icon" href="/favicon.ico?v=oLBEjaJ9ag">
+ <meta name="apple-mobile-web-app-title" content="ScummVM">
+ <meta name="application-name" content="ScummVM">
+ <meta name="msapplication-TileColor" content="#cc6600">
+ <meta name="theme-color" content="#cc6600">
+ <!-- OpenGraph -->
+ <meta property="og:image:width" content="1200">
+ <meta property="og:image:height" content="630">
+ <meta property="og:title" content="ScummVM">
+ <meta property="og:description" content="ScummVM is a collection of game engines for playing classic graphical RPGs and point-and-click adventure games on modern hardware.">
+ <meta property="og:url" content="https://www.scummvm.org">
+ <meta property="og:image" content="https://www.scummvm.org/images/og-image.jpg">
+ <!-- Translations -->
+ {foreach from=$available_languages key=key item=item}
+ <link rel="alternate" hreflang="{$key}" href="{$baseurl}{$key}{$pageurl}">
+ {/foreach}
{* Cache bust CSS if making major changes *}
{$css = "2.0.0"}
<link rel="stylesheet" href="{$baseurl}css/main_{($rtl) ? 'rtl' : 'ltr'}.css?v={$css}">
Commit: 053bad7b115c39a474215b3fc6efc3229104106d
https://github.com/scummvm/scummvm-web/commit/053bad7b115c39a474215b3fc6efc3229104106d
Author: Mataniko (mataniko at gmail.com)
Date: 2020-09-29T16:08:34-04:00
Commit Message:
WEB: Fix screenshots in development
Changed paths:
public_html/index.php
diff --git a/public_html/index.php b/public_html/index.php
index f88869ab..c96ac8b9 100644
--- a/public_html/index.php
+++ b/public_html/index.php
@@ -4,9 +4,11 @@ namespace ScummVM;
/**
* Development only
* Don't re-route static file requests to index.php
+ * And change directory context to public_html
*/
if (isset($_SERVER['SERVER_SOFTWARE']) &&
\preg_match("/PHP [\d\.]+ Development Server/",$_SERVER['SERVER_SOFTWARE'])) {
+ chdir('public_html');
if (\preg_match('/\.(?:png|jpg|jpeg|gif|css|js)/', $_SERVER["REQUEST_URI"])) {
return false;
}
@@ -22,7 +24,7 @@ global $lang, $available_languages;
$languages = array_slice(scandir(DIR_LANG),2);
$available_languages = [];
foreach ($languages as $l) {
- if ($lang === DEFAULT_LOCALE) {
+ if ($l === DEFAULT_LOCALE) {
continue;
}
Commit: 89cf4801e0f2b33b9d5e7378e3c7d64b8d0eeb1f
https://github.com/scummvm/scummvm-web/commit/89cf4801e0f2b33b9d5e7378e3c7d64b8d0eeb1f
Author: Mataniko (mataniko at gmail.com)
Date: 2020-09-29T16:08:34-04:00
Commit Message:
WEB: Fix menu links for localized pages
Changed paths:
templates/components/menu_group.tpl
diff --git a/templates/components/menu_group.tpl b/templates/components/menu_group.tpl
index 4dc48690..68594022 100644
--- a/templates/components/menu_group.tpl
+++ b/templates/components/menu_group.tpl
@@ -4,6 +4,6 @@
<label for="{$menu->getClass()}">{eval var=$menu->getName()}</label>
</dt>
{foreach from=$menu->getEntries() key=text item=url}
- <dd><span class="bullet"></span><a href="{$lang}{eval var=$url}">{eval var=$text}</a></dd>
+ <dd><span class="bullet"></span><a href="{eval var=$url|regex_replace:"/^\//":"$lang/"}">{eval var=$text}</a></dd>
{/foreach}
</dl>
Commit: cae79c85e33f83913d83ccee431ce9002e69f7bc
https://github.com/scummvm/scummvm-web/commit/cae79c85e33f83913d83ccee431ce9002e69f7bc
Author: Mataniko (mataniko at gmail.com)
Date: 2020-09-29T16:08:34-04:00
Commit Message:
L10N: Add new smarty modifier function to add lang url path
Changed paths:
include/Controller.php
public_html/index.php
diff --git a/include/Controller.php b/include/Controller.php
index 73ae47b3..49b23088 100644
--- a/include/Controller.php
+++ b/include/Controller.php
@@ -53,6 +53,7 @@ class Controller
/* Give Smarty-template access to date(). */
$this->smarty->registerPlugin('modifier', 'date_localized', array(&$this, 'dateLocalizedSmartyModifier'));
+ $this->smarty->registerPlugin('modifier', 'lang', array(&$this, 'langModifier'));
$this->css_files = array();
$this->js_files = array();
@@ -78,7 +79,7 @@ class Controller
'menus' => $menus,
'pageurl' => $pageurl,
'available_languages' => $available_languages,
- 'lang' => $lang === DEFAULT_LOCALE ? '' : $lang,
+ 'lang' => $lang,
'rtl' => $rtl,
);
$this->smarty->assign($vars);
@@ -104,6 +105,27 @@ class Controller
return $string;
}
+ public function langModifier($path) {
+ global $lang;
+ if ($lang == DEFAULT_LOCALE || !$lang) {
+ return $path;
+ }
+
+ // Absolute path (https://www.scummvm.org/*)
+ $host = $_SERVER['HTTP_HOST'];
+ if (\preg_match("/$host/i", $path)) {
+ return preg_replace("/$host(\/|$)?/i", "$host/$lang", $path);
+ }
+
+ // Relative path (/screenshots/)
+ if (\preg_match("/^\//", $path)) {
+ return "/$lang" . $path;
+ }
+
+ // Can't replace
+ return $path;
+ }
+
/**
* Formating of dateAs, registered as a modifier for Smarty templates.
*/
diff --git a/public_html/index.php b/public_html/index.php
index c96ac8b9..c936f962 100644
--- a/public_html/index.php
+++ b/public_html/index.php
@@ -24,16 +24,13 @@ global $lang, $available_languages;
$languages = array_slice(scandir(DIR_LANG),2);
$available_languages = [];
foreach ($languages as $l) {
- if ($l === DEFAULT_LOCALE) {
- continue;
- }
-
$available_languages[$l] = \locale_get_display_name($l, $l);
}
$langs = join("|", array_keys($available_languages));
$langMatches = [];
-if (\preg_match("/^\/($langs)\//i", $_SERVER['REQUEST_URI'], $langMatches)) {
+
+if (\preg_match("/^\/($langs)(\/|$)/i", $_SERVER['REQUEST_URI'], $langMatches)) {
$lang = $langMatches[1];
}
Commit: a656fe3c7169dfd2f409f3132fbe5afaca6ce03d
https://github.com/scummvm/scummvm-web/commit/a656fe3c7169dfd2f409f3132fbe5afaca6ce03d
Author: Mataniko (mataniko at gmail.com)
Date: 2020-09-29T16:08:34-04:00
Commit Message:
L10N: Update templates to use new lang modifier
Changed paths:
data/menus.yaml
templates/base/base.tpl
templates/components/compatibility_details.tpl
templates/components/lang_menu.tpl
templates/components/list_items.tpl
templates/components/menu_group.tpl
templates/layout/header.tpl
templates/pages/compatibility.tpl
templates/pages/credits.tpl
templates/pages/downloads.tpl
templates/pages/faq.tpl
templates/pages/game_demos.tpl
templates/pages/games.tpl
templates/pages/index.tpl
templates/pages/news.tpl
templates/pages/press_snowberry.tpl
templates/pages/screenshots.tpl
templates/pages/screenshots_category.tpl
diff --git a/data/menus.yaml b/data/menus.yaml
index 968c3708..003c29bc 100644
--- a/data/menus.yaml
+++ b/data/menus.yaml
@@ -2,7 +2,7 @@
class: menu-main
links:
- name: '{#menuMainHome#}'
- href: '{$baseurl}'
+ href: '{$baseurl|lang}'
- name: '{#menuMainScreenshots#}'
href: /screenshots/
- name: '{#menuMainForums#}'
diff --git a/templates/base/base.tpl b/templates/base/base.tpl
index 446f74ab..5402ac2b 100644
--- a/templates/base/base.tpl
+++ b/templates/base/base.tpl
@@ -3,10 +3,10 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
- <base href="{$baseurl}">
- <link rel="stylesheet" href="{$baseurl}css/main.css">
- <link rel="alternate" type="application/atom+xml" title="{#indexAtomFeed#}" href="{$baseurl}feeds/atom/">
- <link rel="alternate" type="application/rss+xml" title="{#indexRSSFeed#}" href="{$baseurl}feeds/rss/">
+ <base href="{$baseurl|lang}">
+ <link rel="stylesheet" href="/css/main.css">
+ <link rel="alternate" type="application/atom+xml" title="{#indexAtomFeed#}" href="{$baseurl|lang}feeds/atom/">
+ <link rel="alternate" type="application/rss+xml" title="{#indexRSSFeed#}" href="{$baseurl|lang}feeds/rss/">
<link rel="apple-touch-icon" href="/images/scummvm.png">
<title>ScummVM :: {block name=title}{/block}</title>
</head>
diff --git a/templates/components/compatibility_details.tpl b/templates/components/compatibility_details.tpl
index eebef523..183b8e4d 100644
--- a/templates/components/compatibility_details.tpl
+++ b/templates/components/compatibility_details.tpl
@@ -27,7 +27,7 @@
</tbody>
</table>
<p class="bottom-link">
- <a href="/compatibility/{$version}/">{#compatibilityDetailsBack#}</a>
+ <a href="{'/compatibility/'|lang}{$version}/">{#compatibilityDetailsBack#}</a>
</p>
{/capture}
diff --git a/templates/components/lang_menu.tpl b/templates/components/lang_menu.tpl
index 1235b5bf..8438fe3f 100644
--- a/templates/components/lang_menu.tpl
+++ b/templates/components/lang_menu.tpl
@@ -3,12 +3,15 @@
<dt>
<label for="menu-lang">Language</label>
</dt>
- <dd>
- <span class="bullet"></span><a href="{$pageurl}">English</a>
- </dd>
{foreach from=$available_languages key=key item=item}
+ {if $key != $lang}
<dd>
- <span class="bullet"></span><a href="{$key}{$pageurl}">{$item}</a>
+ {if $key == $smarty.const.DEFAULT_LOCALE}
+ <span class="bullet"></span><a href="{$pageurl}">{$item}</a>
+ {else}
+ <span class="bullet"></span><a href="/{$key}{$pageurl}">{$item}</a>
+ {/if}
</dd>
+ {/if}
{/foreach}
</dl>
diff --git a/templates/components/list_items.tpl b/templates/components/list_items.tpl
index 6fe0b7fb..593c3ea9 100644
--- a/templates/components/list_items.tpl
+++ b/templates/components/list_items.tpl
@@ -39,7 +39,7 @@
{elseif $item instanceof ScummVM\Objects\Screenshot}
<li class="file">
<span class="sprite-games-{$item->getCategory()} sprite"></span>
- <a href="/screenshots/{$arr.category}/{$item->getCategory()}/">{$item->getName()}</a>
+ <a href="{'/screenshots/'|lang}{$arr.category}/{$item->getCategory()}/">{$item->getName()}</a>
<span class="green">({$item->getFiles()|@count} shots)</span>
</li>
{/if}
diff --git a/templates/components/menu_group.tpl b/templates/components/menu_group.tpl
index 68594022..5d64cc30 100644
--- a/templates/components/menu_group.tpl
+++ b/templates/components/menu_group.tpl
@@ -4,6 +4,6 @@
<label for="{$menu->getClass()}">{eval var=$menu->getName()}</label>
</dt>
{foreach from=$menu->getEntries() key=text item=url}
- <dd><span class="bullet"></span><a href="{eval var=$url|regex_replace:"/^\//":"$lang/"}">{eval var=$text}</a></dd>
+ <dd><span class="bullet"></span><a href="{eval var=$url|lang}">{eval var=$text}</a></dd>
{/foreach}
</dl>
diff --git a/templates/layout/header.tpl b/templates/layout/header.tpl
index 516d49b0..3ab2453a 100644
--- a/templates/layout/header.tpl
+++ b/templates/layout/header.tpl
@@ -7,7 +7,7 @@
<div class="row topper">
<div class="col-1-2 col-sm-1">
<img class="logo maniac hide-small" src="/images/maniac-half.png" alt="Maniac Mansion kids">
- <a href="{$baseurl}"><img class="logo" src="/images/scummvm_logo.png" alt="{#indexLogo#}"></a>
+ <a href="{$baseurl|lang}"><img class="logo" src="/images/scummvm_logo.png" alt="{#indexLogo#}"></a>
</div>
<div class="col-1-2 hide-small float_right">
<span class="scummvm float_right">Script Creation Utility for Maniac Mansion Virtual Machine</span>
diff --git a/templates/pages/compatibility.tpl b/templates/pages/compatibility.tpl
index 973867f9..09a2eaec 100644
--- a/templates/pages/compatibility.tpl
+++ b/templates/pages/compatibility.tpl
@@ -10,7 +10,7 @@
{#compatibilityDevContent#}
<select name="versions" class="version-select">
{foreach from=$versions item=ver}
- <option {($version==$ver) ? 'selected' : ''} value="/compatibility/{$ver}/">{$ver}</option>
+ <option {($version==$ver) ? 'selected' : ''} value="{'/compatibility/'|lang}{$ver}/">{$ver}</option>
{/foreach}
</select>)
</p>
@@ -71,7 +71,7 @@
{assign var="pct_class" value=$support_level_class.$x}
{assign var="support_level" value=$support_level_header.$x}
<tr class="color{cycle values='2,0'}">
- <td class="gameFullName"><a href="/compatibility/{$version}/{$game->getGame()->getId()}/">{$game->getGame()->getName()}</a></td>
+ <td class="gameFullName"><a href="{'/compatibility/'|lang}{$version}/{$game->getGame()->getId()}/">{$game->getGame()->getName()}</a></td>
<td class="gameShortName">{$game->getGame()->getId()}</td>
<td class="gameDatafiles">
{if $game->getDatafiles()}
diff --git a/templates/pages/credits.tpl b/templates/pages/credits.tpl
index ef19a3c1..12af2d86 100644
--- a/templates/pages/credits.tpl
+++ b/templates/pages/credits.tpl
@@ -3,18 +3,18 @@
<div class="navigation col-1-1">
<h4 class="subhead">{#screenshotsNavigation#}</h4>
<ul>
- {foreach from=$credits item=csection}
+ {foreach from=$credits item=csection}
{if $csection->getSubsections()|@count > 0}
{foreach from=$csection->getSubsections() item=subcsection}
- <li><a href="/credits/#{$subcsection->getAnchor()}">{$subcsection->getTitle()}</a></li>
- {/foreach}
+ <li><a href="{'/credits/'|lang}#{$subcsection->getAnchor()}">{$subcsection->getTitle()}</a></li>
+ {/foreach}
{else}
- <li><a href="/credits/#{$csection->getAnchor()}">{$csection->getTitle()}</a></li>
- {/if}
- {/foreach}
+ <li><a href="{'/credits/'|lang}#{$csection->getAnchor()}">{$csection->getTitle()}</a></li>
+ {/if}
+ {/foreach}
</ul>
- </div>
-</div>
+ </div>
+</div>
{/capture}
{foreach from=$credits item=csection name=credits}
@@ -49,5 +49,5 @@
{else}
{include file="components/box.tpl" head=$csection->getTitle() id=$csection->getAnchor() content=$smarty.capture.content}
{/if}
-
+
{/foreach}
diff --git a/templates/pages/downloads.tpl b/templates/pages/downloads.tpl
index b90332fa..22e4447b 100644
--- a/templates/pages/downloads.tpl
+++ b/templates/pages/downloads.tpl
@@ -4,7 +4,7 @@
<h4 class="subhead">{#downloadsHeader#}</h4>
<ul>
{foreach from=$sections item=arr}
- <li><a href="/downloads/#{$arr.anchor}">{eval var=$arr.title}</a></li>
+ <li><a href="{'/downloads'/|lang}#{$arr.anchor}">{eval var=$arr.title}</a></li>
{/foreach}
</ul>
</div>
diff --git a/templates/pages/faq.tpl b/templates/pages/faq.tpl
index 8e6daafc..88c54687 100644
--- a/templates/pages/faq.tpl
+++ b/templates/pages/faq.tpl
@@ -3,12 +3,12 @@
<dl>
{foreach from=$contents item=section name='toc_loop'}
{assign var='toc_num' value=$smarty.foreach.toc_loop.iteration}
- <dt>{$toc_num}. <a href="/faq/#{$toc_num}">{$section->getTitle()}</a></dt>
+ <dt>{$toc_num}. <a href="{'/faq'/|lang}#{$toc_num}">{$section->getTitle()}</a></dt>
<dd>
<dl>
{foreach from=$section->getTOC() key=href item=name name='toc_section_loop'}
{assign var='toc_section_num' value=$smarty.foreach.toc_section_loop.iteration}
- <dt>{$toc_num}.{$toc_section_num}. <a href="/faq/#{$toc_num}_{$toc_section_num}">{$name}</a></dt>
+ <dt>{$toc_num}.{$toc_section_num}. <a href="{'/faq'/|lang}#{$toc_num}_{$toc_section_num}">{$name}</a></dt>
{/foreach}
</dl>
</dd>
@@ -24,7 +24,7 @@
<dl>
{foreach from=$section->getTOC() key=href item=name name='question_loop'}
{assign var='question_num' value=$smarty.foreach.question_loop.iteration}
- <dt>{$section_num}.{$question_num}. <a href="/faq/#{$section_num}_{$question_num}">{$name}</a></dt>
+ <dt>{$section_num}.{$question_num}. <a href="{$lang}/faq/#{$section_num}_{$question_num}">{$name}</a></dt>
{/foreach}
</dl>
{foreach from=$section->getEntries() item=entry name='entry_loop'}
diff --git a/templates/pages/game_demos.tpl b/templates/pages/game_demos.tpl
index 181ad359..1c513623 100644
--- a/templates/pages/game_demos.tpl
+++ b/templates/pages/game_demos.tpl
@@ -6,7 +6,7 @@
<h4 class="subhead">{#gamesDemosHeading#}</h4>
<ul>
{foreach $demos $group}
- <li><a href="/demos/#{$group.href}">{$group.name}</a></li>
+ <li><a href="{'/demos/'|lang}#{$group.href}">{$group.name}</a></li>
{/foreach}
</ul>
</div>
diff --git a/templates/pages/games.tpl b/templates/pages/games.tpl
index 5a7eb85b..885e0083 100644
--- a/templates/pages/games.tpl
+++ b/templates/pages/games.tpl
@@ -4,7 +4,7 @@
<h4 class="subhead">{#gamesHeader#}</h4>
<ul>
{foreach from=$sections item=arr}
- <li><a href="/games/#{$arr.anchor}">{eval var=$arr.title}</a></li>
+ <li><a href="{'/games/|lang}'#{$arr.anchor}">{eval var=$arr.title}</a></li>
{/foreach}
</ul>
</div>
diff --git a/templates/pages/index.tpl b/templates/pages/index.tpl
index 371074ba..b217b88b 100644
--- a/templates/pages/index.tpl
+++ b/templates/pages/index.tpl
@@ -4,9 +4,9 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="referrer" content="no-referrer">
- <base href="{$baseurl}">
- <link rel="alternate" type="application/atom+xml" title="{#indexAtomFeed#}" href="{$baseurl}feeds/atom/">
- <link rel="alternate" type="application/rss+xml" title="{#indexRSSFeed#}" href="{$baseurl}feeds/rss/">
+ <base href="{$baseurl|lang}">
+ <link rel="alternate" type="application/atom+xml" title="{#indexAtomFeed#}" href="{$baseurl|lang}/feeds/atom/">
+ <link rel="alternate" type="application/rss+xml" title="{#indexRSSFeed#}" href="{$baseurl|lang}/feeds/rss/">
<title>ScummVM :: {$title}</title>
<!-- Favicon -->
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=oLBEjaJ9ag">
@@ -24,18 +24,20 @@
<meta property="og:image:height" content="630">
<meta property="og:title" content="ScummVM">
<meta property="og:description" content="ScummVM is a collection of game engines for playing classic graphical RPGs and point-and-click adventure games on modern hardware.">
- <meta property="og:url" content="https://www.scummvm.org">
+ <meta property="og:url" content="{'https://www.scummvm.org'|lang}">
<meta property="og:image" content="https://www.scummvm.org/images/og-image.jpg">
<!-- Translations -->
{foreach from=$available_languages key=key item=item}
- <link rel="alternate" hreflang="{$key}" href="{$baseurl}{$key}{$pageurl}">
+ {if $lang != $key}
+ <link rel="alternate" hreflang="{$key}" href="{$baseurl}{$key}{$pageurl}">
+ {/if}
{/foreach}
{* Cache bust CSS if making major changes *}
{$css = "2.0.0"}
- <link rel="stylesheet" href="{$baseurl}css/main_{($rtl) ? 'rtl' : 'ltr'}.css?v={$css}">
+ <link rel="stylesheet" href="/css/main_{($rtl) ? 'rtl' : 'ltr'}.css?v={$css}">
{* Page specific, or other extra CSS rules. *}
{foreach from=$css_files item=filename}
- <link rel="stylesheet" href="{$baseurl}css/{$filename}">
+ <link rel="stylesheet" href="/css/{$filename}">
{/foreach}
{if $smarty.cookies.cookie_consent == "true"}
@@ -67,7 +69,7 @@
<header class="site-header">
<div class="logo">
<img class="background hide-small" src="/images/maniac-half.png" alt="Maniac Mansion kids">
- <a href="{$baseurl}">
+ <a href="{$baseurl|lang}">
<img class="foreground" src="/images/scummvm_logo.png" alt="{#indexLogo#}">
</a>
</div>
diff --git a/templates/pages/news.tpl b/templates/pages/news.tpl
index 95cb93b8..4848828e 100644
--- a/templates/pages/news.tpl
+++ b/templates/pages/news.tpl
@@ -20,9 +20,9 @@
{if is_bool($news_archive_link) && $news_archive_link}
<p class="bottom-link">
<span class="feeds float_left">
- <a href="/feeds/atom/">Atom</a> |
- <a href="/feeds/rss/">RSS</a>
+ <a href="{'/feeds/atom/'|lang}">Atom</a> |
+ <a href="{'/feeds/rss/'|lang}">RSS</a>
</span>
- <a href="/news/archive/" class="float_right">{#newsMoreNews#}</a>
+ <a href="{'/news/archive/'|lang}" class="float_right">{#newsMoreNews#}</a>
</p>
{/if}
diff --git a/templates/pages/press_snowberry.tpl b/templates/pages/press_snowberry.tpl
index 6d519622..9cc91f26 100644
--- a/templates/pages/press_snowberry.tpl
+++ b/templates/pages/press_snowberry.tpl
@@ -30,7 +30,7 @@ ScummVM is a program which allows you to run certain classic graphical point-and
</p>
<p>
-More information is available here: <a href="/">http://www.scummvm.org/</a>
+More information is available here: <a href="{'/'|lang}">http://www.scummvm.org/</a>
</p>
<h4>About Gobliiins 4</h4>
diff --git a/templates/pages/screenshots.tpl b/templates/pages/screenshots.tpl
index d4c08b3b..152f2c0a 100644
--- a/templates/pages/screenshots.tpl
+++ b/templates/pages/screenshots.tpl
@@ -4,7 +4,7 @@
<h4 class="subhead">{#screenshotsNavigation#}</h4>
<ul>
{foreach from=$screenshots item=arr}
- <li><a href="/screenshots/#{$arr.category}">{eval var=$arr.title}</a></li>
+ <li><a href="{'/screenshots/'|lang}#{$arr.category}">{eval var=$arr.title}</a></li>
{/foreach}
</ul>
</div>
@@ -17,7 +17,7 @@
{capture "content"}
{foreach from=$screenshots item=arr}
<div class="subhead" id="{$arr.category}">
- <a href="/screenshots/{$arr.category}/">{$arr.title}</a>
+ <a href="{'/screenshots/'|lang}{$arr.category}/">{$arr.title}</a>
</div>
<div class="scr-content scr-content-{$arr.category}">
{include file='components/list_items.tpl' list=$arr.games type='games'}
diff --git a/templates/pages/screenshots_category.tpl b/templates/pages/screenshots_category.tpl
index 2a50bde8..172eebd2 100644
--- a/templates/pages/screenshots_category.tpl
+++ b/templates/pages/screenshots_category.tpl
@@ -6,7 +6,7 @@
{/if}
<div class="gallery">
<div class="row">
- <h3 class="subhead"><a href="/screenshots/{$category}/{$g->getCategory()}/">{$g->getName()}</a></h3>
+ <h3 class="subhead"><a href="{'/screenshots/'|lang}{$category}/{$g->getCategory()}/">{$g->getName()}</a></h3>
{foreach from=$g->getFiles() item=fdata name=game_loop}
<div class="col-1-4 col-md-1">
<div class="card">
@@ -30,9 +30,9 @@
{include file="components/box.tpl" head=#screenshotsCategoryHeading# content=$smarty.capture.content}
{if $game}
- <a href="/screenshots/{$category}/">{#screenshotsCategoryBack#}</a>
+ <a href="{'/screenshots/'|lang}{$category}/">{#screenshotsCategoryBack#}</a>
{else}
- <a href="/screenshots/">{#screenshotsCategoryBack#}</a>
+ <a href="{'/screenshots/'|lang}">{#screenshotsCategoryBack#}</a>
{/if}
<script>
Commit: 6d0899847bb51e9bb92e36ab89147566b6d0fc43
https://github.com/scummvm/scummvm-web/commit/6d0899847bb51e9bb92e36ab89147566b6d0fc43
Author: Mataniko (mataniko at gmail.com)
Date: 2020-09-29T16:08:34-04:00
Commit Message:
WEB: Cache based on locale
Changed paths:
include/Models/BasicModel.php
diff --git a/include/Models/BasicModel.php b/include/Models/BasicModel.php
index ba9a7ed8..f016f45f 100644
--- a/include/Models/BasicModel.php
+++ b/include/Models/BasicModel.php
@@ -22,7 +22,8 @@ abstract class BasicModel
if ($key) {
$key = "_$key";
}
- $cacheKey = str_replace("\\", "_", \get_called_class() . $key);
+ global $lang;
+ $cacheKey = str_replace("\\", "_", \get_called_class() . $key . "_$lang");
self::$cache->set($cacheKey, $data, 3600);
}
@@ -31,7 +32,8 @@ abstract class BasicModel
if ($key) {
$key = "_$key";
}
- $cacheKey = str_replace("\\", "_", \get_called_class() . $key);
+ global $lang;
+ $cacheKey = str_replace("\\", "_", \get_called_class() . $key . "_$lang");
$cachedData = self::$cache->get($cacheKey);
return $cachedData;
}
Commit: 9b79a7590e6015f67f4dbe07ec45e33256409339
https://github.com/scummvm/scummvm-web/commit/9b79a7590e6015f67f4dbe07ec45e33256409339
Author: Mataniko (mataniko at gmail.com)
Date: 2020-09-29T16:08:34-04:00
Commit Message:
L10N: Add backward compatibility support for users with lang params or cookies
Changed paths:
public_html/index.php
diff --git a/public_html/index.php b/public_html/index.php
index c936f962..0b2e9142 100644
--- a/public_html/index.php
+++ b/public_html/index.php
@@ -27,6 +27,18 @@ foreach ($languages as $l) {
$available_languages[$l] = \locale_get_display_name($l, $l);
}
+// Backwards compatibility for lang query param & cookie
+if (!empty($_GET['lang'])) {
+ $lang = $_GET['lang'];
+ $uri = str_replace("?lang=$lang", "", $_SERVER['REQUEST_URI']);
+ header("Location: " . "/$lang" . $uri);
+} elseif (!empty($_COOKIE['lang'])) {
+ $lang = $_COOKIE['lang'];
+ unset($_COOKIE['lang']);
+ setcookie("lang", null, -1);
+ header("Location: " . "/$lang" . $_SERVER['REQUEST_URI']);
+}
+
$langs = join("|", array_keys($available_languages));
$langMatches = [];
Commit: 12965cf65871f9f8779503db4f292bc1e9ace6a9
https://github.com/scummvm/scummvm-web/commit/12965cf65871f9f8779503db4f292bc1e9ace6a9
Author: Mataniko (mataniko at gmail.com)
Date: 2020-09-29T16:08:34-04:00
Commit Message:
WEB: Fix template syntax errors
Changed paths:
templates/pages/downloads.tpl
templates/pages/faq.tpl
templates/pages/games.tpl
diff --git a/templates/pages/downloads.tpl b/templates/pages/downloads.tpl
index 22e4447b..e876ec0c 100644
--- a/templates/pages/downloads.tpl
+++ b/templates/pages/downloads.tpl
@@ -4,7 +4,7 @@
<h4 class="subhead">{#downloadsHeader#}</h4>
<ul>
{foreach from=$sections item=arr}
- <li><a href="{'/downloads'/|lang}#{$arr.anchor}">{eval var=$arr.title}</a></li>
+ <li><a href="{'/downloads/'|lang}#{$arr.anchor}">{eval var=$arr.title}</a></li>
{/foreach}
</ul>
</div>
diff --git a/templates/pages/faq.tpl b/templates/pages/faq.tpl
index 88c54687..d65759d9 100644
--- a/templates/pages/faq.tpl
+++ b/templates/pages/faq.tpl
@@ -3,12 +3,12 @@
<dl>
{foreach from=$contents item=section name='toc_loop'}
{assign var='toc_num' value=$smarty.foreach.toc_loop.iteration}
- <dt>{$toc_num}. <a href="{'/faq'/|lang}#{$toc_num}">{$section->getTitle()}</a></dt>
+ <dt>{$toc_num}. <a href="{'/faq/'|lang}#{$toc_num}">{$section->getTitle()}</a></dt>
<dd>
<dl>
{foreach from=$section->getTOC() key=href item=name name='toc_section_loop'}
{assign var='toc_section_num' value=$smarty.foreach.toc_section_loop.iteration}
- <dt>{$toc_num}.{$toc_section_num}. <a href="{'/faq'/|lang}#{$toc_num}_{$toc_section_num}">{$name}</a></dt>
+ <dt>{$toc_num}.{$toc_section_num}. <a href="{'/faq/'|lang}#{$toc_num}_{$toc_section_num}">{$name}</a></dt>
{/foreach}
</dl>
</dd>
@@ -24,7 +24,7 @@
<dl>
{foreach from=$section->getTOC() key=href item=name name='question_loop'}
{assign var='question_num' value=$smarty.foreach.question_loop.iteration}
- <dt>{$section_num}.{$question_num}. <a href="{$lang}/faq/#{$section_num}_{$question_num}">{$name}</a></dt>
+ <dt>{$section_num}.{$question_num}. <a href="{'/faq/'|lang}#{$section_num}_{$question_num}">{$name}</a></dt>
{/foreach}
</dl>
{foreach from=$section->getEntries() item=entry name='entry_loop'}
diff --git a/templates/pages/games.tpl b/templates/pages/games.tpl
index 885e0083..90a3bffd 100644
--- a/templates/pages/games.tpl
+++ b/templates/pages/games.tpl
@@ -4,7 +4,7 @@
<h4 class="subhead">{#gamesHeader#}</h4>
<ul>
{foreach from=$sections item=arr}
- <li><a href="{'/games/|lang}'#{$arr.anchor}">{eval var=$arr.title}</a></li>
+ <li><a href="{'/games/'|lang}#{$arr.anchor}">{eval var=$arr.title}</a></li>
{/foreach}
</ul>
</div>
Commit: 35039fedb30268601901265fcde2e402d1138c53
https://github.com/scummvm/scummvm-web/commit/35039fedb30268601901265fcde2e402d1138c53
Author: Mataniko (mataniko at gmail.com)
Date: 2020-09-29T16:08:34-04:00
Commit Message:
WEB: Update news and feed templates to use canonical language URLs
Changed paths:
include/Controller.php
templates/pages/feed_atom.tpl
templates/pages/feed_rss.tpl
templates/pages/news.tpl
diff --git a/include/Controller.php b/include/Controller.php
index 49b23088..19f86ca6 100644
--- a/include/Controller.php
+++ b/include/Controller.php
@@ -114,7 +114,7 @@ class Controller
// Absolute path (https://www.scummvm.org/*)
$host = $_SERVER['HTTP_HOST'];
if (\preg_match("/$host/i", $path)) {
- return preg_replace("/$host(\/|$)?/i", "$host/$lang", $path);
+ return preg_replace("/$host(\/|$)?/i", "$host/$lang/", $path);
}
// Relative path (/screenshots/)
diff --git a/templates/pages/feed_atom.tpl b/templates/pages/feed_atom.tpl
index 46e40022..715cedb1 100644
--- a/templates/pages/feed_atom.tpl
+++ b/templates/pages/feed_atom.tpl
@@ -2,16 +2,16 @@
{assign var='timezone_offset' value=$news[0]->getDate()|date_format:'Z'}
{assign var='updated' value=$news[0]->getDate()-$timezone_offset}
<?xml version="1.0" encoding="UTF-8" ?>
-<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom">
- <id>{$baseurl}</id>
- <link rel="alternate" type="text/html" href="http://www.scummvm.org" />
- <link rel="self" type="application/atom+xml" href="{$baseurl}feeds/atom/" />
+<feed xml:lang="{$lang}" xmlns="http://www.w3.org/2005/Atom">
+ <id>{$baseurl|lang}</id>
+ <link rel="alternate" type="text/html" href="{$baseurl|lang}" />
+ <link rel="self" type="application/atom+xml" href="{$baseurl|lang}feeds/atom/" />
<title type="text">{#feedAtomTitle#}</title>
<subtitle type="html"><![CDATA[{#feedAtomDescription#}]]></subtitle>
<icon>{$baseurl}favicon.ico</icon>
<author>
<name>ScummVM team</name>
- <uri>http://www.scummvm.org/</uri>
+ <uri>{$baseurl|lang}/</uri>
</author>
<updated>{$updated|date_format:'Y-m-d\TH:i:s\Z'}</updated>
{foreach from=$news item=n}
@@ -20,13 +20,13 @@
{assign var='news_filename' value=$n->getFilename()|substr:'0':'-5'}
{assign var='link' value=$n->getLink()}
- <entry xml:lang="en">
- <id>{$baseurl}news/archive/#{$news_filename}</id>
- <link rel="alternate" href="{$link}" />
+ <entry xml:lang="{$lang}">
+ <id>{$baseurl|lang}news/archive/#{$n->getDate()|date_format:'Y-m-d'}{if $news_filename|strlen == 9}{$news_filename|substr:'-1'}{/if}</id>
+ <link rel="alternate" href="{$link|lang}" />
<updated>{$updated|date_format:'Y-m-d\TH:i:s\Z'}</updated>
<published>{$updated|date_format:'Y-m-d\TH:i:s\Z'}</published>
<title type="html">{htmlspecialchars($n->getTitle())}</title>
- <content type="html" xml:base="http://www.scummvm.org">{htmlspecialchars($n->getContent())}</content>
+ <content type="html" xml:base="{$baseurl|lang}">{htmlspecialchars($n->getContent())}</content>
{if $n->getAuthor() != ''}
<author><name>{$n->getAuthor()}</name></author>
{/if}
diff --git a/templates/pages/feed_rss.tpl b/templates/pages/feed_rss.tpl
index 5ee61137..39f04d4b 100644
--- a/templates/pages/feed_rss.tpl
+++ b/templates/pages/feed_rss.tpl
@@ -2,10 +2,10 @@
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>{#feedRSSTitle#}</title>
- <link>http://www.scummvm.org/</link>
- <atom:link rel="self" type="application/rss+xml" href="{$baseurl}feeds/rss/" />
+ <link>{$baseurl|lang}</link>
+ <atom:link rel="self" type="application/rss+xml" href="{$baseurl|lang}feeds/rss/" />
<description>{#feedRSSDescription#}</description>
- <language>en</language>
+ <language>{$lang}</language>
{foreach from=$news item=n}
{assign var='news_filename' value=$n->getFilename()|substr:'0':'-4'}
<item>
@@ -15,8 +15,8 @@
{if $n->getAuthor() != ''}
<author>nospam at scummvm.org ({$n->getAuthor()})</author>
{/if}
- <guid isPermaLink='true'>{$baseurl}news/archive/#{$n->getDate()|date_format:'Y-m-d'}{if $news_filename|strlen == 9}{$news_filename|substr:'-1'}{/if}</guid>
- <link>{$n->getLink()}/</link>
+ <guid isPermaLink='true'>{$baseurl|lang}news/archive/#{$n->getDate()|date_format:'Y-m-d'}{if $news_filename|strlen == 9}{$news_filename|substr:'-1'}{/if}</guid>
+ <link>{$n->getLink()|lang}/</link>
</item>
{/foreach}
</channel>
diff --git a/templates/pages/news.tpl b/templates/pages/news.tpl
index 4848828e..82eab574 100644
--- a/templates/pages/news.tpl
+++ b/templates/pages/news.tpl
@@ -2,7 +2,7 @@
{$news_filename = $news->getFilename()|substr:'0':'-4'}
{$id = "{$news->getDate()|date_format:"%Y-%m-%d"}{if $news_filename|strlen == 9}{$news_filename|substr:'-1'}{/if}"}
{capture "head"}
- <a href="{$news->getLink()}/">
+ <a href="{$news->getLink()|lang}/">
<span class="news-date">{$news->getDate()|date_localized}</span>:
{$news->getTitle()}
</a>
Commit: 2a7620aff8ca54b7b81c9008a1522b3a7aff5b78
https://github.com/scummvm/scummvm-web/commit/2a7620aff8ca54b7b81c9008a1522b3a7aff5b78
Author: Mataniko (mataniko at gmail.com)
Date: 2020-09-29T16:08:34-04:00
Commit Message:
DATA: Rename faq L10N files
Changed paths:
A data/faq-xml.de.xml
A data/faq-xml.ru.xml
R data/faq-xml.de_DE.xml
R data/faq-xml.ru_RU.xml
diff --git a/data/faq-xml.de_DE.xml b/data/faq-xml.de.xml
similarity index 100%
rename from data/faq-xml.de_DE.xml
rename to data/faq-xml.de.xml
diff --git a/data/faq-xml.ru_RU.xml b/data/faq-xml.ru.xml
similarity index 100%
rename from data/faq-xml.ru_RU.xml
rename to data/faq-xml.ru.xml
Commit: 29f694654a523f615b650953fa260afa8061fd13
https://github.com/scummvm/scummvm-web/commit/29f694654a523f615b650953fa260afa8061fd13
Author: Mataniko (mataniko at gmail.com)
Date: 2020-09-29T16:08:34-04:00
Commit Message:
WEB: Fix images in localized pages
Changed paths:
include/Constants.php
include/Objects/Screenshot.php
diff --git a/include/Constants.php b/include/Constants.php
index eed1fb3b..91cdaf78 100644
--- a/include/Constants.php
+++ b/include/Constants.php
@@ -42,7 +42,7 @@ class Constants
define('DIR_LANG', DIR_DATA . '/localization');
define('DIR_COMPAT', DIR_DATA . '/compatibility');
define('DIR_DOWNLOADS', '/downloads');
- define('DIR_SCREENSHOTS', 'data/screenshots/');
+ define('DIR_SCREENSHOTS', '/data/screenshots');
/* Locale */
define('DEFAULT_LOCALE', 'en');
diff --git a/include/Objects/Screenshot.php b/include/Objects/Screenshot.php
index e9b39ace..548b3393 100644
--- a/include/Objects/Screenshot.php
+++ b/include/Objects/Screenshot.php
@@ -23,12 +23,12 @@ class Screenshot extends DataObject
$this->filename = $this->assignFromArray('filemask', $data, true);
$this->game = $this->assignFromArray($data['id'], $games);
$this->files = [];
- foreach (glob(DIR_SCREENSHOTS . $this->filename) as $file) {
+ foreach (glob("./" . DIR_SCREENSHOTS . "/" . $this->filename) as $file) {
if (\strpos($file, "_full.") > 0) {
continue;
}
- // Remove the folder and extension
- $name = str_replace(DIR_SCREENSHOTS, "", $file);
+ // Remove the base folder and extension
+ $name = str_replace("./" . DIR_SCREENSHOTS . "/", "", $file);
$name = \substr($name, 0, \strlen($name) - 4);
$this->files[] = [
'filename' => $name,
Commit: 8b04f8d07304e0885b9a90fe56ce9a927d7e2375
https://github.com/scummvm/scummvm-web/commit/8b04f8d07304e0885b9a90fe56ce9a927d7e2375
Author: Mataniko (mataniko at gmail.com)
Date: 2020-09-29T16:08:34-04:00
Commit Message:
WEB: Fix sponsors pages in localized pages
Changed paths:
data/sponsors.yaml
diff --git a/data/sponsors.yaml b/data/sponsors.yaml
index 468b9d0b..9abf54db 100644
--- a/data/sponsors.yaml
+++ b/data/sponsors.yaml
@@ -1,16 +1,16 @@
- name: Fastly
link: 'https://www.fastly.com'
- image: images/sponsors/fastly.png
+ image: /images/sponsors/fastly.png
description: CDN Provider
- name: Manitu
link: 'https://www.manitu.de'
- image: images/sponsors/manitu.png
+ image: /images/sponsors/manitu.png
description: Server & Hosting
- name: Hex Rays
link: 'https://www.hex-rays.com'
- image: images/sponsors/hex-rays.png
+ image: /images/sponsors/hex-rays.png
description: Developer Tools
- name: Jetbrains
link: 'https://www.jetbrains.com'
- image: images/sponsors/jetbrains.png
+ image: /images/sponsors/jetbrains.png
description: Developer Tools
Commit: 858b40f31dab1a7ecf7909518a08d2378a1f661a
https://github.com/scummvm/scummvm-web/commit/858b40f31dab1a7ecf7909518a08d2378a1f661a
Author: Mataniko (mataniko at gmail.com)
Date: 2020-09-29T16:08:34-04:00
Commit Message:
WEB: Update links in news articles to localized links
Changed paths:
include/Objects/News.php
diff --git a/include/Objects/News.php b/include/Objects/News.php
index e8f15475..f8985e5b 100644
--- a/include/Objects/News.php
+++ b/include/Objects/News.php
@@ -26,7 +26,8 @@ class News
$this->title = $processContent ? $this->processText($Parsedown->line($object->title)) : $Parsedown->line($object->title);
$this->date = $object->date;
$this->author = $object->author;
- $this->content = $processContent ? $this->processText($Parsedown->text($object->body())) : $Parsedown->text($object->body());
+ $body = $this->localizeLinks($object->body());
+ $this->content = $processContent ? $this->processText($Parsedown->text($body)) : $Parsedown->text($body);
$this->filename = basename($filename);
}
@@ -44,6 +45,30 @@ class News
return html_entity_decode($text, ENT_COMPAT, 'UTF-8');
}
+ private function localizeLinks($body) {
+ global $lang;
+ if ($lang == DEFAULT_LOCALE || !$lang) {
+ return $body;
+ }
+ $regex = "/\[.+\]\((.+)\)/i";
+ $matches = [];
+ if (\preg_match_all($regex, $body, $matches)) {
+ foreach ($matches[1] as $url) {
+ // Don't replace FRS links or static files
+ if (\strpos($url, "/frs") || file_exists("./$url")) {
+ continue;
+ } elseif (\preg_match("/^\//", $url)) { // Relative path (/screenshots/)
+ $body = str_replace($url,"/$lang" . $url, $body);
+ } elseif (\strpos($url, "www.scummvm.org")) { // Absolute url (www.scummvm.org/*)
+ $newUrl = preg_replace("/\.org(\/|$)?/i", ".org/$lang/", $url);
+ $body = str_replace($url, $newUrl, $body);
+ }
+ }
+ }
+
+ return $body;
+ }
+
/* Get the title. */
public function getTitle()
{
Commit: 13e183e9689daf13b167c4a6ec2245df754ce15f
https://github.com/scummvm/scummvm-web/commit/13e183e9689daf13b167c4a6ec2245df754ce15f
Author: Mataniko (mataniko at gmail.com)
Date: 2020-09-29T16:08:34-04:00
Commit Message:
WEB: Add lang attribute to the pages
Changed paths:
templates/pages/index.tpl
diff --git a/templates/pages/index.tpl b/templates/pages/index.tpl
index b217b88b..a574a164 100644
--- a/templates/pages/index.tpl
+++ b/templates/pages/index.tpl
@@ -1,5 +1,5 @@
<!DOCTYPE html>
-<html>
+<html lang="{$lang}">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
Commit: bcf45949d016d89d5b73122602cfa25471b7be9d
https://github.com/scummvm/scummvm-web/commit/bcf45949d016d89d5b73122602cfa25471b7be9d
Author: Mataniko (mataniko at gmail.com)
Date: 2020-09-29T16:08:34-04:00
Commit Message:
JANITORIAL: Code lint
Changed paths:
include/Controller.php
include/Objects/News.php
public_html/index.php
diff --git a/include/Controller.php b/include/Controller.php
index 19f86ca6..8e659796 100644
--- a/include/Controller.php
+++ b/include/Controller.php
@@ -105,7 +105,8 @@ class Controller
return $string;
}
- public function langModifier($path) {
+ public function langModifier($path)
+ {
global $lang;
if ($lang == DEFAULT_LOCALE || !$lang) {
return $path;
diff --git a/include/Objects/News.php b/include/Objects/News.php
index f8985e5b..2f156397 100644
--- a/include/Objects/News.php
+++ b/include/Objects/News.php
@@ -45,7 +45,8 @@ class News
return html_entity_decode($text, ENT_COMPAT, 'UTF-8');
}
- private function localizeLinks($body) {
+ private function localizeLinks($body)
+ {
global $lang;
if ($lang == DEFAULT_LOCALE || !$lang) {
return $body;
@@ -58,7 +59,7 @@ class News
if (\strpos($url, "/frs") || file_exists("./$url")) {
continue;
} elseif (\preg_match("/^\//", $url)) { // Relative path (/screenshots/)
- $body = str_replace($url,"/$lang" . $url, $body);
+ $body = str_replace($url, "/$lang" . $url, $body);
} elseif (\strpos($url, "www.scummvm.org")) { // Absolute url (www.scummvm.org/*)
$newUrl = preg_replace("/\.org(\/|$)?/i", ".org/$lang/", $url);
$body = str_replace($url, $newUrl, $body);
diff --git a/public_html/index.php b/public_html/index.php
index 0b2e9142..28e2596a 100644
--- a/public_html/index.php
+++ b/public_html/index.php
@@ -35,7 +35,7 @@ if (!empty($_GET['lang'])) {
} elseif (!empty($_COOKIE['lang'])) {
$lang = $_COOKIE['lang'];
unset($_COOKIE['lang']);
- setcookie("lang", null, -1);
+ setcookie("lang", "", -1);
header("Location: " . "/$lang" . $_SERVER['REQUEST_URI']);
}
More information about the Scummvm-git-logs
mailing list