v0.11 files, update localization info

This commit is contained in:
tduva 2020-01-14 08:54:27 +01:00
parent 24d2560d60
commit 0705d659b9
13 changed files with 748 additions and 90 deletions

View File

@ -11,7 +11,7 @@
<pre>
Copyright (C) 2017-2018 tduva and contributors
Copyright (C) 2017-2020 tduva and contributors
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -33,15 +33,14 @@ along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</pre
<h3>Libraries</h3>
<ul>
<li><a href="https://code.google.com/p/json-simple/">JSON-Simple</a>
under <a href="http://www.apache.org/licenses/LICENSE-2.0">"Apache License 2.0"</a>.</li>
<li>Versions with Windows Global Hotkey support use <a href="https://code.google.com/p/jintellitype/">JIntellitype</a>,
licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">"Apache License 2.0"</a>.</li>
<li><a href="https://tyrus.java.net">Tyrus</a> standalone websocket client library dual-licensed under
<a href="https://tyrus.java.net/license.html">CDDL 1.1 and GPL 2 with CPE</a>.</li>
<li><a href="http://www.jtattoo.net">JTattoo</a> by MH Software-Entwicklung,
under <a href="http://www.gnu.org/licenses/gpl-3.0.txt">GPLv2 or later</a>.</li>
<li><a href="https://github.com/rjeschke/txtmark">Txtmark</a> under
<a href="http://www.apache.org/licenses/LICENSE-2.0">"Apache License 2.0"</a>.</li>
(<a href="http://www.apache.org/licenses/LICENSE-2.0">"Apache License 2.0"</a>)</li>
<li>Versions with Windows Global Hotkey support use <a href="https://code.google.com/p/jintellitype/">JIntellitype</a>
(<a href="http://www.apache.org/licenses/LICENSE-2.0">"Apache License 2.0"</a>)</li>
<li><a href="https://github.com/TooTallNate/Java-WebSocket">Java-WebSocket</a> (MIT), <a href="http://www.slf4j.org/">SLF4J</a> (MIT)</li>
<li><a href="http://www.jtattoo.net">JTattoo</a> by MH Software-Entwicklung
(<a href="http://www.gnu.org/licenses/gpl-3.0.txt">GPLv2 or later</a>)</li>
<li><a href="https://github.com/rjeschke/txtmark">Txtmark</a>
(<a href="http://www.apache.org/licenses/LICENSE-2.0">"Apache License 2.0"</a>)</li>
</ul>
<h3>Images / Other resources</h3>
@ -50,7 +49,7 @@ along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</pre
(Star Icon) by Everaldo Coelho under <a href="http://www.gnu.org/licenses/lgpl.html">LGPL</a>.</li>
<li>Several Icons from the <a href="http://tango.freedesktop.org/Tango_Icon_Library">Tango Icon Theme</a>
(Public Domain).</li>
<li>Edit Icon (Pencil Image), Ok Icon (Green Arrow), Invalid Icon (Cross) from <a href="http://www.icon-king.com/projects/nuvola/">NUVOLA ICON THEME</a> for KDE 3.x by David Vignoni
<li>Several Icons from the <a href="http://www.icon-king.com/projects/nuvola/">NUVOLA ICON THEME</a> for KDE 3.x by David Vignoni
under <a href="http://www.gnu.org/licenses/lgpl.html">LGPL</a>.</li>
<li>Robot Icon by <a href="http://p.yusukekamiyamane.com">Yusuke Kamiyamane</a> under <a href="http://creativecommons.org/licenses/by/3.0/">CC-BY 3.0</a>.</li>
<li>Emoji:
@ -79,6 +78,7 @@ along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</pre
their Emotes/APIs and support.</li>
<li>Thanks to <a href="http://www.nightdev.com">Nightdev</a> for allowing the use
of the <a href="http://www.nightdev.com/betterttv/">BetterTTV</a> emotes.</li>
<li>Thanks to users providing good bug reports and giving feedback.</li>
</ul>
<h2>Other License Information</h2>

View File

@ -9,6 +9,9 @@
<p>Under <code>Settings - Commands</code> you can add Custom Commands and
customize some Context Menus (and the User Info Dialog) with your own entries.</p>
<p>Check out <a href="https://www.youtube.com/user/chattyclient">YouTube</a>
for various video tutorials.</p>
<ul>
<li>
<a href="#custom-commands">Custom Commands</a>
@ -186,14 +189,14 @@
context. To use an identifier put it in a replacement, for example
<code>$(chan)</code> or <code>$$join(1-,/)</code>.</p>
<table class="settings">
<table class="settings" cellspacing="1">
<tr>
<th>Context</th>
<th>Identifier</th>
<th>Description</th>
</tr>
<tr>
<td rowspan="9"><em>All</em></td>
<th rowspan="9"><em>All</em></th>
<td><code>chan</code></td>
<td>The current channel context (without leading #)</td>
</tr>
@ -232,7 +235,7 @@
</tr>
<!-- User Context Menu -->
<tr>
<td rowspan="7">User Context Menu</td>
<th rowspan="7">User Context Menu</th>
<td><code>1</code>, <code>nick</code></td>
<td>Name of the user</td>
</tr>
@ -273,7 +276,7 @@
</tr>
<!-- User Dialog -->
<tr>
<td rowspan="6">User Dialog</td>
<th rowspan="7">User Dialog</th>
<td><em>All from User Context Menu</em></td>
<td>See above</td>
</tr>
@ -312,18 +315,18 @@
</tr>
<!-- Channel Context Menu -->
<tr>
<td>Channel Context menu</td>
<th>Channel Context menu</th>
<td><code>1</code></td>
<td>Name of the currently active channel (without leading #)</td>
</tr>
<!-- Streams Context Menu -->
<tr>
<td>Streams Context menu</td>
<th>Streams Context menu</th>
<td><code>1-</code></td>
<td>Names of selected streams</td>
</tr>
<tr>
<td>Hotkey</td>
<th>Hotkey</th>
<td><code>1</code></td>
<td>The currently <a href="help.html#userselection">selected user</a> (if present)</td>
</tr>

View File

@ -33,7 +33,7 @@
<th>Follow</th>
</tr>
<tr>
<td><a href="https://api.twitch.tv/kraken/oauth2/authorize?response_type=token&client_id=spyiu9jqdnfjtwv6l1xjk5zgt8qb91l&redirect_uri=http://127.0.0.1:61324/token/&force_verify=true&scope=chat_login+channel_editor+channel_commercial+user_read+channel_subscriptions+user_follows_edit">Request new login</a></td>
<td><a href="https://id.twitch.tv/oauth2/authorize?response_type=token&client_id=spyiu9jqdnfjtwv6l1xjk5zgt8qb91l&redirect_uri=http://127.0.0.1:61324/token/&force_verify=true&scope=chat_login+channel_editor+channel_commercial+user_read+channel_subscriptions+user_follows_edit">Request new login</a></td>
<td></td>
<td></td>
<td></td>
@ -42,7 +42,7 @@
<td></td>
</tr>
<tr>
<td><a href="https://api.twitch.tv/kraken/oauth2/authorize?response_type=token&client_id=spyiu9jqdnfjtwv6l1xjk5zgt8qb91l&redirect_uri=http://127.0.0.1:61324/token/&force_verify=true&scope=chat_login+channel_editor+channel_commercial+user_read+channel_subscriptions">Request new login</a></td>
<td><a href="https://id.twitch.tv/oauth2/authorize?response_type=token&client_id=spyiu9jqdnfjtwv6l1xjk5zgt8qb91l&redirect_uri=http://127.0.0.1:61324/token/&force_verify=true&scope=chat_login+channel_editor+channel_commercial+user_read+channel_subscriptions">Request new login</a></td>
<td></td>
<td></td>
<td></td>
@ -51,7 +51,7 @@
<td></td>
</tr>
<tr>
<td><a href="https://api.twitch.tv/kraken/oauth2/authorize?response_type=token&client_id=spyiu9jqdnfjtwv6l1xjk5zgt8qb91l&redirect_uri=http://127.0.0.1:61324/token/&force_verify=true&scope=chat_login+user_read">Request new login</a></td>
<td><a href="https://id.twitch.tv/oauth2/authorize?response_type=token&client_id=spyiu9jqdnfjtwv6l1xjk5zgt8qb91l&redirect_uri=http://127.0.0.1:61324/token/&force_verify=true&scope=chat_login+user_read">Request new login</a></td>
<td></td>
<td></td>
<td></td>
@ -60,7 +60,7 @@
<td></td>
</tr>
<tr>
<td><a href="https://api.twitch.tv/kraken/oauth2/authorize?response_type=token&client_id=spyiu9jqdnfjtwv6l1xjk5zgt8qb91l&redirect_uri=http://127.0.0.1:61324/token/&force_verify=true&scope=chat_login">Request new login</a></td>
<td><a href="https://id.twitch.tv/oauth2/authorize?response_type=token&client_id=spyiu9jqdnfjtwv6l1xjk5zgt8qb91l&redirect_uri=http://127.0.0.1:61324/token/&force_verify=true&scope=chat_login">Request new login</a></td>
<td></td>
<td></td>
<td></td>

View File

@ -26,6 +26,7 @@
<h1><a name="top">Guide: Settings and other files</a></h1>
<p>
<a href="#files">Files / Directory structure</a> |
<a href="#uninstall">Uninstall</a> |
<a href="#backup">Backup</a>
</p>
<p>Learn what directories and files Chatty creates/uses.</p>
@ -36,6 +37,9 @@
subdirectory called <code>.chatty</code>. You can enter the command
<code>/dir</code> to display and <code>/openDir</code> to open the
settings directory that Chatty currently uses.</p>
<p>If you want to replace, copy or delete setting files in any way, make
sure to close Chatty before doing so.</p>
<p>You can change the settings directory via different ways:</p>
@ -192,6 +196,18 @@
<p>This is where the Chatty.jar is located and is used for loading libraries
that Chatty uses.</p>
<h2><a name="uninstall">Uninstall</a></h2>
<p>To remove Chatty from your computer:</p>
<ul>
<li>Locate your settings directory by entering <code>/openDir</code> in
Chatty. If you customized your Chatlog or Sounds directory you may
want to find those in the Settings.</li>
<li>Close Chatty.</li>
<li>Delete the directory where Chatty is installed (where the <code>Chatty.exe</code>
or <code>Chatty.jar</code> are located) and the settings directory.</li>
</ul>
<h2><a name="backup">Backup</a></h2>
<p>Chatty performs an automatic backup (enabled by default) everytime it is
started (if at least the number of days as defined in the settings have passed,

524
help/help-laf.html Normal file
View File

@ -0,0 +1,524 @@
<!DOCTYPE html>
<html>
<title>Chatty Help - Look & Feel</title>
<link rel="stylesheet" type="text/css" href="style.css" />
<style>
table.settings th {
text-align: left;
}
table.settings td.note {
border: 0;
}
</style>
<body>
<h1>Look & Feel</h1>
<p>A Java Look & Feel affects the colors/style (look) of the entire
program as well as some of the behavior/shortcuts (feel). Various
different Look & Feel can be selected in the Settings under "Look"
(additional chat-specific customization is possible on some subpages
such as "Chat Colors" or "Font").</p>
<p><em>Note:</em> Changing Look & Feel properties can cause some slight
GUI issues, so a restart of Chatty is recommended to complete your
changes.</p>
<h2><a name="custom">Custom Properties</a></h2>
<p>The JTattoo Look & Feel (HiFi, Noire, Minte, Graphite, Aero, Fast, Luna)
allow you to use these properties, which overwrite their default
values. There are also <a href="#chatty">a few properties</a> that
can have an effect in every Look & Feel. They can be changed using
<a href="help-setting_commands.html">setting commands</a>:</p>
<ul>
<li><code>/set lafCustomTheme &lt;property&gt; &lt;value&gt;</code> - set one property value</li>
<li><code>/remove lafCustomTheme &lt;property&gt;</code> - remove one property</li>
<li><code>/clearSetting lafCustomTheme</code> - remove all properties</li>
</ul>
<p><em>Tip:</em> Enter <code>/set lafc</code> + <kbd>TAB</kbd> to
autocomplete setting name.</p>
<p>The following list may not contain all properties. Some more may be
listed <a href="http://www.jtattoo.net/ThemeProps.html">here</a>,
although that list is likely also not complete. Chatty also has some
new properties added.</p>
<p>Not all properties work the same for all Look & Feel and the
documentation on that isn't complete, so you'll just have to try
around a bit.</p>
<ul>
<li>Colors must be given as "red green blue", e.g.
<code>/set lafCustomTheme selectionBackgroundColorLight 255 60 0</code></li>
<li>Settings that have <code>[Light/Dark]</code> have a top and bottom
color for gradients. For example for <code>buttonColor[Light/Dark]</code>
you can set both <code>buttonColorLight</code> and
<code>buttonColorDark</code> (to the same if you don't want a gradient).</li>
<li>Settings that say <code>on/off</code> are enabled when set to
<code>on</code> and disabled otherwise on any other value</li>
</ul>
<table class="settings" cellspacing="1">
<tr>
<th colspan="4">Window Properties</th>
</tr>
<tr>
<td>windowTitleForegroundColor</td>
<td>text</td>
<td>Active window title</td>
<td></td>
</tr>
<tr>
<td>windowTitleBackgroundColor</td>
<td>bg</td>
<td></td>
<td>Fast only?</td>
</tr>
<tr>
<td>windowTitleColor[Light/Dark]</td>
<td>bg</td>
<td>Active window title/Dark for window frame</td>
<td></td>
</tr>
<tr>
<td>windowInactiveTitleForegroundColor</td>
<td>text</td>
<td>Inactive window title</td>
<td></td>
</tr>
<tr>
<td>windowInactiveTitleBackgroundColor</td>
<td>bg</td>
<td></td>
<td>Fast only?</td>
</tr>
<tr>
<td>windowInactiveTitleColor[Light/Dark]</td>
<td>bg</td>
<td>Inactive window title/Dark for window frame</td>
<td></td>
</tr>
<tr>
<td>windowIconColor</td>
<td>fg</td>
<td>Window icons (minimize/close/..)</td>
<td></td>
</tr>
<tr>
<td>windowIconShadowColor</td>
<td>fg</td>
<td>^ Shadow</td>
<td></td>
</tr>
<tr>
<td>windowIconRolloverColor</td>
<td>fg</td>
<td>^ Mouseover</td>
<td></td>
</tr>
<tr>
<td>windowBorderColor</td>
<td>border</td>
<td>Outer (active) window border</td>
<td></td>
</tr>
<tr>
<td>windowInactiveBorderColor</td>
<td>border</td>
<td>Outer (inactive) window border</td>
<td></td>
</tr>
<tr>
<td>windowInnerBorderColor</td>
<td>border</td>
<td>Inner (active) window border, defaults to windowTitleColorDark</td>
<td>HiFi/Noire only</td>
</tr>
<tr>
<td>windowInactiveInnerBorderColor</td>
<td>border</td>
<td>Inner (inactive) window border, defaults to windowInactiveTitleColorDark</td>
<td>HiFi/Noire only</td>
</tr>
<!-- ########################### -->
<tr>
<th colspan="4">General Properties</th>
</tr>
<tr>
<td>foregroundColor</td>
<td>text</td>
<td>Most text</td>
<td></td>
</tr>
<tr>
<td>backgroundColor</td>
<td>bg</td>
<td>Many backgrounds</td>
<td></td>
</tr>
<tr>
<td>frameColor</td>
<td>fg</td>
<td>Some frames around GUI elements (like scrollpane, edit box)</td>
<td></td>
</tr>
<tr>
<td>frameColor2</td>
<td>fg</td>
<td>^ Secondary color (bottom/right), if applicable</td>
<td></td>
</tr>
<tr>
<td>controlForegroundColor</td>
<td>fg</td>
<td>Various GUI elements (e.g. tabs)</td>
<td></td>
</tr>
<tr>
<td>controlColor[Light/Dark]</td>
<td>bg</td>
<td>^</td>
<td></td>
</tr>
<tr>
<td>controlHighlightColor</td>
<td>fg</td>
<td>Table header?</td>
<td></td>
</tr>
<tr>
<td>controlShadowColor</td>
<td>fg</td>
<td>Table header?</td>
<td></td>
</tr>
<tr>
<td>controlDarkShadowColor</td>
<td>fg</td>
<td>Tabs Shadow/outline</td>
<td></td>
</tr>
<tr>
<td>inactiveColor[Light/Dark]</td>
<td>bg</td>
<td>^ When inactive window</td>
<td></td>
</tr>
<tr>
<td>disabledBackgroundColor</td>
<td>bg</td>
<td>For disabled GUI elements ("greyed out")</td>
<td></td>
</tr>
<tr>
<td>disabledForegrundColor</td>
<td>text</td>
<td>^</td>
<td></td>
</tr>
<tr>
<td>focusColor</td>
<td>fg</td>
<td>Focused GUI element dashed line (like button)</td>
<td></td>
</tr>
<tr>
<td>focusCellColor</td>
<td>fg</td>
<td>Focused Tree item border</td>
<td></td>
</tr>
<tr>
<td>gridColor</td>
<td>fg</td>
<td>Table grid</td>
<td></td>
</tr>
<tr>
<td>tabSelectionForegroundColor</td>
<td>text</td>
<td>Selected tab</td>
<td></td>
</tr>
<tr>
<td>textShadow</td>
<td>fg</td>
<td>on/off</td>
<td></td>
</tr>
<!-- ########################### -->
<tr>
<th colspan="4">Menu Properties</th>
</tr>
<tr>
<td>menuForegroundColor</td>
<td>text</td>
<td>Menu/Context Menu</td>
<td></td>
</tr>
<tr>
<td>menuBackgroundColor</td>
<td>bg</td>
<td>^</td>
<td></td>
</tr>
<tr>
<td>menuColor[Light/Dark]</td>
<td>bg</td>
<td></td>
<td>Not for HiFi/Noire</td>
</tr>
<tr>
<td>menuSelectionForegroundColor</td>
<td>text</td>
<td>Menu/Context Menu mouseover</td>
<td></td>
</tr>
<tr>
<td>menuSelectionBackgroundColor</td>
<td>bg</td>
<td>^</td>
<td></td>
</tr>
<tr>
<td>menuSelectionBackgroundColor[Light/Dark]</td>
<td>bg</td>
<td></td>
<td>Graphite</td>
</tr>
<!-- ########################### -->
<tr>
<th colspan="4">Button Properties</th>
</tr>
<tr>
<td>buttonForegroundColor</td>
<td>text</td>
<td>Button</td>
<td></td>
</tr>
<tr>
<td>buttonColor[Light/Dark]</td>
<td>bg</td>
<td>Button</td>
<td></td>
</tr>
<tr>
<td>rolloverForegroundColor</td>
<td>text</td>
<td>Button/Tab mouseover</td>
<td>HiFi/Noire not for Tab</td>
</tr>
<tr>
<td>rolloverColor[Light/Dark]</td>
<td>bg</td>
<td>Button/Tab mouseover</td>
<td></td>
</tr>
<tr>
<td>pressedForegroundColor</td>
<td>text</td>
<td>Button pressed</td>
<td></td>
</tr>
<tr>
<td>pressedBackgroundColor[Light/Dark]</td>
<td>bg</td>
<td>Button pressed</td>
<td></td>
</tr>
<!-- ########################### -->
<tr>
<th colspan="4">Input Properties</th>
</tr>
<tr>
<td>inputForegroundColor</td>
<td>text</td>
<td>Input like textfields, comboboxes, lists..</td>
<td></td>
</tr>
<tr>
<td>inputBackgroundColor</td>
<td>bg</td>
<td>^</td>
<td></td>
</tr>
<tr>
<td>selectionForegroundColor</td>
<td>text</td>
<td>Selected text/list entries</td>
<td></td>
</tr>
<tr>
<td>selectionBackgroundColor</td>
<td>bg</td>
<td>^</td>
<td></td>
</tr>
<tr>
<td>selectionBackgroundColor[Light/Dark]</td>
<td>bg</td>
<td>Selected tab</td>
<td></td>
</tr>
<tr>
<td colspan="4" class="note">(Note: The chat inputbox colors are changed in the "Chat Colors" settings)</td>
</tr>
<!-- ########################### -->
<tr>
<th colspan="4">Tooltip Properties</th>
</tr>
<tr>
<td>tooltipForegroundColor</td>
<td>text</td>
<td>Tooltips</td>
<td></td>
</tr>
<tr>
<td>tooltipBackgroundColor</td>
<td>bg</td>
<td>^</td>
<td></td>
</tr>
<tr>
<td>tooltipShadowSize</td>
<td></td>
<td>number</td>
<td></td>
</tr>
<tr>
<td>tooltipCastShadow</td>
<td></td>
<td>on/off</td>
<td></td>
</tr>
<tr>
<td>tooltipBorderSize</td>
<td></td>
<td>number</td>
<td></td>
</tr>
<!-- ########################### -->
<tr>
<th colspan="4">Other Properties</th>
</tr>
<tr>
<td>macStyleWindowDecoration</td>
<td></td>
<td>on/off</td>
<td></td>
</tr>
<tr>
<td>macStyleScrollBar</td>
<td></td>
<td>More minimalistic scrollbar, on/off</td>
<td></td>
</tr>
<tr>
<td>linuxStyleScrollBar</td>
<td></td>
<td>on/off</td>
<td></td>
</tr>
<tr>
<td>centerWindowTitle</td>
<td></td>
<td>on/off</td>
<td></td>
</tr>
<tr>
<td>menuOpaque</td>
<td></td>
<td>Non-transparent menus, on/off</td>
<td></td>
</tr>
<tr>
<td>tabSeparatorStyle</td>
<td></td>
<td>Style of the separator between the tabs and content, a single
number (0-8, 0 default)</td>
<td>HiFi/Noire only</td>
</tr>
<tr>
<td>drawSquareButtons</td>
<td></td>
<td>Don't draw rounded buttons</td>
<td>Not all LaF</td>
</tr>
<tr>
<td>flatColors</td>
<td></td>
<td>Use some inactive window colors for the Noir Look&amp;Feel, on/off</td>
<td></td>
</tr>
<!-- ########################### -->
<tr>
<th colspan="4"><a name="chatty">Chatty Properties (any Look & Feel)</a></th>
</tr>
<tr>
<td>cTabForegroundHighlight</td>
<td>text</td>
<td>Tab color when a message was highlighted in the channel</td>
<td></td>
</tr>
<tr>
<td>cTabForegroundUnread</td>
<td>text</td>
<td>Tab color when messages have been received since last having
it open</td>
<td></td>
</tr>
<tr>
<td>cInputBorder</td>
<td>border</td>
<td>The border around the chat inputbox (e.g. <code>border(1,255 0 0)</code>
for a red border)</td>
<td></td>
</tr>
<!-- ########################### -->
<tr>
<th colspan="4">Not used in Chatty or not sure what it is</th>
</tr>
<tr>
<td>tabAreaBackgroundColor</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>toolbarForegroundColor</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>toolbarBackgroundColor</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>toolbarColorLight</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>toolbarColorDark</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>desktopColor</td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
</body>
</html>

View File

@ -22,7 +22,7 @@
<li>Java prefers to allocate more memory than absolutely needed, so it
can reduce the work going into Garbage Collection, which reduces CPU
usage.</li>
<li>Java management and ressources it has to have loaded add some
<li>Java management and resources it has to have loaded add some
overhead that other programs may not have.</li>
<li>Chatty stores a lot of information for all it's features to work,
such as emoticons, badges, stream info, user data - some of which

View File

@ -17,6 +17,7 @@
<h1><a name="top">Release Information</a></h1>
<p>
<a href="#0.11">0.11</a> |
<a href="#0.10">0.10</a> |
<a href="#0.9.7">0.9.7</a> |
<a href="#0.9.6">0.9.6</a> |
@ -58,7 +59,80 @@
full list of changes.</p>
<h2>
<a name="0.10">Version 0.10</a> <a name="latest">(This one!)</a> (2019-10-07)
<a name="0.10">Version 0.11</a> <a name="latest">(This one!)</a> (2020-01-14)
<a href="#top" class="top">[back to top]</a>
</h2>
<p>The new "Look" settings now contain more customization options, including
the "HiFi Custom" Look &amp; Feel, which allows setting a custom
foreground and background color and various other styling options. Also
contains a link to documentation for more advanced usage now.</p>
<p><em>Note:</em> The Moderation Log (and related features) now require the
"Moderate Channel" access. View and change your access under "Main - Login..".
Restart Chatty after changing to ensure everything updated.</p>
<pre>
### Customization / GUI Improvements
- Added more Look customization
- Added more Notification options
- Added more information to Stream Status Notification
- Added setting to customize User Dialog timestamp
- Added timestamp custom AM/PM formatting
- Added Copy/Cut/Paste context menus in some places
- Improved various Settings Dialog sections
### Moderating / Broadcasting
- Added "Open in.." menu to User Context Menu (open in other channel)
- Added account register time to Followers/Subscribers list
- Open User Dialog and User Context Menu from Followers/Subscribers list
- Admin Dialog: Added warning if title may be too long
- Added /commerical command
### Text Matching (Highlight, Ignore, Msg. Colors, ..)
- Removed escape char `\` from meta prefixes (so writing regex doesn't require
escaping backslashes, now only quoting possible, e.g. `+start:"!bet top5"`)
- Added prefixes `blacklist:` (blacklist per item) and `text:`
- Added negated variants for text matching prefixes (such as `!start:`)
- Now supprting several text matching prefixes per item (prefix prefix with +),
like `+start:!set w:bet` (starts with "!set" and contains the word "bet")
- Added "config:url" to require a URL to be in the text (same URL detection as
clickable URLs in chat)
- Improved setting editor (shows more information, works better for testing)
### Twitch Features
- Removed Chat Rules dialog (Twitch removed the API)
- Removed Rooms support (Twitch discontinued Rooms)
- Show more detailed Points Redemption messages in your own channel (if you have
allowed proper access, see "Main - Login..")
- Recognize founders as subscribers
### Third-Party Features
- Added limited support for seasonal combined emotes (such as "Kappa TopHat"),
doesn't work in combination with animated emotes
- Changed to BTTV v3 API
## Other Changes
- Switched to another Websocket library, in an attempt to improve connection
reliability for PubSub (Moderation Log) and FFZ-WS
- Added PubSub/FFZ-WS connection status to title
- Updated notifications in menubar, show some additional warning messages
- Mentions: Recognize users from user-related info messages
- Changed reconnecting timing a bit
- Updated translations (Thanks to contributors!)
- Updated help
### Bugfixes
- Fixed removed custom names sometimes not updating immediately
- Fixed Emote Dialog sometimes not updating to current channel
- Fixed /echo causing an empty TAB to open when used before connecting
- Added "chan" parameter as was documented to Notification OS Command
- Fixed some command TAB Completion case issues
- Fixed some updating GUI issues related to changing Look and Feel settings
- Changed to new Twitch Authentication URL
</pre>
<h2>
<a name="0.10">Version 0.10</a> (2019-10-07)
<a href="#top" class="top">[back to top]</a>
</h2>
<p>This update adds limited support for the new channel points feature (more

View File

@ -57,8 +57,7 @@
<li>For Addressbook related settings, see <a href="help-addressbook.html#advanced">Addressbook Help</a>.</li>
</ul>
<p>Settings with a <span class="settingExclusive">slightly darker background color</span>
are settings that are not available in the Settings Dialog and can only be
<p>Some settings are not available in the Settings Dialog and can only be
changed via commands (and sometimes also commandline options). Settings with
a <span class="settingNoCommandEdit">lighter color</span> can't (or are not recommended to) be changed
via setting commands, but are added to the list because their value can be
@ -78,8 +77,8 @@
<a href="#cm">Copy Messages</a> |
<a href="#openurl">Open URL Command</a>
</p>
<table class="settings" style="border-collapse: collapse;">
<tr style="border-bottom: 1px solid #EEE">
<table class="settings" cellspacing="1">
<tr>
<th>Setting</th>
<th>Type</th>
<th>Values</th>
@ -155,7 +154,7 @@
</table>
<h3><a name="laf">Look and Feel</a></h3>
<table class="settings">
<table class="settings" cellspacing="1">
<tr style="border-bottom: 1px solid #EEE">
<th>Setting</th>
<th>Type</th>
@ -187,7 +186,7 @@
<td>Theme properties</td>
<td><em>empty</em></td>
<td>This setting can be used to directly set your own
<a href="http://www.jtattoo.net/ThemeProps.html">JTattoo Theme properties</a>.</td>
<a href="help-laf.html#custom">JTattoo Theme properties</a>.</td>
</tr>
</table>
<p><em>Note:</em> You may need to restart Chatty for Look and Feel
@ -195,7 +194,7 @@
<h3><a name="font">Font</a></h3>
<table class="settings">
<table class="settings" cellspacing="1">
<tr style="border-bottom: 1px solid #EEE">
<th>Setting</th>
<th>Type</th>
@ -255,7 +254,7 @@
versions before 0.7.3).</p>
<h3><a name="time">Time</a> <span style="font-size:0.5em;">Dr. Freeman..</span></h3>
<table class="settings">
<table class="settings" cellspacing="1">
<tr style="border-bottom: 1px solid #EEE">
<th>Setting</th>
<th>Type</th>
@ -293,7 +292,7 @@
<h3><a name="server">Server/Connection Settings</a></h3>
<table class="settings">
<table class="settings" cellspacing="1">
<tr style="border-bottom: 1px solid #EEE">
<th>Setting</th>
<th>Type</th>
@ -381,7 +380,7 @@
</table>
<h3><a name="chat">Chat</a></h3>
<table class="settings">
<table class="settings" cellspacing="1">
<tr style="border-bottom: 1px solid #EEE">
<th>Setting</th>
<th>Type</th>
@ -415,7 +414,7 @@
</table>
<h3><a name="window">Window</a></h3>
<table class="settings">
<table class="settings" cellspacing="1">
<tr style="border-bottom: 1px solid #EEE">
<th>Setting</th>
<th>Type</th>
@ -455,7 +454,7 @@
</table>
<h3><a name="streamchat">Stream Chat</a></h3>
<table class="settings">
<table class="settings" cellspacing="1">
<tr style="border-bottom: 1px solid #EEE">
<th>Setting</th>
<th>Type</th>
@ -498,7 +497,7 @@
</table>
<h3><a name="streamhighlights">Stream Highlights</a></h3>
<table class="settings">
<table class="settings" cellspacing="1">
<tr style="border-bottom: 1px solid #EEE">
<th>Setting</th>
<th>Type</th>
@ -535,7 +534,7 @@
<h3><a name="debugging">Debugging</a></h3>
<table class="settings">
<table class="settings" cellspacing="1">
<tr style="border-bottom: 1px solid #EEE">
<th>Setting</th>
<th>Type</th>
@ -559,7 +558,7 @@
</table>
<h3><a name="bots">Bot Badges</a></h3>
<table class="settings">
<table class="settings" cellspacing="1">
<tr style="border-bottom: 1px solid #EEE">
<th>Setting</th>
<th>Type</th>
@ -597,7 +596,7 @@
<h3><a name="cm">Copy Messages</a></h3>
<p>This can automatically copy all incoming messages into the clipboard.</p>
<table class="settings">
<table class="settings" cellspacing="1">
<tr style="border-bottom: 1px solid #EEE">
<th>Setting</th>
<th>Type</th>
@ -639,7 +638,7 @@
<h3><a name="openurl">Open URL Command</a></h3>
<table class="settings">
<table class="settings" cellspacing="1">
<tr style="border-bottom: 1px solid #EEE">
<th>Setting</th>
<th>Type</th>

View File

@ -57,6 +57,9 @@
Favorites/History dialog.</li>
</ul>
<h3>Directory</h3>
<div class="moreInfo">More information: <a href="help-guide_folders.html">Settings and other files</a></div>
<h2>
<a name="Look">Look</a>
<a href="#top" class="top">[back to menu]</a>
@ -174,20 +177,15 @@
<ul>
<li><strong>Show Badges</strong>: Shows badges as images instead of
just text</li>
<li><strong>Enable Custom Usericons</strong>: Use the custom icons
<li><strong>Enable Custom Badges</strong>: Use the custom icons
defined in the table below</li>
<li><strong>Enable Bot Badge</strong>: Enables showing of the bot badge
<li><strong>Show Bot Badge</strong>: Enables showing of the bot badge
for known bots. Chatty shows a single bot badge for all known bots. The
list of bot names comes from different sources: The <code>botNames</code>
setting, the BTTV API and the FFZ API.
<ul>
<li><strong>BTTV</strong>: Use botnames from the BTTV API</li>
<li><strong>FFZ</strong>: Use botnames from the FFZ API</li>
</ul>
</li>
setting, the BTTV API and the FFZ API. (See also: <a href="help-setting_commands.html#bots">Setting Commands</a>)</li>
</ul>
<h3><a name="CustomUsericons">Custom Usericons</a></h3>
<h3><a name="CustomUsericons">Custom Badges</a></h3>
<p>Add entries to the table to show additional icons (<code>Addon</code>-Type)
or replace the default icons (all other Types).</p>
<p>The order of the entries can matter, they are looked at from the top:</p>
@ -201,7 +199,7 @@
matches is used.</li>
</ul>
<h3>Custom Usericon Properties</h3>
<h3>Custom Badges Properties</h3>
<dl class="dl-settings">
<dt>Type</dt>
<dd>A type of <code>Addon</code> will add an additional badge. All
@ -301,7 +299,7 @@
you can specify the new badge id/version yourself.</dd>
<dd><em>Note:</em> The order of Addon-badges relative to eachother is
determined by the order they are added to the Custom Usericon table.</dd>
determined by the order they are added to the Custom Badges table.</dd>
<dt>Image File</dt>
<dd>The image to use. Must be a <code>.png</code> and is recommended to
@ -313,7 +311,7 @@
it and rescan to update the list.</dd>
<dd>The <em>special image file name</em> <code>$default</code> will use
the default image file, that would be shown without defining
Custom Usericons. This can be useful if you e.g. want to replace all
Custom Badges. This can be useful if you e.g. want to replace all
Badge Types, except for one, so you can define that one to use the
default.</dd>
<dd><em>Tip:</em> You should also be able to manually enter the full
@ -765,6 +763,10 @@
the search text to modify the matching behaviour: <code>[text-prefix:]&lt;search&nbsp;text&gt;</code></p>
<ul>
<li><code>text:</code> is the same as without a prefix, but can be useful
to make sure the text isn't interpreted as a prefix, for example
<code>text:start:Let's go</code> would match <code>start:Let's go</code>
anywhere in the message (case insensitive).</li>
<li><code>cs:</code> makes it case-sensitive, so <code>cs:test</code>
matches <code>test</code> but not <code>Test</code>.</li>
<li><code>w:</code> matches at word boundaries, e.g. <code>w:anna</code>
@ -801,6 +803,19 @@
</li>
</ul>
<p>All Text Matching Prefixes can be inverted (matches when it doesn't find
the search text) by prepending an exclamation mark, for example: <code>!start:!bet all</code>.
See the <a href="#Highlight_Prefix-blacklist"><code>blacklist:</code> Prefix description</a>
for further information on the differences between blacklisting and
negated matches.</p>
<p>Additionally, several Text Matching Prefixes can be specified by prepending
a plus sign. In this case the value cannot contain spaces or must be
quoted. Example: <code>+!start:"!bet all" regi:Regular search text</code></p>
<p>Only the main search text (no prefix or using any of the non-modified
Text Matching Prefixes) will mark Highlight matches in chat.</p>
<h3><a name="Highlight_Meta_Matching">Meta Prefixes (Matching)</a></h3>
<p>The following prefixes don't match on the text itself, but define other
things that should or should not trigger a Highlight. You can place one
@ -817,14 +832,13 @@
<li>Prefixes can normally not contain spaces (it wouldn't be clear
whether the space is part of the prefix value or a separator between
prefixes), however you can enclose the prefix value (or part of it)
in quotes or escape each space with a backlash. Example:
<code>replacement:"text&nbsp;with&nbsp;space"</code> or
<code>replacement:text\ with\ space</code></li>
<li>Quotes and backslashes have to be escaped when intended to be used literally (<code>\"</code> or <code>\\</code>).</li>
in quotes. Two quotes can be used to add a literal quote. Example:
<code>replacement:"text&nbsp;with&nbsp;""space"""</code> (meaning
the value is <code>text&nbsp;with&nbsp;"space"</code>)</li>
<li>When a prefix can have several values, they must be comma-separated
(without spaces). Example: <code>cat:category1,category2</code>.
Commas in list values can be quoted or escaped as well for them to
be used literally instead of as a separator.</li>
Commas in list values can be quoted as well for them to be used
literally instead of as a separator.</li>
</ul>
<p>Possible matching prefixes:</p>
@ -897,8 +911,27 @@
specified in the same <code>config:</code> prefix, only one
has to match), prefix value with <code>reg:</code> to use
regex matching on the value.</li>
<li><code>config:url</code> - Message must contain a URL (same
as what is made clickable)</li>
</ul>
</li>
<li><a name="Highlight_Prefix-blacklist"><code>blacklist:</code></a> to specify one or more text patterns
(separated by comma) that will prevent the overall match if they
encompass the entire text match. Example: <code>blacklist:"!bet all" start:!bet</code>
will match all messages starting with <code>!bet</code> but will not
match <code>!bet all</code>. Can use any regular Text Matching Prefix.<br /><br />
This is of course similiar to using a negated text match, like
<code>+!text:"!bet all" start:!bet</code>, however the blacklist is
"passive", so while <code>+!text:"!bet all"</code> will match only
if <code>!bet all</code> is not present anywhere, <code>blacklist:"!bet all"</code>
(by itself) will <em>always</em> match because it is not actually
a requirement itself, it just modifies text matching requirements,
so technicially there is no requirement for a match.<br /><br />
Additionally, a negated match like <code>+!text:!cheesecake reg:^!\w+</code>
will prevent the match if <code>!cheesecake</code> appears anywhere
in the message, while <code>blacklist:!cheesecake reg:^!\w+</code>
will only prevent the match when it fully encompasses the regular
text match, so only when the message starts with <code>!cheesecake</code>.</li>
</ul>
<h3><a name="Highlight_Meta_Behaviour">Meta Prefixes (Behaviour)</a></h3>
@ -907,7 +940,7 @@
prefixes before the search text (separated by spaces):
<code>[meta-prefix:value]&nbsp;[..]&nbsp;[text-prefix:]&lt;search text&gt;</code></p>
<p>See <a href="#Highlight_Meta_Matching">Meta Prefixes (Matching)</a> for quoting/escaping.</p>
<p>See <a href="#Highlight_Meta_Matching">Meta Prefixes (Matching)</a> notes for quoting special characters.</p>
<ul>
<li><code>color:</code> to specify a color other than the default

View File

@ -5,7 +5,7 @@
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<h1><a name="top">Chatty (Version: 0.10)</a></h1>
<h1><a name="top">Chatty (Version: 0.11)</a></h1>
<table>
<tr>
<td valign="top">
@ -344,8 +344,18 @@
<code>/follow</code> and <code>/unfollow</code> commands.</dd>
<dt><code>Your Subscriptions</code></dt>
<dd>Enables more accurate display or your emotes (for "Extra - Emotes
<dd>Enables more accurate display of your emotes (for "Extra - Emotes
Dialog", TAB Completion and when sending a message).</dd>
<dt><code>Moderate Channel</code></dt>
<dd>Required to receive moderator actions in channels you are a moderator,
which show under "Extra - Moderation Log", show which mod performed
an action in chat and shows messages caught by AutoMod (depending
on settings under "Main - Settings - Moderation").</dd>
<dt><code>Points Redemptions</code></dt>
<dd>Enables more accurate display of Channel Points Redemptions in your
channel.</dd>
</dl>
<p>Once requested from Twitch, the login data is stored locally on your

View File

@ -67,24 +67,25 @@ td {
}
table.settings {
border-collapse: collapse;
margin-top: 10px;
background-color: #BBBBBB;
}
table.settings td {
padding: 3px;
padding: 4px;
margin: 0;
border: 1px solid #DDDDDD;
border: 0;
background-color: #FDFDFD;
}
table.settings th {
padding: 0;
padding: 4px;
margin: 0;
border-bottom: 1px solid #000;
background-color: #EDEDED;
}
.setting {
font-family: monospace;
}
.settingExclusive {
background-color: #EEEEEE;
table.settings tr.settingExclusive td {
}
.settingNoCommandEdit {
color: #999999;

View File

@ -16,9 +16,9 @@ function loaded() {
{ ceiling: null, text: "$years years ago" }
]
}
document.getElementById("ago").innerHTML = "Version 0.10 released "+humanized_time_span("2019/10/07", Date(), custom_date_formats)+"";
document.getElementById("ago").innerHTML = "Version 0.11 released "+humanized_time_span("2020/01/14", Date(), custom_date_formats)+"";
getDownloads("v0.10");
getDownloads("v0.11");
slideshow_init("slideshow");
}
@ -157,7 +157,7 @@ function getDownloads(tag) {
<h2 id="download">Download</h2>
<p>Choose one of the following downloads of <strong>Chatty Version 0.10</strong><span id="dlCount" style="margin-bottom:7px;"></span>. For older versions or betas go to the <a href="https://github.com/chatty/chatty/releases">GitHub Releases</a>.</p>
<p>Choose one of the following downloads of <strong>Chatty Version 0.11</strong><span id="dlCount" style="margin-bottom:7px;"></span>. For older versions or betas go to the <a href="https://github.com/chatty/chatty/releases">GitHub Releases</a>.</p>
<p>If this is your first time using Chatty check out the <a href="help/help-getting-started.html"><strong>Getting Started Guide</strong></a>.</p>
<h3>Windows</h3>
@ -169,11 +169,11 @@ function getDownloads(tag) {
<tr>
<td>
<dl>
<dt><a href="https://github.com/chatty/chatty/releases/download/v0.10/Chatty_0.10_win_standalone_setup.exe"><strong>Download Windows Standalone (Installer)</strong></a> <span class="recommended"><sup>Recommended</sup></span></dt>
<dt><a href="https://github.com/chatty/chatty/releases/download/v0.11/Chatty_0.11_win_standalone_setup.exe"><strong>Download Windows Standalone (Installer)</strong></a> <span class="recommended"><sup>Recommended</sup></span></dt>
<dd>Install into a folder of your choice and start <code>Chatty.exe</code> (or optionally created shortcuts).</dd>
</dl>
<dl>
<dt><a href="https://github.com/chatty/chatty/releases/download/v0.10/Chatty_0.10_win_standalone.zip">Download Windows Standalone (.zip)</a></dt>
<dt><a href="https://github.com/chatty/chatty/releases/download/v0.11/Chatty_0.11_win_standalone.zip">Download Windows Standalone (.zip)</a></dt>
<dd>Extract the .zip into a folder of your choice and start <code>Chatty.exe</code>.</dd>
</dl>
@ -181,13 +181,13 @@ function getDownloads(tag) {
</td>
<td>
<dl>
<dt><a href="https://github.com/chatty/chatty/releases/download/v0.10/Chatty_0.10_win_setup.exe">Download JAR-Version (Installer)</a></dt>
<dt><a href="https://github.com/chatty/chatty/releases/download/v0.11/Chatty_0.11_win_setup.exe">Download JAR-Version (Installer)</a></dt>
<dd>Can select global hotkey support during installation.</dd>
<dd>Install into a folder of your choice and start <code>Chatty.jar</code> (or optionally created shortcuts).</dd>
</dl>
<dl>
<dt><a href="https://github.com/chatty/chatty/releases/download/v0.10/Chatty_0.10.zip">Download JAR-Version (.zip)</a></dt>
<dd>Also available with global hotkey support for <a href="https://github.com/chatty/chatty/releases/download/v0.10/Chatty_0.10_hotkey_32bit.zip">32bit-Java</a> / <a href="https://github.com/chatty/chatty/releases/download/v0.10/Chatty_0.10_hotkey_64bit.zip">64bit-Java</a></dd>
<dt><a href="https://github.com/chatty/chatty/releases/download/v0.11/Chatty_0.11.zip">Download JAR-Version (.zip)</a></dt>
<dd>Also available with global hotkey support for <a href="https://github.com/chatty/chatty/releases/download/v0.11/Chatty_0.11_hotkey_32bit.zip">32bit-Java</a> / <a href="https://github.com/chatty/chatty/releases/download/v0.11/Chatty_0.11_hotkey_64bit.zip">64bit-Java</a></dd>
<dd>Extract the .zip into a folder of your choice and start <code>Chatty.jar</code>.</dd>
</dl>
</td>
@ -195,7 +195,7 @@ function getDownloads(tag) {
</table>
<h3>Non-Windows</h3>
<p>For OS other than Windows (e.g. Linux or MacOS) you will need to download the <a href="https://github.com/chatty/chatty/releases/download/v0.10/Chatty_0.10.zip">JAR-Version (.zip)</a> and must have Java 8 or later installed on your system. Extract the .zip into a folder of your choice and start <code>Chatty.jar</code>.</p>
<p>For OS other than Windows (e.g. Linux or MacOS) you will need to download the <a href="https://github.com/chatty/chatty/releases/download/v0.11/Chatty_0.11.zip">JAR-Version (.zip)</a> and must have Java 8 or later installed on your system. Extract the .zip into a folder of your choice and start <code>Chatty.jar</code>.</p>
<h2 id="feedback">Contact</h2>
<p>If you have any feedback or questions feel free to contact me. You can <a href="https://discord.gg/WTuqGeJ">join the Chatty Discord</a> <sup>preferred</sup>, write me an <a href="mailto:chattyclient@gmail.com">E-Mail</a> or use <a href="https://twitter.com/chattyclient">Twitter</a>.</p>

View File

@ -97,24 +97,22 @@
</head>
</head>
<body>
<div id="top">
<div id="project"><a href="https://github.com/chatty/chatty">GitHub</a></div>
<div id="youtube"><a href="https://youtube.com/chattyclient">YouTube Channel</a></div>
<div id="twitter"><a href="https://twitter.com/ChattyClient"><img src="twitter.png" /></a></div>
</div>
<div id="content">
<h1><img src="icons2.png" style="margin-bottom: -5px;padding-right: 7px;" />Translate Chatty <span style="font-size:0.7em"><a href="index.html">to main page</a></span></h1>
<h1><img src="img/app_main_32.png" style="margin-bottom: -5px;padding-right: 7px;" />Translate Chatty <span style="font-size:0.7em"><a href="index.html">to main page</a></span></h1>
<p>Parts of Chatty can be translated into different languages, and you can help!</p>
<h2>Getting started</h2>
<p><a href="https://poeditor.com/join/project/1Lld6f5Swi">Join the localization project</a> and tell me the account name you used so I can approve it. The best way is via <a href="https://discord.gg/WTuqGeJ">#localization on Discord</a>, but you can also <a href="mailto:chattyclient@gmail.com">send a mail</a>. If the language you want to work on hasn't been added yet, tell me.</p>
<ol>
<li><a href="https://poeditor.com/join/project/1Lld6f5Swi">Join the localization project</a></li>
<li>Tell me the account name you used so I can approve it. The best way is via <a href="https://discord.gg/WTuqGeJ">#localization on Discord</a>, but you can also <a href="mailto:chattyclient@gmail.com">send a mail</a>.</li>
</ol>
<p>Note: If the language you want to work on hasn't been added yet, tell me, then proceed with step 1 once it has been added.</p>
<p>Remember that you can also join languages that have already been completely translated, since future Chatty updates will likely also require more or updated translations. This is especially true now, since still not all GUI parts have been added for localization yet.</p>
<p>Note that not everything can be translated yet, and the help pages probably won't be at all, since it would be too much work to keep updated. My goal for now is to make the basic functions of the program more comfortable to use for people who don't speak English as their first language.</p>
<p>Note that not everything can be translated yet, and the help pages probably won't be at all, since it would be too much work to keep updated.</p>
<h2>Translation Guidelines</h2>
<p><a href=" https://youtu.be/vbt_42IpH-k">This video</a> explains some of these things as well.</p>
<ul>
<li>You don't have to translate everything. If there is no good translation for something, just keep it in English (this especially applies if the English term is commonly used in that language and better fitting).</li>
<li>Strings that aren't translated will automatically fallback to English, so please don't just copy the English strings to fill translations, unless the English string <em>is</em> the translation (see previous point).</li>
@ -131,7 +129,7 @@
<li>Another (probably better) place to discuss things is <a href="https://discord.gg/WTuqGeJ">#localization on Discord</a>.</li>
</ul>
<h2>Replacements</h2>
<h2>Substitutions</h2>
<p>Something like <code>{0}</code> in a string means it is replaced with the number <code>0</code> parameter. It should say in a comment what it gets replaced with (although most of the time it's clear from context already).</p>
<dl>
@ -140,7 +138,7 @@
</dl>
<p>Replacements use the <a href="https://docs.oracle.com/javase/8/docs/api/java/text/MessageFormat.html">MessageFormat</a> class. Mostly it's enough to just stick close to the template.</p>
<p>Substitutions use the <a href="https://docs.oracle.com/javase/8/docs/api/java/text/MessageFormat.html">MessageFormat</a> class. Mostly it's enough to just stick close to the template.</p>
<p><em>Important:</em> Any single quote (<code>'</code>) in a string that contains a replacement needs to be escaped with a single quote (e.g. <code>Can''t join ''{0}''</code>).</p>