diff --git a/.tx/config b/.tx/config index 1d7c4551ab04d60cc50d2f00318c26e61e07a1e3..30b4dea74e8b50da255af2fe7c4f5feef5a61e00 100644 --- a/.tx/config +++ b/.tx/config @@ -619,21 +619,21 @@ trans.tr_TR = installer/resources/eepsite/docroot/help/index_tr.html ;; Text on /console ;; type = HTML -source_file = installer/resources/readme/readme.html +source_file = apps/routerconsole/resources/docs/readme.html source_lang = en -trans.ar = installer/resources/readme/readme_ar.html -trans.de = installer/resources/readme/readme_de.html -trans.fr = installer/resources/readme/readme_fr.html +trans.ar = apps/routerconsole/resources/docs/readme_ar.html +trans.de = apps/routerconsole/resources/docs/readme_de.html +trans.fr = apps/routerconsole/resources/docs/readme_fr.html ;; Java converts id to in -trans.id = installer/resources/readme/readme_in.html -trans.it = installer/resources/readme/readme_it.html -trans.ja = installer/resources/readme/readme_ja.html -trans.pl = installer/resources/readme/readme_pl.html -trans.pt = installer/resources/readme/readme_pt.html -trans.ro = installer/resources/readme/readme_ro.html -trans.ru_RU = installer/resources/readme/readme_ru.html -trans.tr_TR = installer/resources/readme/readme_tr.html -trans.zh_CN = installer/resources/readme/readme_zh.html +trans.id = apps/routerconsole/resources/docs/readme_in.html +trans.it = apps/routerconsole/resources/docs/readme_it.html +trans.ja = apps/routerconsole/resources/docs/readme_ja.html +trans.pl = apps/routerconsole/resources/docs/readme_pl.html +trans.pt = apps/routerconsole/resources/docs/readme_pt.html +trans.ro = apps/routerconsole/resources/docs/readme_ro.html +trans.ru_RU = apps/routerconsole/resources/docs/readme_ru.html +trans.tr_TR = apps/routerconsole/resources/docs/readme_tr.html +trans.zh_CN = apps/routerconsole/resources/docs/readme_zh.html [main] host = https://www.transifex.com diff --git a/apps/routerconsole/java/build.xml b/apps/routerconsole/java/build.xml index 5b65c97d1da36cf02523fd1f4a2e6b9487ae1896..553fea3b1127b0ceedc71fe0d4d30efddc21c390 100644 --- a/apps/routerconsole/java/build.xml +++ b/apps/routerconsole/java/build.xml @@ -140,7 +140,7 @@ <copy file="src/edu/internet2/ndt/locale/Tcpbw100_msgs_nl_NL.properties" tofile="build/obj/edu/internet2/ndt/locale/Tcpbw100_msgs_nl.properties" /> <copy file="src/edu/internet2/ndt/locale/Tcpbw100_msgs_pt_BR.properties" tofile="build/obj/edu/internet2/ndt/locale/Tcpbw100_msgs_pt.properties" /> <copy file="src/edu/internet2/ndt/locale/Tcpbw100_msgs_ru_RU.properties" tofile="build/obj/edu/internet2/ndt/locale/Tcpbw100_msgs_ru.properties" /> - <jar destfile="./build/routerconsole.jar" basedir="./build/obj" excludes="net/i2p/router/web/helpers/* net/i2p/router/web/servlets/*"> + <jar destfile="./build/routerconsole.jar" basedir="./build/obj" excludes="net/i2p/router/web/helpers/**/* net/i2p/router/web/servlets/**/* net/i2p/router/web/resources/**/*"> <manifest> <!-- DTG added in 0.8.4, not in the classpath for very old installs, before we changed wrapper.config to specify * --> <!-- very old installs don't have i2psnark,jstl,standard in the classpath... not added in WebAppConfiguration any more --> @@ -338,10 +338,13 @@ <target name="war" depends="precompilejsp, warUpToDate, listChangedFiles2" unless="war.uptodate" > <!-- set if unset --> <property name="workspace.changes.w.tr" value="" /> - <!-- Don't include the css in the war, the main build.xml will copy it to docs/themes/console/ --> <copy file="../jsp/themes/console/images/favicon.ico" tofile="../jsp/favicon.ico" /> + <mkdir dir="build/obj/net/i2p/router/web/resources" /> + <copy todir="build/obj/net/i2p/router/web/resources" > + <fileset dir="../resources" /> + </copy> <war destfile="build/routerconsole.war" webxml="../jsp/web-out.xml" - basedir="../jsp/" excludes="web.xml, *.css, **/*.java, *.jsp, *.jsi, web-fragment.xml, web-out.xml"> + basedir="../jsp/" excludes="web.xml, **/*.java, *.jsp, *.jsi, web-fragment.xml, web-out.xml"> <manifest> <attribute name="Implementation-Version" value="${full.version}" /> <attribute name="Built-By" value="${build.built-by}" /> @@ -351,7 +354,7 @@ <attribute name="X-Compile-Source-JDK" value="${javac.version}" /> <attribute name="X-Compile-Target-JDK" value="${javac.version}" /> </manifest> - <classes dir="./build/obj" includes="net/i2p/router/web/helpers/* net/i2p/router/web/servlets/*" /> + <classes dir="./build/obj" includes="net/i2p/router/web/helpers/* net/i2p/router/web/servlets/* net/i2p/router/web/resources/**/*" /> </war> <delete file="../jsp/favicon.ico" /> </target> diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ContentHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/ContentHelper.java index 2200b9af6d3f850397f7c7690be567aa5fb2f6f3..b167682608b44b67dbc7590c3f79e16381f4b6ce 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ContentHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ContentHelper.java @@ -1,6 +1,10 @@ package net.i2p.router.web; +import java.io.BufferedReader; import java.io.File; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.IOException; import java.util.Locale; import net.i2p.util.FileUtil; @@ -12,12 +16,16 @@ public class ContentHelper extends HelperBase { private String _lang; /** - * Caution, use absolute paths only, do not assume files are in CWD + * Caution, use absolute paths only for getContent() and getTextContent(), + * do not assume files are in CWD. + * Use relative path for getResource(). */ public void setPage(String page) { _page = page; } + public void setStartAtBeginning(String moo) { _startAtBeginning = Boolean.parseBoolean(moo); } + public void setLang(String l) { /***** if((_lang == null || !_lang.equals(l)) && (l != null)) { @@ -106,4 +114,61 @@ public class ContentHelper extends HelperBase { return newname; return _page; } + + /** + * Convert file.ext to file_lang.ext if it exists. + * Get lang from the cgi lang param, then properties, then from the default locale. + * _context must be set to check the property. + * @return "" on error + * @since 0.9.49 + */ + public String getResource() { + if (_page == null || _page.contains("..")) + return ""; + String lang = _lang; + String page = null; + int lastdot = _page.lastIndexOf('.'); + if (lastdot <= 0) { + page = _page; + } else { + if (lang == null || lang.length() <= 0) { + if (_context != null) + lang = _context.getProperty(Messages.PROP_LANG); + if (lang == null || lang.length() <= 0) { + lang = Locale.getDefault().getLanguage(); + if (lang == null || lang.length() <= 0) + page = _page; + } + } + } + if (page == null) { + if (lang.equals("en")) + page = _page; + else + page = _page.substring(0, lastdot) + '_' + lang + _page.substring(lastdot); + } + InputStream is = ContentHelper.class.getResourceAsStream("/net/i2p/router/web/resources/" + page); + if (is == null) { + is = ContentHelper.class.getResourceAsStream("/net/i2p/router/web/resources/" + _page); + if (is == null) + return ""; + } + BufferedReader in = null; + StringBuilder buf = new StringBuilder(20000); + try { + in = new BufferedReader(new InputStreamReader(is, "UTF-8")); + String line = null; + int i = 0; + while ( (line = in.readLine()) != null) { + buf.append(line); + if (_maxLines > 0 && ++i >= _maxLines) + break; + } + } catch (IOException ioe) { + } finally { + if (in != null) try { in.close(); } catch (IOException ioe) {} + try { is.close(); } catch (IOException ioe) {} + } + return buf.toString(); + } } diff --git a/apps/routerconsole/jsp/console.jsp b/apps/routerconsole/jsp/console.jsp index 446e51b85cd5b991f8932a6dd245df5033e608aa..497ac0c8fa25b0cdaf4e5195499d12755ab35848 100644 --- a/apps/routerconsole/jsp/console.jsp +++ b/apps/routerconsole/jsp/console.jsp @@ -34,8 +34,8 @@ <h2><%=intl._t("Welcome to I2P")%></h2> </div> <% java.io.File fpath = new java.io.File(net.i2p.I2PAppContext.getGlobalContext().getBaseDir(), "docs/readme.html"); %> - <jsp:setProperty name="contenthelper" property="page" value="<%=fpath.getAbsolutePath()%>" /> + <jsp:setProperty name="contenthelper" property="page" value="docs/readme.html" /> <jsp:setProperty name="contenthelper" property="maxLines" value="300" /> <jsp:setProperty name="contenthelper" property="contextId" value="<%=i2pcontextId%>" /> - <jsp:getProperty name="contenthelper" property="content" /> + <jsp:getProperty name="contenthelper" property="resource" /> </div></body></html> diff --git a/installer/resources/readme/readme.html b/apps/routerconsole/resources/docs/readme.html similarity index 100% rename from installer/resources/readme/readme.html rename to apps/routerconsole/resources/docs/readme.html diff --git a/installer/resources/readme/readme_ar.html b/apps/routerconsole/resources/docs/readme_ar.html similarity index 100% rename from installer/resources/readme/readme_ar.html rename to apps/routerconsole/resources/docs/readme_ar.html diff --git a/installer/resources/readme/readme_de.html b/apps/routerconsole/resources/docs/readme_de.html similarity index 100% rename from installer/resources/readme/readme_de.html rename to apps/routerconsole/resources/docs/readme_de.html diff --git a/installer/resources/readme/readme_es.html b/apps/routerconsole/resources/docs/readme_es.html similarity index 100% rename from installer/resources/readme/readme_es.html rename to apps/routerconsole/resources/docs/readme_es.html diff --git a/installer/resources/readme/readme_fr.html b/apps/routerconsole/resources/docs/readme_fr.html similarity index 100% rename from installer/resources/readme/readme_fr.html rename to apps/routerconsole/resources/docs/readme_fr.html diff --git a/installer/resources/readme/readme_in.html b/apps/routerconsole/resources/docs/readme_in.html similarity index 100% rename from installer/resources/readme/readme_in.html rename to apps/routerconsole/resources/docs/readme_in.html diff --git a/installer/resources/readme/readme_it.html b/apps/routerconsole/resources/docs/readme_it.html similarity index 100% rename from installer/resources/readme/readme_it.html rename to apps/routerconsole/resources/docs/readme_it.html diff --git a/installer/resources/readme/readme_ja.html b/apps/routerconsole/resources/docs/readme_ja.html similarity index 100% rename from installer/resources/readme/readme_ja.html rename to apps/routerconsole/resources/docs/readme_ja.html diff --git a/installer/resources/readme/readme_nl.html b/apps/routerconsole/resources/docs/readme_nl.html similarity index 100% rename from installer/resources/readme/readme_nl.html rename to apps/routerconsole/resources/docs/readme_nl.html diff --git a/installer/resources/readme/readme_pl.html b/apps/routerconsole/resources/docs/readme_pl.html similarity index 100% rename from installer/resources/readme/readme_pl.html rename to apps/routerconsole/resources/docs/readme_pl.html diff --git a/installer/resources/readme/readme_pt.html b/apps/routerconsole/resources/docs/readme_pt.html similarity index 100% rename from installer/resources/readme/readme_pt.html rename to apps/routerconsole/resources/docs/readme_pt.html diff --git a/installer/resources/readme/readme_ro.html b/apps/routerconsole/resources/docs/readme_ro.html similarity index 100% rename from installer/resources/readme/readme_ro.html rename to apps/routerconsole/resources/docs/readme_ro.html diff --git a/installer/resources/readme/readme_ru.html b/apps/routerconsole/resources/docs/readme_ru.html similarity index 100% rename from installer/resources/readme/readme_ru.html rename to apps/routerconsole/resources/docs/readme_ru.html diff --git a/installer/resources/readme/readme_sv.html b/apps/routerconsole/resources/docs/readme_sv.html similarity index 100% rename from installer/resources/readme/readme_sv.html rename to apps/routerconsole/resources/docs/readme_sv.html diff --git a/installer/resources/readme/readme_tr.html b/apps/routerconsole/resources/docs/readme_tr.html similarity index 100% rename from installer/resources/readme/readme_tr.html rename to apps/routerconsole/resources/docs/readme_tr.html diff --git a/installer/resources/readme/readme_zh.html b/apps/routerconsole/resources/docs/readme_zh.html similarity index 100% rename from installer/resources/readme/readme_zh.html rename to apps/routerconsole/resources/docs/readme_zh.html diff --git a/build.xml b/build.xml index 86d19bfb1448bf96186717f0db539439edc6acb7..8ba43b50a9b6f69e5d49869675e93ab1a93ce553 100644 --- a/build.xml +++ b/build.xml @@ -1650,19 +1650,16 @@ <delete dir="./pkg-mavencentral" /> </target> - <!-- readme and proxy error page files, initialNews.xml files, GeoIP files, and flag icons --> + <!-- initialNews.xml files, GeoIP files, and flag icons --> <target name="prepConsoleDocs" depends="prepConsoleDocUpdates, prepgeoupdate" > <copy todir="pkg-temp/docs/initialNews/"> <fileset dir="installer/resources/initialNews/" /> </copy> - <!-- ensure the proxy files have the correct line endings --> - <fixcrlf srcdir="pkg-temp/docs" includes="*.ht" encoding="utf8" eol="crlf" /> </target> - <!-- readme files --> + <!-- flag icons --> <target name="prepConsoleDocUpdates"> <copy todir="pkg-temp/docs/" > - <fileset dir="installer/resources/readme/" includes="readme*.html" /> <!-- As of 0.9.36: All new and changed flags must go in the flags16x11/ dir, @@ -3094,7 +3091,6 @@ <!-- config.txt is in installer/resources/portable --> <mkdir dir="pkg-temp/docs" /> <copy file="installer/resources/initialNews/initialNews.xml" tofile="pkg-temp/docs/news.xml" overwrite="true" /> - <copy file="installer/resources/readme/readme.html" tofile="pkg-temp/docs/readme.html" /> <copy file="installer/resources/startconsole.html" todir="pkg-temp/docs/" /> <copy file="installer/resources/start.ico" todir="pkg-temp/docs/" /> <copy file="installer/resources/console.ico" todir="pkg-temp/docs/" /> diff --git a/tests/scripts/checkutf8.sh b/tests/scripts/checkutf8.sh index ccec33502c117cef6569f4b0968e49a332716001..47754c2422b5aee081a3aa1e14f7479151096fa0 100755 --- a/tests/scripts/checkutf8.sh +++ b/tests/scripts/checkutf8.sh @@ -16,8 +16,10 @@ DIRS="\ apps/routerconsole/locale \ apps/routerconsole/locale-news \ apps/routerconsole/locale-countries \ + apps/routerconsole/resources/docs \ apps/i2ptunnel/locale \ apps/i2ptunnel/locale-proxy \ + apps/i2ptunnel/resources/proxy \ apps/i2psnark/locale \ apps/ministreaming/locale \ apps/susidns/locale \ @@ -26,8 +28,6 @@ DIRS="\ debian/po \ installer/resources/eepsite/docroot/help \ installer/resources/initialNews \ - installer/resources/proxy \ - installer/resources/readme \ apps/routerconsole/jsp \ apps/i2ptunnel/jsp \ apps/susidns/src/jsp" diff --git a/tests/scripts/checkxml.sh b/tests/scripts/checkxml.sh index b04e72780df099041067d3be8ba61a63ae65a56d..a276b8142f032ae76f9caaf185b506f9b8c33d90 100755 --- a/tests/scripts/checkxml.sh +++ b/tests/scripts/checkxml.sh @@ -63,6 +63,7 @@ HTMLFILES="\ ./apps/BOB/src/net/i2p/BOB/package.html \ ./apps/desktopgui/src/net/i2p/desktopgui/package.html \ ./apps/ministreaming/java/src/net/i2p/client/streaming/package.html \ +./apps/routerconsole/resources/docs/readme*.html \ ./apps/susimail/src/index.html \ ./core/java/src/net/i2p/client/datagram/package.html \ ./core/java/src/net/i2p/client/naming/package.html \ @@ -78,7 +79,6 @@ HTMLFILES="\ ./installer/resources/eepsite/docroot/help/index*.html \ ./installer/resources/eepsite/docroot/help/pagetemplate.html \ ./installer/resources/eepsite/docroot/index.html \ -./installer/resources/readme/readme*.html \ ./installer/resources/small/toolbar.html \ ./installer/resources/startconsole.html \ ./router/java/src/net/i2p/data/i2np/package.html \