是否可以更改 Apache DirectoryList 的默认语言(德语)?
我试过这个:
DefaultLanguage de
AddLanguage de .de
LanguagePriority de en
ForceLanguagePriority Fallback
表标题仍然是"名称"、"上次修改时间"、"大小"。
从 httpd 2.4.10 开始,仅使用 httpd.conf 是不可能的。因为列标题是硬编码的模块/发电机/mod_autoindex.c.
我使用 httpd.conf 和 JavaScript 更改了标题。 这不是一个完整的解决方案,因为它仅适用于一种语言。 我一直无法弄清楚如何对几种语言做同样的事情。 不幸的是,无法使用"document.documentElement.lang"来检测适当的语言,因为mod_autoindex.c不提供"lang"属性。
以下是我的httpd.conf中的相关行(您可以省略IndexOptions中的所有内容,除了HTMLTable):
LoadModule autoindex_module /usr/lib/httpd/modules/mod_autoindex.so
IndexOptions HTMLTable Charset=UTF-8 SuppressDescription
IndexStyleSheet "/DirectoryIndex.css"
ReadmeName "/DirectoryIndexFooter.html"
请注意,即使您不需要样式表,也不能省略 IndexStyleSheet 指令。 样式表文件不必存在。
这是我的/DirectoryIndexFooter.html:
<script>
document.title = document.title.replace ('Index of', 'Sisukord:');
var elem = document.getElementById ('indextitle');
elem.innerHTML = elem.innerHTML.replace ('Index of', 'Sisukord:');
elem = document.getElementsByClassName ('indexcolname') [0];
elem.innerHTML = elem.innerHTML.replace ('Name', 'Nimi:');
elem = document.getElementsByClassName ('indexcollastmod') [0];
elem.innerHTML = elem.innerHTML.replace ('Last modified', 'Viimane muutmine:');
elem = document.getElementsByClassName ('indexcolsize') [0];
elem.innerHTML = elem.innerHTML.replace ('Size', 'Suurus:');
</script>
对@toomas
答案的补充。
您可以将他的黑客与Options +multiviews
结合起来.看https://httpd.apache.org/docs/2.4/content-negotiation.html。
然后只需将您的文件添加到README.html.de
,README.html.et
...然后每个文件都可以执行所需的翻译。
作为旁注,ReadmeName "/README.html"
意味着您只使用整个站点根文件夹中的一个文件 - 这里是一组 - 除非某些位置/目录另有说明 - 而ReadmeName "README.html"
意味着您在每个自动索引文件夹中使用不同的文件。