Internal help: Add internationalization

master
François-Xavier Thomas 4 years ago committed by jvoisin
parent 6df42736e6
commit 1cde8accc7
  1. 58
      airsonic-main/src/main/resources/org/airsonic/player/i18n/ResourceBundle_en.properties
  2. 135
      airsonic-main/src/main/webapp/WEB-INF/jsp/internalhelp.jsp

@ -266,7 +266,7 @@ internalhelp.title=About {0} Internals
internalhelp.details=Internal details
internalhelp.statistics=Statistics
internalhelp.database=Database
internalhalp.databaseconsistency=Database Consistency
internalhelp.databaseconsistency=Database Consistency
internalhelp.index=Search Index
internalhelp.filesystem=Filesystem
internalhelp.transcoding=Transcoding
@ -274,11 +274,67 @@ internalhelp.musicfolders=Music Folders
internalhelp.locale=Locale
internalhelp.defaultlocale=Default locale
internalhelp.defaultcharset=Default charset encoding
internalhelp.defaultcharset.ok=Java default charset appears to have UTF-8 support.
internalhelp.defaultcharset.warn=Java default charset appears to have no UTF-8 support. International characters may be partially supported.
internalhelp.folderisreadable.ok=Airsonic appears to have the correct permissions for music folder "{0}".
internalhelp.folderisreadable.warn=Airsonic does not have the correct permissions for music folder "{0}".
internalhelp.folderisreadable=Folder "{0}": Read access
internalhelp.folderiswritable=Folder "{0}": Write access
internalhelp.folderfsusage=Folder "{0}": Free space on filesystem
internalhelp.fsusage=Airsonic Home: Free space on filesystem
internalhelp.fshomesize=Airsonic Home: Directory size
internalhelp.lastscandate=Last scan date
internalhelp.totaldurationseconds=Total duration (s)
internalhelp.totalsizebytes=Total size (bytes)
internalhelp.luceneversion=Lucene version
internalhelp.albumcount=Album count
internalhelp.artistcount=Artist count
internalhelp.songcount=Song count
internalhelp.musiccount=Music file count
internalhelp.podcastcount=Podcast count
internalhelp.directorycount=Directory count
internalhelp.artistid3count=Artist (ID3) count
internalhelp.albumid3count=Album (ID3) count
internalhelp.songdeletedcount=Deleted song count
internalhelp.musicdeletedcount=Deleted music file count
internalhelp.podcastdeletedcount=Deleted podcast count
internalhelp.directorydeletedcount=Deleted directory count
internalhelp.albumdeletedcount=Deleted album count
internalhelp.artistdeletedcount=Deleted artist count
internalhelp.artistid3deletedcount=Deleted artist (ID3) count
internalhelp.albumid3deletedcount=Deleted album (ID3) count
internalhelp.distinctalbumcount=Distinct album count
internalhelp.distinctartistcount=Distinct artist count
internalhelp.distinctalbumartistcount=Distinct album artist count
internalhelp.dbnonpresent.ok=The database does not contain non-present items.
internalhelp.dbnonpresent.warn=The database contains non-present items. Run "clean-up database" to clean them up.
internalhelp.dbdrivername=Database driver name
internalhelp.dbdriverversion=Database driver version
internalhelp.dbdirectorysize=Size of the internal database directory
internalhelp.dblogsize=Size of the internal database log
internalhelp.dblogsize.ok=The size of the database log file (db/airsonic.log) appears healthy.
internalhelp.dblogsize.warn=The size of the database log file (db/airsonic.log) is large (greater than 256M). Run a scan to clean it up.
internalhelp.tablecount={0} row count
internalhelp.mediafilesinnonpresentmusicfoldercount=Nubmer of media files in non-present music folders
internalhelp.mediafilesinnonpresentmusicfoldercount.ok=All media files in the database have a valid music folder.
internalhelp.mediafilesinnonpresentmusicfoldercount.warn=The media file database contains files whose music folder is no longer present. Examples are below.
internalhelp.mediafileswithmusicfoldermismatchcount=Number of media files with music folder mismatch
internalhelp.mediafileswithmusicfoldermismatchcount.ok=All media files in the database match their music folder.
internalhelp.mediafileswithmusicfoldermismatchcount.warn=The media file database contains files whose path does not match their music folder path. Examples are below.
internalhelp.tool.path={0} path
internalhelp.tool.isreadable={0} is readable?
internalhelp.tool.isexecutable={0} is executable?
internalhelp.tool.ok={0} appears configured correctly.
internalhelp.tool.warn={0} is either missing or not executable. Transcoding may not work properly.
internalhelp.user.language=user.language property
internalhelp.user.country=user.country property
internalhelp.file.encoding=file.encoding property
internalhelp.file.encoding.ok=Java file encoding appears to have UTF-8 support.
internalhelp.file.encoding.warn=Java file encoding appears to have no UTF-8 support. International characters may be partially supported.
internalhelp.sun.jnu.encoding=sun.jnu.encoding property
internalhelp.sun.io.unicode.encoding=sun.io.unicode.encoding property
internalhelp.langvar=LANG environment variable
internalhelp.lcallvar=LC_ALL environment variable
help.title=About {0}
help.upgrade=New version available. Download {0} {1} <a href="#" onclick="window.open(''https://airsonic.github.io/docs/update/'')">here</a>.

@ -54,12 +54,12 @@
</h2>
<table width="75%" class="ruleTable indent">
<tr><td class="ruleTableHeader">statAlbumCount</td><td class="ruleTableCell">${model.statAlbumCount}</td></tr>
<tr><td class="ruleTableHeader">statArtistCount</td><td class="ruleTableCell">${model.statArtistCount}</td></tr>
<tr><td class="ruleTableHeader">statSongCount</td><td class="ruleTableCell">${model.statSongCount}</td></tr>
<tr><td class="ruleTableHeader">statLastScanDate</td><td class="ruleTableCell">${model.statLastScanDate}</td></tr>
<tr><td class="ruleTableHeader">statTotalDurationSeconds</td><td class="ruleTableCell">${model.statTotalDurationSeconds}</td></tr>
<tr><td class="ruleTableHeader">statTotalLengthBytes</td><td class="ruleTableCell">${model.statTotalLengthBytes}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.albumcount"/></td><td class="ruleTableCell">${model.statAlbumCount}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.artistcount"/></td><td class="ruleTableCell">${model.statArtistCount}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.songcount"/></td><td class="ruleTableCell">${model.statSongCount}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.lastscandate"/></td><td class="ruleTableCell">${model.statLastScanDate}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.totaldurationseconds"/></td><td class="ruleTableCell">${model.statTotalDurationSeconds}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.totalsizebytes"/></td><td class="ruleTableCell">${model.statTotalLengthBytes}</td></tr>
</table>
<p></p>
@ -70,20 +70,17 @@
</h2>
<table width="75%" class="ruleTable indent">
<tr><td class="ruleTableHeader">indexLuceneVersion</td><td class="ruleTableCell">${model.indexLuceneVersion}</td></tr>
<tr><td class="ruleTableHeader">indexSongDeletedCount</td><td class="ruleTableCell">${model.indexSongDeletedCount}</td></tr>
<tr><td class="ruleTableHeader">indexAlbumDeletedCount</td><td class="ruleTableCell">${model.indexAlbumDeletedCount}</td></tr>
<tr><td class="ruleTableHeader">indexArtistDeletedCount</td><td class="ruleTableCell">${model.indexArtistDeletedCount}</td></tr>
<tr><td class="ruleTableHeader">indexAlbumId3DeletedCount</td><td class="ruleTableCell">${model.indexAlbumId3DeletedCount}</td></tr>
<tr><td class="ruleTableHeader">indexArtistId3DeletedCount</td><td class="ruleTableCell">${model.indexArtistId3DeletedCount}</td></tr>
<tr><td class="ruleTableHeader">indexSongCount</td><td class="ruleTableCell">${model.indexSongCount}</td></tr>
<tr><td class="ruleTableHeader">indexAlbumCount</td><td class="ruleTableCell">${model.indexAlbumCount}</td></tr>
<tr><td class="ruleTableHeader">indexArtistCount</td><td class="ruleTableCell">${model.indexArtistCount}</td></tr>
<tr><td class="ruleTableHeader">indexAlbumId3Count</td><td class="ruleTableCell">${model.indexAlbumId3Count}</td></tr>
<tr><td class="ruleTableHeader">indexArtistId3Count</td><td class="ruleTableCell">${model.indexArtistId3Count}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.luceneversion"/></td><td class="ruleTableCell">${model.indexLuceneVersion}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.songdeletedcount"/></td><td class="ruleTableCell">${model.indexSongDeletedCount}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.albumdeletedcount"/></td><td class="ruleTableCell">${model.indexAlbumDeletedCount}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.artistdeletedcount"/></td><td class="ruleTableCell">${model.indexArtistDeletedCount}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.albumid3deletedcount"/></td><td class="ruleTableCell">${model.indexAlbumId3DeletedCount}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.artistid3deletedcount"/></td><td class="ruleTableCell">${model.indexArtistId3DeletedCount}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.songcount"/></td><td class="ruleTableCell">${model.indexSongCount}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.albumcount"/></td><td class="ruleTableCell">${model.indexAlbumCount}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.artistcount"/></td><td class="ruleTableCell">${model.indexArtistCount}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.albumid3count"/></td><td class="ruleTableCell">${model.indexAlbumId3Count}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.artistid3count"/></td><td class="ruleTableCell">${model.indexArtistId3Count}</td></tr>
</table>
<p></p>
@ -100,52 +97,50 @@
<c:choose>
<c:when test="${model.dbLogSizeBytes < 268435456}">
<img src="<spring:theme code='checkImage'/>" alt="OK">
The database log file (db/airsonic.log) appears healthy.
<fmt:message key="internalhelp.dblogsize.ok"/>
</c:when>
<c:otherwise>
<img src="<spring:theme code='alertImage'/>" alt="Warning">
The database log file (db/airsonic.log) is large (greater than 256M). Run a scan to clean it up.
<fmt:message key="internalhelp.dblogsize.warn"/>
</c:otherwise>
</c:choose>
</td>
</tr>
<tr><td class="ruleTableHeader">dbDriverName</td><td class="ruleTableCell">${model.dbDriverName}</td></tr>
<tr><td class="ruleTableHeader">dbDriverVersion</td><td class="ruleTableCell">${model.dbDriverVersion}</td></tr>
<tr><td class="ruleTableHeader">dbDirectorySize</td><td class="ruleTableCell">${model.dbDirectorySize}</td></tr>
<tr><td class="ruleTableHeader">dbLogSize</td><td class="ruleTableCell">${model.dbLogSize}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.dbdrivername"/></td><td class="ruleTableCell">${model.dbDriverName}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.dbdriverversion"/></td><td class="ruleTableCell">${model.dbDriverVersion}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.dbdirectorysize"/></td><td class="ruleTableCell">${model.dbDirectorySize}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.dblogsize"/></td><td class="ruleTableCell">${model.dbLogSize}</td></tr>
<tr>
<td colspan="2" class="ruleTableCell">
<c:choose>
<c:when test="${model.dbMediaFileAlbumNonPresentCount + model.dbMediaFileDirectoryNonPresentCount + model.dbMediaFileMusicNonPresentCount + model.dbMediaFilePodcastNonPresentCount == 0}">
<img src="<spring:theme code='checkImage'/>" alt="OK">
The database does not contain non-present items.
<fmt:message key="internalhelp.dbnonpresent.ok"/>
</c:when>
<c:otherwise>
<img src="<spring:theme code='alertImage'/>" alt="Warning">
The database contains non-present items. Run "clean-up database" to clean them up.
<fmt:message key="internalhelp.dbnonpresent.warn"/>
</c:otherwise>
</c:choose>
</td>
</tr>
<tr><td class="ruleTableHeader">dbMediaFileMusicNonPresentCount</td><td class="ruleTableCell">${model.dbMediaFileMusicNonPresentCount}</td></tr>
<tr><td class="ruleTableHeader">dbMediaFilePodcastNonPresentCount</td><td class="ruleTableCell">${model.dbMediaFilePodcastNonPresentCount}</td></tr>
<tr><td class="ruleTableHeader">dbMediaFileDirectoryNonPresentCount</td><td class="ruleTableCell">${model.dbMediaFileDirectoryNonPresentCount}</td></tr>
<tr><td class="ruleTableHeader">dbMediaFileAlbumNonPresentCount</td><td class="ruleTableCell">${model.dbMediaFileAlbumNonPresentCount}</td></tr>
<tr><td class="ruleTableHeader">dbMediaFileMusicPresentCount</td><td class="ruleTableCell">${model.dbMediaFileMusicPresentCount}</td></tr>
<tr><td class="ruleTableHeader">dbMediaFilePodcastPresentCount</td><td class="ruleTableCell">${model.dbMediaFilePodcastPresentCount}</td></tr>
<tr><td class="ruleTableHeader">dbMediaFileDirectoryPresentCount</td><td class="ruleTableCell">${model.dbMediaFileDirectoryPresentCount}</td></tr>
<tr><td class="ruleTableHeader">dbMediaFileAlbumPresentCount</td><td class="ruleTableCell">${model.dbMediaFileAlbumPresentCount}</td></tr>
<tr><td class="ruleTableHeader">dbMediaFileDistinctAlbumCount</td><td class="ruleTableCell">${model.dbMediaFileDistinctAlbumCount}</td></tr>
<tr><td class="ruleTableHeader">dbMediaFileDistinctArtistCount</td><td class="ruleTableCell">${model.dbMediaFileDistinctArtistCount}</td></tr>
<tr><td class="ruleTableHeader">dbMediaFileDistinctAlbumArtistCount</td><td class="ruleTableCell">${model.dbMediaFileDistinctAlbumArtistCount}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.musicdeletedcount"/></td><td class="ruleTableCell">${model.dbMediaFileMusicNonPresentCount}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.podcastdeletedcount"/></td><td class="ruleTableCell">${model.dbMediaFilePodcastNonPresentCount}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.directorydeletedcount"/></td><td class="ruleTableCell">${model.dbMediaFileDirectoryNonPresentCount}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.albumdeletedcount"/></td><td class="ruleTableCell">${model.dbMediaFileAlbumNonPresentCount}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.musiccount"/></td><td class="ruleTableCell">${model.dbMediaFileMusicPresentCount}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.podcastcount"/></td><td class="ruleTableCell">${model.dbMediaFilePodcastPresentCount}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.directorycount"/></td><td class="ruleTableCell">${model.dbMediaFileDirectoryPresentCount}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.albumcount"/></td><td class="ruleTableCell">${model.dbMediaFileAlbumPresentCount}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.distinctalbumcount"/></td><td class="ruleTableCell">${model.dbMediaFileDistinctAlbumCount}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.distinctartistcount"/></td><td class="ruleTableCell">${model.dbMediaFileDistinctArtistCount}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.distinctalbumartistcount"/></td><td class="ruleTableCell">${model.dbMediaFileDistinctAlbumArtistCount}</td></tr>
<c:forEach var="tableCount" items="${model.dbTableCount}">
<tr><td class="ruleTableHeader">${tableCount.key} count</td><td class="ruleTableCell">${tableCount.value}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.tablecount"><fmt:param value="${tableCount.key}"/></fmt:message></td><td class="ruleTableCell">${tableCount.value}</td></tr>
</c:forEach>
</table>
@ -153,7 +148,7 @@
<h2>
<img src="<spring:theme code='logImage'/>" alt="">
<span style="vertical-align: middle"><fmt:message key="internalhalp.databaseconsistency"/></span>
<span style="vertical-align: middle"><fmt:message key="internalhelp.databaseconsistency"/></span>
</h2>
<table width="75%" class="ruleTable indent">
@ -162,17 +157,17 @@
<c:choose>
<c:when test="${model.dbMediaFilesInNonPresentMusicFoldersCount == 0}">
<img src="<spring:theme code='checkImage'/>" alt="OK">
All media files in the database have a valid music folder.
<fmt:message key="internalhelp.mediafilesinnonpresentmusicfoldercount.ok"/>
</c:when>
<c:otherwise>
<img src="<spring:theme code='alertImage'/>" alt="Warning">
The media file database contains files whose music folder is no longer present. Examples are below.
<fmt:message key="internalhelp.mediafilesinnonpresentmusicfoldercount.warn"/>
</c:otherwise>
</c:choose>
</td>
</tr>
<tr><td class="ruleTableHeader">dbMediaFilesInNonPresentMusicFoldersCount</td><td class="ruleTableCell" colspan="2">${model.dbMediaFilesInNonPresentMusicFoldersCount}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.mediafilesinnonpresentmusicfoldercount"/></td><td class="ruleTableCell" colspan="2">${model.dbMediaFilesInNonPresentMusicFoldersCount}</td></tr>
<c:if test="${model.dbMediaFilesInNonPresentMusicFoldersCount > 0}">
<tr><td class="ruleTableHeader">ID</td><td class="ruleTableHeader">PATH</td><td class="ruleTableHeader">FOLDER</td></tr>
<c:forEach var="invalidFolderSample" items="${model.dbMediaFilesInNonPresentMusicFoldersSample}">
@ -189,17 +184,17 @@
<c:choose>
<c:when test="${model.dbMediaFilesWithMusicFolderMismatchCount == 0}">
<img src="<spring:theme code='checkImage'/>" alt="OK">
All media files in the database match their music folder.
<fmt:message key="internalhelp.mediafileswithmusicfoldermismatchcount.ok"/>
</c:when>
<c:otherwise>
<img src="<spring:theme code='alertImage'/>" alt="Warning">
The media file database contains files whose path does not match their music folder path. Examples are below.
<fmt:message key="internalhelp.mediafileswithmusicfoldermismatchcount.warn"/>
</c:otherwise>
</c:choose>
</td>
</tr>
<tr><td class="ruleTableHeader">dbMediaFilesWithMusicFolderMismatchCount</td><td class="ruleTableCell" colspan="2">${model.dbMediaFilesWithMusicFolderMismatchCount}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.mediafileswithmusicfoldermismatchcount"/></td><td class="ruleTableCell" colspan="2">${model.dbMediaFilesWithMusicFolderMismatchCount}</td></tr>
<c:if test="${model.dbMediaFilesWithMusicFolderMismatchCount > 0}">
<tr><td class="ruleTableHeader">ID</td><td class="ruleTableHeader">PATH</td><td class="ruleTableHeader">FOLDER</td></tr>
<c:forEach var="mismatchSample" items="${model.dbMediaFilesWithMusicFolderMismatchSample}">
@ -224,11 +219,11 @@
<c:choose>
<c:when test="${musicFolderStatistics.value.readable}">
<img src="<spring:theme code='checkImage'/>" alt="OK">
Airsonic appears to have the correct permissions for music folder "${musicFolderStatistics.key}".
<fmt:message key="internalhelp.folderisreadable.ok"><fmt:param value="${musicFolderStatistics.key}"/></fmt:message>
</c:when>
<c:otherwise>
<img src="<spring:theme code='alertImage'/>" alt="Warning">
Airsonic does not have the correct permissions for music folder "${musicFolderStatistics.key}".
<fmt:message key="internalhelp.folderisreadable.warn"><fmt:param value="${musicFolderStatistics.key}"/></fmt:message>
</c:otherwise>
</c:choose>
</td>
@ -252,35 +247,35 @@
<c:choose>
<c:when test="${model.fsFfprobeInfo.readable and model.fsFfprobeInfo.executable}">
<img src="<spring:theme code='checkImage'/>" alt="OK">
Ffprobe appears configured correctly.
<fmt:message key="internalhelp.tool.ok"><fmt:param value="ffprobe"/></fmt:message>
</c:when>
<c:otherwise>
<img src="<spring:theme code='alertImage'/>" alt="Warning">
Ffprobe is either missing or not executable. Transcoding may not work properly.
<fmt:message key="internalhelp.tool.warn"><fmt:param value="ffprobe"/></fmt:message>
</c:otherwise>
</c:choose>
</td>
</tr>
<tr><td class="ruleTableHeader">Ffprobe path</td><td class="ruleTableCell">${model.fsFfprobeInfo.path}</td></tr>
<tr><td class="ruleTableHeader">Ffprobe is readable?</td><td class="ruleTableCell">${model.fsFfprobeInfo.readable}</td></tr>
<tr><td class="ruleTableHeader">Ffprobe is executable?</td><td class="ruleTableCell">${model.fsFfprobeInfo.executable}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.tool.path"><fmt:param value="ffprobe"/></fmt:message></td><td class="ruleTableCell">${model.fsFfprobeInfo.path}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.tool.isreadable"><fmt:param value="ffprobe"/></fmt:message></td><td class="ruleTableCell">${model.fsFfprobeInfo.readable}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.tool.isexecutable"><fmt:param value="ffprobe"/></fmt:message></td><td class="ruleTableCell">${model.fsFfprobeInfo.executable}</td></tr>
<tr>
<td colspan="2" class="ruleTableCell">
<c:choose>
<c:when test="${model.fsFfmpegInfo.readable and model.fsFfmpegInfo.executable}">
<img src="<spring:theme code='checkImage'/>" alt="OK">
Ffmpeg appears configured correctly.
<fmt:message key="internalhelp.tool.ok"><fmt:param value="ffmpeg"/></fmt:message>
</c:when>
<c:otherwise>
<img src="<spring:theme code='alertImage'/>" alt="Warning">
Ffmpeg is either missing or not executable. Transcoding may not work properly.
<fmt:message key="internalhelp.tool.warn"><fmt:param value="ffprobe"/></fmt:message>
</c:otherwise>
</c:choose>
</td>
</tr>
<tr><td class="ruleTableHeader">Ffmpeg path</td><td class="ruleTableCell">${model.fsFfmpegInfo.path}</td></tr>
<tr><td class="ruleTableHeader">Ffmpeg is readable?</td><td class="ruleTableCell">${model.fsFfmpegInfo.readable}</td></tr>
<tr><td class="ruleTableHeader">Ffmpeg is executable?</td><td class="ruleTableCell">${model.fsFfmpegInfo.executable}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.tool.path"><fmt:param value="ffmpeg"/></fmt:message></td><td class="ruleTableCell">${model.fsFfmpegInfo.path}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.tool.isreadable"><fmt:param value="ffmpeg"/></fmt:message></td><td class="ruleTableCell">${model.fsFfmpegInfo.readable}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.tool.isexecutable"><fmt:param value="ffmpeg"/></fmt:message></td><td class="ruleTableCell">${model.fsFfmpegInfo.executable}</td></tr>
</table>
<p></p>
@ -307,25 +302,25 @@
</tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.defaultcharset"/></td><td class="ruleTableCell">${model.localeDefaultCharset}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.defaultlocale"/></td><td class="ruleTableCell">${model.localeDefault}</td></tr>
<tr><td class="ruleTableHeader">user.language</td><td class="ruleTableCell">${model.localeUserLanguage}</td></tr>
<tr><td class="ruleTableHeader">user.country</td><td class="ruleTableCell">${model.localeUserCountry}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.user.language"/></td><td class="ruleTableCell">${model.localeUserLanguage}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.user.country"/></td><td class="ruleTableCell">${model.localeUserCountry}</td></tr>
<tr>
<td colspan="2" class="ruleTableCell">
<c:choose>
<c:when test="${fn:contains(model.localeFileEncoding, 'UTF-8')}">
<img src="<spring:theme code='checkImage'/>" alt="OK">
Java file encoding appears to have UTF-8 support.
<fmt:message key="internalhelp.file.encoding.ok"/>
</c:when>
<c:otherwise>
<img src="<spring:theme code='alertImage'/>" alt="Warning">
Java file encoding appears to have no UTF-8 support. International characters may be partially supported.
<fmt:message key="internalhelp.file.encoding.warn"/>
</c:otherwise>
</c:choose>
</td>
</tr>
<tr><td class="ruleTableHeader">file.encoding</td><td class="ruleTableCell">${model.localeFileEncoding}</td></tr>
<tr><td class="ruleTableHeader">sun.jnu.encoding</td><td class="ruleTableCell">${model.localeSunJnuEncoding}</td></tr>
<tr><td class="ruleTableHeader">sun.io.unicode.encoding</td><td class="ruleTableCell">${model.localeSunIoUnicodeEncoding}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.file.encoding"/></td><td class="ruleTableCell">${model.localeFileEncoding}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.sun.jnu.encoding"/></td><td class="ruleTableCell">${model.localeSunJnuEncoding}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.sun.io.unicode.encoding"/></td><td class="ruleTableCell">${model.localeSunIoUnicodeEncoding}</td></tr>
<c:if test="${not empty model.localeLang and not fn:contains(model.localeLang, 'UTF-8')}">
<tr>
@ -335,7 +330,7 @@
</td>
</tr>
</c:if>
<tr><td class="ruleTableHeader">LANG</td><td class="ruleTableCell">${model.localeLang}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.langvar"/></td><td class="ruleTableCell">${model.localeLang}</td></tr>
<c:if test="${not empty model.localeLcAll and not fn:contains(model.localeLcAll, 'UTF-8')}">
<tr>
@ -345,7 +340,7 @@
</td>
</tr>
</c:if>
<tr><td class="ruleTableHeader">LC_ALL</td><td class="ruleTableCell">${model.localeLcAll}</td></tr>
<tr><td class="ruleTableHeader"><fmt:message key="internalhelp.lcallvar"/></td><td class="ruleTableCell">${model.localeLcAll}</td></tr>
</table>
<p></p>

Loading…
Cancel
Save