1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-12-24 09:00:27 +00:00

Make more core strings be translateable

Now we’re translating strings that occur in JavaScript modules.

Partially fixing #491
This commit is contained in:
Jermolene 2014-03-20 20:55:59 +00:00
parent ba6edd42c1
commit 178cfb1084
8 changed files with 213 additions and 29 deletions

View File

@ -0,0 +1,100 @@
title: $:/language/Docs/PaletteColours/
alert-background: Alert background
alert-border: Alert border
alert-highlight: Alert highlight
alert-muted-foreground: Alert muted foreground
background: General background
blockquote-bar: Blockquote bar
code-background: Code background
code-border: Code border
code-foreground: Code foreground
download-background: Download button background
download-foreground: Download button foreground
dragger-background: Dragger background
dragger-foreground: Dragger foreground
dropdown-background: Dropdown background
dropdown-border: Dropdown border
dropdown-tab-background-selected: Dropdown tab background for selected tabs
dropdown-tab-background: Dropdown tab background
dropzone-background: Dropzone background
external-link-background-hover: External link background hover
external-link-background-visited: External link background visited
external-link-background: External link background
external-link-foreground-hover: External link foreground hover
external-link-foreground-visited: External link foreground visited
external-link-foreground: External link foreground
foreground: General foreground
message-background: Message box background
message-border: Message box border
message-foreground: Message box foreground
modal-backdrop: Modal backdrop
modal-background: Modal background
modal-border: Modal border
modal-footer-background: Modal footer background
modal-footer-border: Modal footer border
modal-header-border: Modal header border
muted-foreground: General muted foreground
notification-background: Notification background
notification-border: Notification border
page-background: Page background
pre-background: Preformatted code background
pre-border: Preformatted code border
primary: General primary
sidebar-button-foreground: Sidebar button foreground
sidebar-controls-foreground-hover: Sidebar controls foreground hover
sidebar-controls-foreground: Sidebar controls foreground
sidebar-foreground-shadow: Sidebar foreground shadow
sidebar-foreground: Sidebar foreground
sidebar-muted-foreground-hover: Sidebar muted foreground hover
sidebar-muted-foreground: Sidebar muted foreground
sidebar-tab-background-selected: Sidebar tab
sidebar-tab-background: Sidebar tab background
sidebar-tab-border-selected: Sidebar tab border for selected tabs
sidebar-tab-border: Sidebar tab border
sidebar-tab-divider: Sidebar tab divider
sidebar-tab-foreground-selected: Sidebar tab foreground for selected tabs
sidebar-tab-foreground: Sidebar tab foreground
sidebar-tiddler-link-foreground-hover: Sidebar tiddler link foreground hover
sidebar-tiddler-link-foreground: Sidebar tiddler link foreground
static-alert-foreground: Static alert foreground
tab-background-selected: Tab background for selected tabs
tab-background: Tab background
tab-border-selected: Tab border for selected tabs
tab-border: Tab border
tab-divider: Tab divider
tab-foreground-selected: Tab foreground for selected tabs
tab-foreground: Tab foreground
table-border: Table border
table-footer-background: Table footer background
table-header-background: Table header background
tag-background: Tag background
tag-foreground: Tag foreground
tiddler-background: Tiddler background
tiddler-border: Tiddler border
tiddler-controls-foreground-hover: Tiddler controls foreground hover
tiddler-controls-foreground-selected: Tiddler controls foreground for selected controls
tiddler-controls-foreground: Tiddler controls foreground
tiddler-editor-background: Tiddler editor background
tiddler-editor-border-image: Tiddler editor border image
tiddler-editor-border: Tiddler editor border
tiddler-editor-fields-even: Tiddler editor background for even fields
tiddler-editor-fields-odd: Tiddler editor background for odd fields
tiddler-info-background: Tiddler info panel background
tiddler-info-border: Tiddler info panel border
tiddler-info-tab-background: Tiddler info panel tab background
tiddler-link-background: Tiddler link background
tiddler-link-foreground: Tiddler link foreground
tiddler-subtitle-foreground: Tiddler subtitle foreground
tiddler-title-foreground: Tiddler title foreground
toolbar-new-button: Toolbar 'new tiddler' button foreground
toolbar-options-button: Toolbar 'options' button foreground
toolbar-save-button: Toolbar 'save' button foreground
toolbar-info-button: Toolbar 'info' button foreground
toolbar-edit-button: Toolbar 'edit' button foreground
toolbar-close-button: Toolbar 'close' button foreground
toolbar-delete-button: Toolbar 'delete' button foreground
toolbar-cancel-button: Toolbar 'cancel' button foreground
toolbar-done-button: Toolbar 'done' button foreground
untagged-background: Untagged pill background
very-muted-foreground: Very muted foreground

View File

@ -1,8 +1,26 @@
title: $:/language/ title: $:/language/
RecentChanges/DateFormat: DDth MMM YYYY
CloseAll/Button: close all
MissingTiddler/Hint: Missing tiddler "<$text text=<<currentTiddler>>/>" - click {{$:/core/images/edit-button}} to create
SystemTiddler/Tooltip: This is a system tiddler
ClassicWarning/Hint: This tiddler is written in TiddlyWiki Classic wiki text format, which is not fully compatible with TiddlyWiki version 5. See http://tiddlywiki.com/static/Upgrading.html for more details. ClassicWarning/Hint: This tiddler is written in TiddlyWiki Classic wiki text format, which is not fully compatible with TiddlyWiki version 5. See http://tiddlywiki.com/static/Upgrading.html for more details.
ClassicWarning/Upgrade/Caption: upgrade ClassicWarning/Upgrade/Caption: upgrade
CloseAll/Button: close all
ConfirmDeleteTiddler: Do you wish to delete the tiddler "<$text text=<<title>>/>"?
ConfirmOverwriteTiddler: Do you wish to overwrite the tiddler "<$text text=<<title>>/>"?
MissingTiddler/Hint: Missing tiddler "<$text text=<<currentTiddler>>/>" - click {{$:/core/images/edit-button}} to create
RecentChanges/DateFormat: DDth MMM YYYY
RelativeDate/Future/Days: <<period>> days from now
RelativeDate/Future/Hours: <<period>> hours from now
RelativeDate/Future/Minutes: <<period>> minutes from now
RelativeDate/Future/Months: <<period>> months from now
RelativeDate/Future/Seconds: <<period>> seconds from now
RelativeDate/Future/Years: <<period>> years from now
RelativeDate/Past/Days: <<period>> days ago
RelativeDate/Past/Hours: <<period>> hours ago
RelativeDate/Past/Minutes: <<period>> minutes ago
RelativeDate/Past/Months: <<period>> months ago
RelativeDate/Past/Seconds: <<period>> seconds ago
RelativeDate/Past/Years: <<period>> years ago
SystemTiddler/Tooltip: This is a system tiddler
TagManager/Tag/Heading: Tag
TagManager/Count/Heading: Count
TagManager/Colour/Heading: Colour
TagManager/Icon/Heading: Icon

37
core/modules/language.js Normal file
View File

@ -0,0 +1,37 @@
/*\
title: $:/core/modules/language.js
type: application/javascript
module-type: global
The $tw.Language() manages translateable strings
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
/*
Create an instance of the language manager. Options include:
wiki: wiki from which to retrieve translation tiddlers
*/
function Language(options) {
options = options || "";
this.wiki = options.wiki || $tw.wiki;
}
/*
Return a single translateable string. The title is automatically prefixed with "$:/language/"
Options include:
variables: optional hashmap of variables to supply to the language wikification
*/
Language.prototype.getString = function(title,options) {
options = options || {};
title = "$:/language/" + title;
return this.wiki.renderTiddler("text/plain",title,{variables: options.variables});
};
exports.Language = Language;
})();

View File

@ -36,8 +36,9 @@ exports.startup = function() {
$tw.wiki.initParsers(); $tw.wiki.initParsers();
// Set up the command modules // Set up the command modules
$tw.Commander.initCommands(); $tw.Commander.initCommands();
// Kick off the language manager // Kick off the language manager and switcher
$tw.languageManager = new $tw.PluginSwitcher({ $tw.language = new $tw.Language();
$tw.languageSwitcher = new $tw.PluginSwitcher({
wiki: $tw.wiki, wiki: $tw.wiki,
pluginType: "language", pluginType: "language",
controllerTitle: "$:/language", controllerTitle: "$:/language",

View File

@ -214,32 +214,36 @@ exports.getRelativeDate = function(delta) {
futurep = true; futurep = true;
} }
var units = [ var units = [
{name: "years", duration: 365 * 24 * 60 * 60 * 1000}, {name: "Years", duration: 365 * 24 * 60 * 60 * 1000},
{name: "months", duration: (365/12) * 24 * 60 * 60 * 1000}, {name: "Months", duration: (365/12) * 24 * 60 * 60 * 1000},
{name: "days", duration: 24 * 60 * 60 * 1000}, {name: "Days", duration: 24 * 60 * 60 * 1000},
{name: "hours", duration: 60 * 60 * 1000}, {name: "Hours", duration: 60 * 60 * 1000},
{name: "minutes", duration: 60 * 1000}, {name: "Minutes", duration: 60 * 1000},
{name: "seconds", duration: 1000} {name: "Seconds", duration: 1000}
]; ];
for(var t=0; t<units.length; t++) { for(var t=0; t<units.length; t++) {
var result = Math.floor(delta / units[t].duration); var result = Math.floor(delta / units[t].duration);
if(result >= 2) { if(result >= 2) {
var desc = result + " " + units[t].name;
if(futurep) {
desc = desc + " from now";
} else {
desc = desc + " ago";
}
return { return {
delta: delta, delta: delta,
description: desc, description: $tw.language.getString(
"RelativeDate/" + (futurep ? "Future" : "Past") + "/" + units[t].name,
{variables:
{period: result.toString()}
}
),
updatePeriod: units[t].duration updatePeriod: units[t].duration
}; };
} }
} }
return { return {
delta: delta, delta: delta,
description: "1 second ago", description: $tw.language.getString(
"RelativeDate/" + (futurep ? "Future" : "Past") + "/Seconds",
{variables:
{period: "1"}
}
),
updatePeriod: 1000 updatePeriod: 1000
}; };
}; };

View File

@ -204,7 +204,12 @@ NavigatorWidget.prototype.handleDeleteTiddlerEvent = function(event) {
// Delete the original tiddler // Delete the original tiddler
var originalTitle = tiddler.fields["draft.of"]; var originalTitle = tiddler.fields["draft.of"];
// Ask for confirmation if the tiddler has changed // Ask for confirmation if the tiddler has changed
if(!confirm("Do you wish to delete the tiddler '" + originalTitle + "'")) { if(!confirm($tw.language.getString(
"ConfirmDeleteTiddler",
{variables:
{title: originalTitle}
}
))) {
return false; return false;
} }
this.wiki.deleteTiddler(originalTitle); this.wiki.deleteTiddler(originalTitle);
@ -277,7 +282,12 @@ NavigatorWidget.prototype.handleSaveTiddlerEvent = function(event) {
var isRename = draftOf !== draftTitle, var isRename = draftOf !== draftTitle,
isConfirmed = true; isConfirmed = true;
if(isRename && this.wiki.tiddlerExists(draftTitle)) { if(isRename && this.wiki.tiddlerExists(draftTitle)) {
isConfirmed = confirm("Do you wish to overwrite the tiddler '" + draftTitle + "'?"); isConfirmed = confirm($tw.language.getString(
"ConfirmOverwriteTiddler",
{variables:
{title: draftTitle}
}
));
} }
if(isConfirmed) { if(isConfirmed) {
// Save the draft tiddler as the real tiddler // Save the draft tiddler as the real tiddler

View File

@ -1,5 +1,6 @@
title: $:/TagManager title: $:/TagManager
\define lingo-base() $:/language/TagManager/
\define iconEditor(title) \define iconEditor(title)
<$edit-text field="icon" tag="input"/> <$button popup=<<qualify "$:/state/iconDropdown/$title$">> class="btn-invisible btn-dropdown">{{$:/core/images/down-arrow}}</$button> <$edit-text field="icon" tag="input"/> <$button popup=<<qualify "$:/state/iconDropdown/$title$">> class="btn-invisible btn-dropdown">{{$:/core/images/down-arrow}}</$button>
<div class="tw-block-dropdown-wrapper"> <div class="tw-block-dropdown-wrapper">
@ -19,10 +20,10 @@ title: $:/TagManager
<table> <table>
<tbody> <tbody>
<tr> <tr>
<th>Tag</th> <th><<lingo Tag/Heading>></th>
<th>Count</th> <th><<lingo Count/Heading>></th>
<th>Colour</th> <th><<lingo Colour/Heading>></th>
<th>Icon</th> <th><<lingo Icon/Heading>></th>
</tr> </tr>
<$list filter="[tags[]!is[system]sort[title]]"> <$list filter="[tags[]!is[system]sort[title]]">
<tr> <tr>

View File

@ -1,6 +1,9 @@
title: $:/snippets/paletteeditor title: $:/snippets/paletteeditor
\define lingo-base() $:/language/ControlPanel/Appearance/Palette/Editor/ \define lingo-base() $:/language/ControlPanel/Appearance/Palette/Editor/
\define describePaletteColour(colour)
{{$:/language/Docs/PaletteColours/$colour$}}
\end
<$set name="currentTiddler" value={{$:/palette}}> <$set name="currentTiddler" value={{$:/palette}}>
<<lingo Prompt>> <$link to={{$:/palette}}><$macrocall $name="currentTiddler" $output="text/plain"/></$link> <<lingo Prompt>> <$link to={{$:/palette}}><$macrocall $name="currentTiddler" $output="text/plain"/></$link>
@ -16,9 +19,19 @@ title: $:/snippets/paletteeditor
<$button message="tw-new-tiddler" param={{$:/palette}}><<lingo Clone/Caption>></$button> <$button message="tw-new-tiddler" param={{$:/palette}}><<lingo Clone/Caption>></$button>
<table><tbody><$list filter="[is[current]indexes[]]" variable="colourName"><tr><td><$macrocall $name="colourName" $output="text/plain"/></td> <table>
<td><$edit-text index=<<colourName>> tag="input"/></td> <tbody>
<td><$edit-text index=<<colourName>> type="color" tag="input"/></td> <$list filter="[is[current]indexes[]]" variable="colourName">
<tr>
<td>
''<$macrocall $name="describePaletteColour" colour=<<colourName>>/>''<br/>
<$macrocall $name="colourName" $output="text/plain"/>
</td>
<td>
<$edit-text index=<<colourName>> tag="input"/>
<br>
<$edit-text index=<<colourName>> type="color" tag="input"/>
</td>
</tr> </tr>
</$list> </$list>
</tbody> </tbody>