Merge branch 'translate-en' of dan/ui into master

This commit is contained in:
erinn 2019-03-13 10:55:53 -07:00 committed by Gogs
commit a43d148da8
16 changed files with 387 additions and 201 deletions

View File

@ -41,3 +41,9 @@ We supply an arm-pie version of tor in `android/libs/armeabi-v7a` with the name
If all that is done, then check out cwtch.im/ui and run `qtdeploy` in the root of it. If all that is done, then check out cwtch.im/ui and run `qtdeploy` in the root of it.
Currently you will need to manually run tor first before running cwtch.im/ui. Use the included tor and torrc file: `tor -f torrc` Currently you will need to manually run tor first before running cwtch.im/ui. Use the included tor and torrc file: `tor -f torrc`
# Development
## Translations
Translations can be update by runing QT Linguist in the project directory (`linguist`) and loading and editing any of the `i18n/translate_*.ts` files. To add a new translation, please register the file in qml.qrc. To update translations, run `lupdate ui.pro` to update the editable .ts files and when you are done run `lrelease ui.pro` to generate the .qm files that are used at runtime.

View File

@ -5,27 +5,31 @@
<name>AddGroupPane</name> <name>AddGroupPane</name>
<message> <message>
<location filename="../qml/panes/AddGroupPane.qml" line="17"/> <location filename="../qml/panes/AddGroupPane.qml" line="17"/>
<source>Create a new group</source> <source>create-group-title</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/panes/AddGroupPane.qml" line="26"/> <location filename="../qml/panes/AddGroupPane.qml" line="27"/>
<source>Server:</source> <source>server-label</source>
<extracomment>Server label</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/panes/AddGroupPane.qml" line="36"/> <location filename="../qml/panes/AddGroupPane.qml" line="38"/>
<source>Group name:</source> <source>group-name-label</source>
<extracomment>Group name label</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/panes/AddGroupPane.qml" line="42"/> <location filename="../qml/panes/AddGroupPane.qml" line="45"/>
<source>my awesome group</source> <source>default-group-name</source>
<extracomment>default suggested group name</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/panes/AddGroupPane.qml" line="46"/> <location filename="../qml/panes/AddGroupPane.qml" line="50"/>
<source>create</source> <source>create-group-btn</source>
<extracomment>create group button</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -33,7 +37,19 @@
<name>BulletinOverlay</name> <name>BulletinOverlay</name>
<message> <message>
<location filename="../qml/overlays/BulletinOverlay.qml" line="181"/> <location filename="../qml/overlays/BulletinOverlay.qml" line="181"/>
<source>New Bulletin</source> <source>new-bulletin-label</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/overlays/BulletinOverlay.qml" line="193"/>
<source>post-new-bulletin-label</source>
<extracomment>Post a new Bulletin Post</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/overlays/BulletinOverlay.qml" line="199"/>
<source>title-placeholder</source>
<extracomment>title place holder text</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -41,130 +57,167 @@
<name>GroupSettingsPane</name> <name>GroupSettingsPane</name>
<message> <message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="30"/> <location filename="../qml/panes/GroupSettingsPane.qml" line="30"/>
<source>Server:</source> <source>server-label</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="41"/> <location filename="../qml/panes/GroupSettingsPane.qml" line="41"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="62"/> <location filename="../qml/panes/GroupSettingsPane.qml" line="62"/>
<source>copy</source> <source>copy-btn</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="51"/> <location filename="../qml/panes/GroupSettingsPane.qml" line="51"/>
<source>Invitation:</source> <source>invitation-label</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="72"/> <location filename="../qml/panes/GroupSettingsPane.qml" line="72"/>
<source>Group name:</source> <source>group-name-label</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="81"/> <location filename="../qml/panes/GroupSettingsPane.qml" line="81"/>
<source>Save</source> <source>save-btn</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="90"/> <location filename="../qml/panes/GroupSettingsPane.qml" line="91"/>
<source>Invite someone to the group:</source> <source>invite-to-group-label</source>
<extracomment>Invite someone to the group</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="101"/> <location filename="../qml/panes/GroupSettingsPane.qml" line="102"/>
<source>Invite</source> <source>invite-btn</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="110"/> <location filename="../qml/panes/GroupSettingsPane.qml" line="111"/>
<source>delete</source> <source>delete-btn</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>
<name>ListOverlay</name> <name>ListOverlay</name>
<message> <message>
<location filename="../qml/overlays/ListOverlay.qml" line="161"/> <location filename="../qml/overlays/ListOverlay.qml" line="162"/>
<source>Add a New List Item</source> <source>add-list-item</source>
<extracomment>Add a New List Item</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/overlays/ListOverlay.qml" line="174"/>
<source>add-new-item</source>
<extracomment>Add a new item to the list</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/overlays/ListOverlay.qml" line="180"/>
<source>todo-placeholder</source>
<extracomment>Todo... placeholder text</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MembershipOverlay</name>
<message>
<location filename="../qml/overlays/MembershipOverlay.qml" line="21"/>
<source>membership-description</source>
<extracomment>Below is a list of users who have sent messages to the group. This list may not reflect all users who have access to the group.</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>
<name>Message</name> <name>Message</name>
<message> <message>
<location filename="../qml/widgets/Message.qml" line="144"/> <location filename="../qml/widgets/Message.qml" line="55"/>
<source>Could not send this message: </source> <source>dm-tooltip</source>
<extracomment>Click to DM</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/widgets/Message.qml" line="144"/> <location filename="../qml/widgets/Message.qml" line="154"/>
<source>Acknowledged</source> <source>could-not-send-msg-error</source>
<extracomment>Could not send this message</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/widgets/Message.qml" line="144"/> <location filename="../qml/widgets/Message.qml" line="154"/>
<source>Pending</source> <source>acknowledged-label</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="154"/>
<source>pending-label</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>
<name>MyProfile</name> <name>MyProfile</name>
<message> <message>
<location filename="../qml/widgets/MyProfile.qml" line="168"/> <location filename="../qml/widgets/MyProfile.qml" line="169"/>
<source>copy</source> <source>copy-btn</source>
<extracomment>Button for copying profile onion address to clipboard</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/widgets/MyProfile.qml" line="171"/> <location filename="../qml/widgets/MyProfile.qml" line="173"/>
<source>copied to clipboard!</source> <source>copied-clipboard-notification</source>
<extracomment>Copied to clipboard</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/widgets/MyProfile.qml" line="200"/> <location filename="../qml/widgets/MyProfile.qml" line="203"/>
<source>new group</source> <source>new-group-btn</source>
<extracomment>create new group button</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/widgets/MyProfile.qml" line="209"/> <location filename="../qml/widgets/MyProfile.qml" line="213"/>
<source>... paste an address here to add a contact ...</source> <source>paste-address-to-add-contact</source>
<extracomment>ex: &quot;... paste an address here to add a contact ...&quot;</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>
<name>OverlayPane</name> <name>OverlayPane</name>
<message> <message>
<location filename="../qml/panes/OverlayPane.qml" line="39"/> <location filename="../qml/panes/OverlayPane.qml" line="44"/>
<source>Do you want to accept the invitation to </source> <source>accept-group-invite-label</source>
<extracomment>Do you want to accept the invitation to $GROUP</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/panes/OverlayPane.qml" line="43"/> <location filename="../qml/panes/OverlayPane.qml" line="49"/>
<source>Accept</source> <source>accept-group-btn</source>
<extracomment>Accept group invite button</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/panes/OverlayPane.qml" line="52"/> <location filename="../qml/panes/OverlayPane.qml" line="59"/>
<source>Reject</source> <source>reject-group-btn</source>
<translation type="unfinished"></translation> <extracomment>Reject Group invite button</extracomment>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="66"/>
<source>Chat</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/panes/OverlayPane.qml" line="73"/> <location filename="../qml/panes/OverlayPane.qml" line="73"/>
<source>Lists</source> <source>chat-btn</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/panes/OverlayPane.qml" line="80"/> <location filename="../qml/panes/OverlayPane.qml" line="80"/>
<source>Bulletins</source> <source>lists-btn</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/panes/OverlayPane.qml" line="87"/> <location filename="../qml/panes/OverlayPane.qml" line="87"/>
<source>Puzzle Game</source> <source>bulletins-btn</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="94"/>
<source>puzzle-game-btn</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -172,60 +225,64 @@
<name>PeerSettingsPane</name> <name>PeerSettingsPane</name>
<message> <message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="29"/> <location filename="../qml/panes/PeerSettingsPane.qml" line="29"/>
<source>Address:</source> <source>address-label</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="40"/> <location filename="../qml/panes/PeerSettingsPane.qml" line="40"/>
<source>copy</source> <source>copy-btn</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="43"/> <location filename="../qml/panes/PeerSettingsPane.qml" line="44"/>
<source>copied to clipboard!</source> <source>copied-to-clipboard-notification</source>
<extracomment>notification: copied to clipboard</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="50"/> <location filename="../qml/panes/PeerSettingsPane.qml" line="51"/>
<source>Display name:</source> <source>display-name-label</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="59"/> <location filename="../qml/panes/PeerSettingsPane.qml" line="60"/>
<source>Save</source> <source>save-btn</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="70"/> <location filename="../qml/panes/PeerSettingsPane.qml" line="71"/>
<source>delete</source> <source>delete-btn</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>
<name>SettingsPane</name> <name>SettingsPane</name>
<message> <message>
<location filename="../qml/panes/SettingsPane.qml" line="16"/> <location filename="../qml/panes/SettingsPane.qml" line="17"/>
<source>Cwtch Settings</source> <source>cwtch-settings-title</source>
<extracomment>Cwtch Settings title</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/panes/SettingsPane.qml" line="26"/> <location filename="../qml/panes/SettingsPane.qml" line="28"/>
<source>Interface zoom (mostly affects text and button sizes):</source> <source>zoom-label</source>
<extracomment>Interface zoom (mostly affects text and button sizes)</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/panes/SettingsPane.qml" line="42"/> <location filename="../qml/panes/SettingsPane.qml" line="44"/>
<source>Large text</source> <source>large-text-label</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/panes/SettingsPane.qml" line="47"/> <location filename="../qml/panes/SettingsPane.qml" line="50"/>
<source>Default size text (scale factor: </source> <source>default-scaling-text</source>
<extracomment>&quot;Default size text (scale factor: &quot;</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/panes/SettingsPane.qml" line="51"/> <location filename="../qml/panes/SettingsPane.qml" line="54"/>
<source>Small text</source> <source>small-text-label</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>

Binary file not shown.

View File

@ -4,188 +4,286 @@
<context> <context>
<name>AddGroupPane</name> <name>AddGroupPane</name>
<message> <message>
<source>Create a new group</source> <location filename="../qml/panes/AddGroupPane.qml" line="17"/>
<translation type="unfinished"></translation> <source>create-group-title</source>
<translation>Create Group</translation>
</message> </message>
<message> <message>
<source>Server:</source> <location filename="../qml/panes/AddGroupPane.qml" line="27"/>
<translation type="unfinished"></translation> <source>server-label</source>
<extracomment>Server label</extracomment>
<translation>Server</translation>
</message> </message>
<message> <message>
<source>Group name:</source> <location filename="../qml/panes/AddGroupPane.qml" line="38"/>
<translation type="unfinished"></translation> <source>group-name-label</source>
<extracomment>Group name label</extracomment>
<translation>Group name</translation>
</message> </message>
<message> <message>
<source>my awesome group</source> <location filename="../qml/panes/AddGroupPane.qml" line="45"/>
<translation type="unfinished"></translation> <source>default-group-name</source>
<extracomment>default suggested group name</extracomment>
<translation>Awesome Group</translation>
</message> </message>
<message> <message>
<source>create</source> <location filename="../qml/panes/AddGroupPane.qml" line="50"/>
<translation type="unfinished"></translation> <source>create-group-btn</source>
<extracomment>create group button</extracomment>
<translation>Create</translation>
</message> </message>
</context> </context>
<context> <context>
<name>BulletinOverlay</name> <name>BulletinOverlay</name>
<message> <message>
<source>New Bulletin</source> <location filename="../qml/overlays/BulletinOverlay.qml" line="181"/>
<translation type="unfinished"></translation> <source>new-bulletin-label</source>
<translation>New Bulletin</translation>
</message>
<message>
<location filename="../qml/overlays/BulletinOverlay.qml" line="193"/>
<source>post-new-bulletin-label</source>
<extracomment>Post a new Bulletin Post</extracomment>
<translation>Post new bulletin</translation>
</message>
<message>
<location filename="../qml/overlays/BulletinOverlay.qml" line="199"/>
<source>title-placeholder</source>
<extracomment>title place holder text</extracomment>
<translation>title...</translation>
</message> </message>
</context> </context>
<context> <context>
<name>GroupSettingsPane</name> <name>GroupSettingsPane</name>
<message> <message>
<source>Server:</source> <location filename="../qml/panes/GroupSettingsPane.qml" line="30"/>
<translation type="unfinished"></translation> <source>server-label</source>
<translation>Server</translation>
</message> </message>
<message> <message>
<source>copy</source> <location filename="../qml/panes/GroupSettingsPane.qml" line="41"/>
<translation type="unfinished"></translation> <location filename="../qml/panes/GroupSettingsPane.qml" line="62"/>
<source>copy-btn</source>
<translation>Copy</translation>
</message> </message>
<message> <message>
<source>Invitation:</source> <location filename="../qml/panes/GroupSettingsPane.qml" line="51"/>
<translation type="unfinished"></translation> <source>invitation-label</source>
<translation>Invitation</translation>
</message> </message>
<message> <message>
<source>Group name:</source> <location filename="../qml/panes/GroupSettingsPane.qml" line="72"/>
<translation type="unfinished"></translation> <source>group-name-label</source>
<translation>Group Name</translation>
</message> </message>
<message> <message>
<source>Save</source> <location filename="../qml/panes/GroupSettingsPane.qml" line="81"/>
<translation type="unfinished"></translation> <source>save-btn</source>
<translation>Save</translation>
</message> </message>
<message> <message>
<source>Invite someone to the group:</source> <location filename="../qml/panes/GroupSettingsPane.qml" line="91"/>
<translation type="unfinished"></translation> <source>invite-to-group-label</source>
<extracomment>Invite someone to the group</extracomment>
<translation>Invite to group</translation>
</message> </message>
<message> <message>
<source>Invite</source> <location filename="../qml/panes/GroupSettingsPane.qml" line="102"/>
<translation type="unfinished"></translation> <source>invite-btn</source>
<translation>Invite</translation>
</message> </message>
<message> <message>
<source>delete</source> <location filename="../qml/panes/GroupSettingsPane.qml" line="111"/>
<translation type="unfinished"></translation> <source>delete-btn</source>
<translation>Delete</translation>
</message> </message>
</context> </context>
<context> <context>
<name>ListOverlay</name> <name>ListOverlay</name>
<message> <message>
<source>Add a New List Item</source> <location filename="../qml/overlays/ListOverlay.qml" line="162"/>
<translation type="unfinished"></translation> <source>add-list-item</source>
<extracomment>Add a New List Item</extracomment>
<translation>Add a New List Item</translation>
</message>
<message>
<location filename="../qml/overlays/ListOverlay.qml" line="174"/>
<source>add-new-item</source>
<extracomment>Add a new item to the list</extracomment>
<translation>Add a new item to the list</translation>
</message>
<message>
<location filename="../qml/overlays/ListOverlay.qml" line="180"/>
<source>todo-placeholder</source>
<extracomment>Todo... placeholder text</extracomment>
<translation>Todo...</translation>
</message>
</context>
<context>
<name>MembershipOverlay</name>
<message>
<location filename="../qml/overlays/MembershipOverlay.qml" line="21"/>
<source>membership-description</source>
<extracomment>Below is a list of users who have sent messages to the group. This list may not reflect all users who have access to the group.</extracomment>
<translation>Below is a list of users who have sent messages to the group. This list may not reflect all users who have access to the group.</translation>
</message> </message>
</context> </context>
<context> <context>
<name>Message</name> <name>Message</name>
<message> <message>
<source>Could not send this message: </source> <location filename="../qml/widgets/Message.qml" line="55"/>
<translation type="unfinished"></translation> <source>dm-tooltip</source>
<extracomment>Click to DM</extracomment>
<translation>Click to DM</translation>
</message> </message>
<message> <message>
<source>Acknowledged</source> <location filename="../qml/widgets/Message.qml" line="154"/>
<translation type="unfinished"></translation> <source>could-not-send-msg-error</source>
<extracomment>Could not send this message</extracomment>
<translation>Could not send this message</translation>
</message> </message>
<message> <message>
<source>Pending</source> <location filename="../qml/widgets/Message.qml" line="154"/>
<translation type="unfinished"></translation> <source>acknowledged-label</source>
<translation>Acknowledged</translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="154"/>
<source>pending-label</source>
<translation>Pending</translation>
</message> </message>
</context> </context>
<context> <context>
<name>MyProfile</name> <name>MyProfile</name>
<message> <message>
<source>copy</source> <location filename="../qml/widgets/MyProfile.qml" line="169"/>
<translation type="unfinished"></translation> <source>copy-btn</source>
<extracomment>Button for copying profile onion address to clipboard</extracomment>
<translation>Copy</translation>
</message> </message>
<message> <message>
<source>copied to clipboard!</source> <location filename="../qml/widgets/MyProfile.qml" line="173"/>
<translation type="unfinished"></translation> <source>copied-clipboard-notification</source>
<extracomment>Copied to clipboard</extracomment>
<translation>Copied to clipboard</translation>
</message> </message>
<message> <message>
<source>new group</source> <location filename="../qml/widgets/MyProfile.qml" line="203"/>
<translation type="unfinished"></translation> <source>new-group-btn</source>
<extracomment>create new group button</extracomment>
<translation>Create new group</translation>
</message> </message>
<message> <message>
<source>... paste an address here to add a contact ...</source> <location filename="../qml/widgets/MyProfile.qml" line="213"/>
<translation type="unfinished"></translation> <source>paste-address-to-add-contact</source>
<extracomment>ex: &quot;... paste an address here to add a contact ...&quot;</extracomment>
<translation>... paste an address here to add a contact...</translation>
</message> </message>
</context> </context>
<context> <context>
<name>OverlayPane</name> <name>OverlayPane</name>
<message> <message>
<source>Do you want to accept the invitation to </source> <location filename="../qml/panes/OverlayPane.qml" line="44"/>
<translation type="unfinished"></translation> <source>accept-group-invite-label</source>
<extracomment>Do you want to accept the invitation to $GROUP</extracomment>
<translation>Do you want to accept the invitation to</translation>
</message> </message>
<message> <message>
<source>Accept</source> <location filename="../qml/panes/OverlayPane.qml" line="49"/>
<translation type="unfinished"></translation> <source>accept-group-btn</source>
<extracomment>Accept group invite button</extracomment>
<translation>Accept</translation>
</message> </message>
<message> <message>
<source>Reject</source> <location filename="../qml/panes/OverlayPane.qml" line="59"/>
<translation type="unfinished"></translation> <source>reject-group-btn</source>
<extracomment>Reject Group invite button</extracomment>
<translation>Reject</translation>
</message> </message>
<message> <message>
<source>Chat</source> <location filename="../qml/panes/OverlayPane.qml" line="73"/>
<translation type="unfinished"></translation> <source>chat-btn</source>
<translation>Chat</translation>
</message> </message>
<message> <message>
<source>Lists</source> <location filename="../qml/panes/OverlayPane.qml" line="80"/>
<translation type="unfinished"></translation> <source>lists-btn</source>
<translation>Lists</translation>
</message> </message>
<message> <message>
<source>Bulletins</source> <location filename="../qml/panes/OverlayPane.qml" line="87"/>
<translation type="unfinished"></translation> <source>bulletins-btn</source>
<translation>Bulletins</translation>
</message> </message>
<message> <message>
<source>Puzzle Game</source> <location filename="../qml/panes/OverlayPane.qml" line="94"/>
<translation type="unfinished"></translation> <source>puzzle-game-btn</source>
<translation>Puzzle Game</translation>
</message> </message>
</context> </context>
<context> <context>
<name>PeerSettingsPane</name> <name>PeerSettingsPane</name>
<message> <message>
<source>Address:</source> <location filename="../qml/panes/PeerSettingsPane.qml" line="29"/>
<translation type="unfinished"></translation> <source>address-label</source>
<translation>Address</translation>
</message> </message>
<message> <message>
<source>copy</source> <location filename="../qml/panes/PeerSettingsPane.qml" line="40"/>
<translation type="unfinished"></translation> <source>copy-btn</source>
<translation>Copy</translation>
</message> </message>
<message> <message>
<source>copied to clipboard!</source> <location filename="../qml/panes/PeerSettingsPane.qml" line="44"/>
<translation type="unfinished"></translation> <source>copied-to-clipboard-notification</source>
<extracomment>notification: copied to clipboard</extracomment>
<translation>Copied to Clipboard</translation>
</message> </message>
<message> <message>
<source>Display name:</source> <location filename="../qml/panes/PeerSettingsPane.qml" line="51"/>
<translation type="unfinished"></translation> <source>display-name-label</source>
<translation>Display Name</translation>
</message> </message>
<message> <message>
<source>Save</source> <location filename="../qml/panes/PeerSettingsPane.qml" line="60"/>
<translation type="unfinished"></translation> <source>save-btn</source>
<translation>Save</translation>
</message> </message>
<message> <message>
<source>delete</source> <location filename="../qml/panes/PeerSettingsPane.qml" line="71"/>
<translation type="unfinished"></translation> <source>delete-btn</source>
<translation>Delete</translation>
</message> </message>
</context> </context>
<context> <context>
<name>SettingsPane</name> <name>SettingsPane</name>
<message> <message>
<source>Cwtch Settings</source> <location filename="../qml/panes/SettingsPane.qml" line="17"/>
<translation type="unfinished"></translation> <source>cwtch-settings-title</source>
<extracomment>Cwtch Settings title</extracomment>
<translation>Cwtch Settings</translation>
</message> </message>
<message> <message>
<source>Interface zoom (mostly affects text and button sizes):</source> <location filename="../qml/panes/SettingsPane.qml" line="28"/>
<translation type="unfinished"></translation> <source>zoom-label</source>
<extracomment>Interface zoom (mostly affects text and button sizes)</extracomment>
<translation>Interface zoon (mostly affects text and button sizes)</translation>
</message> </message>
<message> <message>
<source>Large text</source> <location filename="../qml/panes/SettingsPane.qml" line="44"/>
<translation type="unfinished"></translation> <source>large-text-label</source>
<translation type="unfinished">Large</translation>
</message> </message>
<message> <message>
<source>Default size text (scale factor: </source> <location filename="../qml/panes/SettingsPane.qml" line="50"/>
<translation type="unfinished"></translation> <source>default-scaling-text</source>
<extracomment>&quot;Default size text (scale factor: &quot;</extracomment>
<translation>Default size text (scale factor:</translation>
</message> </message>
<message> <message>
<source>Small text</source> <location filename="../qml/panes/SettingsPane.qml" line="54"/>
<translation type="unfinished"></translation> <source>small-text-label</source>
<translation>Small</translation>
</message> </message>
</context> </context>
</TS> </TS>

View File

@ -5,6 +5,7 @@
<file>qml/overlays/Game1Overlay.qml</file> <file>qml/overlays/Game1Overlay.qml</file>
<file>qml/overlays/Game2Overlay.qml</file> <file>qml/overlays/Game2Overlay.qml</file>
<file>qml/overlays/ListOverlay.qml</file> <file>qml/overlays/ListOverlay.qml</file>
<file>qml/overlays/MembershipOverlay.qml</file>
<file>qml/main.qml</file> <file>qml/main.qml</file>
<file>qml/panes/AddGroupPane.qml</file> <file>qml/panes/AddGroupPane.qml</file>
<file>qml/panes/GroupSettingsPane.qml</file> <file>qml/panes/GroupSettingsPane.qml</file>
@ -29,7 +30,7 @@
<file>qml/widgets/controls/Loader.qml</file> <file>qml/widgets/controls/Loader.qml</file>
<file>qml/widgets/controls/Text.qml</file> <file>qml/widgets/controls/Text.qml</file>
<file>qml/widgets/controls/Variables.qml</file> <file>qml/widgets/controls/Variables.qml</file>
<file>i18n/translation_en.qm</file> <file>i18n/translation_en.qm</file>
<file>i18n/translation_de.qm</file> <file>i18n/translation_de.qm</file>
</qresource> </qresource>
</RCC> </RCC>

View File

@ -178,7 +178,7 @@ ColumnLayout {
} }
GroupBox { GroupBox {
title: qsTr("New Bulletin") title: qsTr("new-bulletin-label")
Layout.fillWidth: true Layout.fillWidth: true
RowLayout { RowLayout {
@ -189,12 +189,14 @@ ColumnLayout {
Text { Text {
text: "Post a new Bulletin Post" //: Post a new Bulletin Post
text: qsTr("post-new-bulletin-label")
} }
TextField { TextField {
id: newposttitle id: newposttitle
placeholderText: "Title.." //: title place holder text
placeholderText: qsTr("title-placeholder")
Layout.fillWidth: true Layout.fillWidth: true
style: CwtchTextFieldStyle{} style: CwtchTextFieldStyle{}
} }

View File

@ -158,7 +158,8 @@ ColumnLayout {
} }
GroupBox { GroupBox {
title: qsTr("Add a New List Item") //: Add a New List Item
title: qsTr("add-list-item")
Layout.fillWidth: true Layout.fillWidth: true
RowLayout { RowLayout {
@ -169,12 +170,14 @@ ColumnLayout {
Text { Text {
text: "Add a new item to the list" //: Add a new item to the list
text: qsTr("add-new-item")
} }
TextField { TextField {
id: newposttitle id: newposttitle
placeholderText: "Todo.." //: Todo... placeholder text
placeholderText: qsTr("todo-placeholder")
Layout.fillWidth: true Layout.fillWidth: true
style: CwtchTextFieldStyle{} style: CwtchTextFieldStyle{}
} }

View File

@ -17,7 +17,8 @@ ColumnLayout {
Layout.maximumWidth: parent.width Layout.maximumWidth: parent.width
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
padding: 1 padding: 1
text: qsTr("Below is a list of users who have sent messages to the group. This list may not reflect all users who have access to the group.") //: Below is a list of users who have sent messages to the group. This list may not reflect all users who have access to the group.
text: qsTr("membership-description")
} }
Flickable { // THE ACTUAL CONTACT LIST Flickable { // THE ACTUAL CONTACT LIST

View File

@ -14,7 +14,7 @@ ColumnLayout { // settingsPane
StackToolbar { StackToolbar {
text: qsTr("Create a new group") text: qsTr("create-group-title")
aux.visible: false aux.visible: false
} }
@ -23,7 +23,8 @@ ColumnLayout { // settingsPane
spacing: 5 spacing: 5
ScalingLabel { ScalingLabel {
text: qsTr("Server:") //: Server label
text: qsTr("server-label") + ":"
} }
TextField { TextField {
@ -33,17 +34,20 @@ ColumnLayout { // settingsPane
} }
ScalingLabel{ ScalingLabel{
text: qsTr("Group name:") //: Group name label
text: qsTr("group-name-label") + ":"
} }
TextField { TextField {
id: txtGroupName id: txtGroupName
style: CwtchTextFieldStyle{ width: 400 } style: CwtchTextFieldStyle{ width: 400 }
text: qsTr("my awesome group") //: default suggested group name
text: qsTr("default-group-name")
} }
SimpleButton { SimpleButton {
text: qsTr("create") //: create group button
text: qsTr("create-group-btn")
onClicked: { onClicked: {
gcd.createGroup(txtServer.text, txtGroupName.text) gcd.createGroup(txtServer.text, txtGroupName.text)

View File

@ -27,7 +27,7 @@ ColumnLayout { // groupSettingsPane
spacing: 5 spacing: 5
ScalingLabel { ScalingLabel {
text: qsTr("Server:") text: qsTr("server-label") + ":"
} }
TextField { TextField {
@ -38,17 +38,17 @@ ColumnLayout { // groupSettingsPane
SimpleButton { SimpleButton {
icon: "regular/clipboard" icon: "regular/clipboard"
text: qsTr("copy") text: qsTr("copy-btn")
onClicked: { onClicked: {
gcd.popup("copied to clipboard!") gcd.popup("copied-clipboard-notification")
txtServer.selectAll() txtServer.selectAll()
txtServer.copy() txtServer.copy()
} }
} }
ScalingLabel { ScalingLabel {
text: qsTr("Invitation:") text: qsTr("invitation-label") + ":"
} }
TextField { TextField {
@ -59,17 +59,17 @@ ColumnLayout { // groupSettingsPane
SimpleButton { SimpleButton {
icon: "regular/clipboard" icon: "regular/clipboard"
text: qsTr("copy") text: qsTr("copy-btn")
onClicked: { onClicked: {
gcd.popup("copied to clipboard!") gcd.popup("copied-clipboard-notification")
txtInvitation.selectAll() txtInvitation.selectAll()
txtInvitation.copy() txtInvitation.copy()
} }
} }
ScalingLabel{ ScalingLabel{
text: qsTr("Group name:") text: qsTr("group-name-label") + ":"
} }
TextField { TextField {
@ -78,7 +78,7 @@ ColumnLayout { // groupSettingsPane
} }
SimpleButton { SimpleButton {
text: qsTr("Save") text: qsTr("save-btn")
onClicked: { onClicked: {
gcd.saveGroupSettings(groupID, txtGroupName.text) gcd.saveGroupSettings(groupID, txtGroupName.text)
@ -87,7 +87,8 @@ ColumnLayout { // groupSettingsPane
} }
} }
ScalingLabel { text: qsTr("Invite someone to the group:") } //: Invite someone to the group
ScalingLabel { text: qsTr("invite-to-group-label") }
ComboBox { ComboBox {
id: cbInvite id: cbInvite
@ -98,7 +99,7 @@ ColumnLayout { // groupSettingsPane
} }
SimpleButton { SimpleButton {
text: qsTr("Invite") text: qsTr("invite-btn")
onClicked: { onClicked: {
gcd.inviteToGroup(addrbook[cbInvite.currentIndex], groupID) gcd.inviteToGroup(addrbook[cbInvite.currentIndex], groupID)
@ -107,7 +108,7 @@ ColumnLayout { // groupSettingsPane
SimpleButton { SimpleButton {
icon: "regular/trash-alt" icon: "regular/trash-alt"
text: qsTr("delete") text: qsTr("delete-btn")
onClicked: { onClicked: {
gcd.leaveGroup(groupID) gcd.leaveGroup(groupID)

View File

@ -40,11 +40,13 @@ ColumnLayout {
Text { Text {
text: qsTr("Do you want to accept the invitation to ") + overlay.name + "?" //: Do you want to accept the invitation to $GROUP
text: qsTr("accept-group-invite-label") + " " + overlay.name + "?"
} }
SimpleButton { SimpleButton {
text: qsTr("Accept") //: Accept group invite button
text: qsTr("accept-group-btn")
icon: "regular/heart" icon: "regular/heart"
onClicked: { onClicked: {
gcd.acceptGroup(gcd.currentOpenConversation) gcd.acceptGroup(gcd.currentOpenConversation)
@ -53,7 +55,8 @@ ColumnLayout {
} }
SimpleButton { SimpleButton {
text: qsTr("Reject") //: Reject Group invite button
text: qsTr("reject-group-btn")
icon: "regular/trash-alt" icon: "regular/trash-alt"
onClicked: { onClicked: {
gcd.leaveGroup(gcd.currentOpenConversation) gcd.leaveGroup(gcd.currentOpenConversation)
@ -67,28 +70,28 @@ ColumnLayout {
SimpleButton { SimpleButton {
text: qsTr("Chat") text: qsTr("chat-btn")
onClicked: overlayStack.overlay = overlayStack.chatOverlay onClicked: overlayStack.overlay = overlayStack.chatOverlay
} }
SimpleButton { SimpleButton {
text: qsTr("Lists") text: qsTr("lists-btn")
onClicked: overlayStack.overlay = overlayStack.listOverlay onClicked: overlayStack.overlay = overlayStack.listOverlay
} }
SimpleButton { SimpleButton {
text: qsTr("Bulletins") text: qsTr("bulletins-btn")
onClicked: overlayStack.overlay = overlayStack.bulletinOverlay onClicked: overlayStack.overlay = overlayStack.bulletinOverlay
} }
SimpleButton { SimpleButton {
text: qsTr("Puzzle Game") text: qsTr("puzzle-game-btn")
onClicked: overlayStack.overlay = overlayStack.game1Overlay onClicked: overlayStack.overlay = overlayStack.game1Overlay

View File

@ -26,7 +26,7 @@ ColumnLayout { // peerSettingsPane
spacing: 5 spacing: 5
ScalingLabel { ScalingLabel {
text: qsTr("Address:") text: qsTr("address-label")
} }
TextField { TextField {
@ -37,17 +37,18 @@ ColumnLayout { // peerSettingsPane
SimpleButton { SimpleButton {
icon: "regular/clipboard" icon: "regular/clipboard"
text: qsTr("copy") text: qsTr("copy-btn")
onClicked: { onClicked: {
gcd.popup(qsTr("copied to clipboard!")) //: notification: copied to clipboard
gcd.popup(qsTr("copied-to-clipboard-notification"))
txtOnion.selectAll() txtOnion.selectAll()
txtOnion.copy() txtOnion.copy()
} }
} }
ScalingLabel{ ScalingLabel{
text: qsTr("Display name:") text: qsTr("display-name-label")
} }
TextField { TextField {
@ -56,7 +57,7 @@ ColumnLayout { // peerSettingsPane
} }
SimpleButton { SimpleButton {
text: qsTr("Save") text: qsTr("save-btn")
onClicked: { onClicked: {
gcd.savePeerSettings(txtOnion.text, txtDisplayName.text) gcd.savePeerSettings(txtOnion.text, txtDisplayName.text)
@ -67,7 +68,7 @@ ColumnLayout { // peerSettingsPane
SimpleButton { SimpleButton {
icon: "regular/trash-alt" icon: "regular/trash-alt"
text: qsTr("delete") text: qsTr("delete-btn")
onClicked: { onClicked: {
gcd.setAttribute(txtOnion.text, "deleted", "deleted") gcd.setAttribute(txtOnion.text, "deleted", "deleted")

View File

@ -13,7 +13,8 @@ ColumnLayout { // settingsPane
StackToolbar { StackToolbar {
text: qsTr("Cwtch Settings") //: Cwtch Settings title
text: qsTr("cwtch-settings-title")
aux.visible: false aux.visible: false
} }
@ -23,7 +24,8 @@ ColumnLayout { // settingsPane
ScalingLabel { ScalingLabel {
Layout.maximumWidth: parent.width Layout.maximumWidth: parent.width
text: qsTr("Interface zoom (mostly affects text and button sizes):") //: Interface zoom (mostly affects text and button sizes)
text: qsTr("zoom-label") + ":"
} }
Slider { Slider {
@ -39,16 +41,17 @@ ColumnLayout { // settingsPane
} }
ScalingLabel { ScalingLabel {
text: qsTr("Large text") text: qsTr("large-text-label")
size: 20 size: 20
} }
ScalingLabel{ ScalingLabel{
text: qsTr("Default size text (scale factor: ") + zoomSlider.value + ")" //: "Default size text (scale factor: "
text: qsTr("default-scaling-text") + zoomSlider.value + ")"
} }
ScalingLabel { ScalingLabel {
text: qsTr("Small text") text: qsTr("small-text-label")
size: 8 size: 8
} }

View File

@ -51,7 +51,8 @@ RowLayout {
highlight: ima.containsMouse highlight: ima.containsMouse
ToolTip.visible: ima.containsMouse ToolTip.visible: ima.containsMouse
ToolTip.text: qsTr("Click to DM") //: Click to DM
ToolTip.text: qsTr("dm-tooltip")
MouseArea { MouseArea {
id: ima id: ima
@ -149,7 +150,8 @@ RowLayout {
sourceSize.height: 10 sourceSize.height: 10
visible: fromMe visible: fromMe
ToolTip.visible: ma.containsMouse ToolTip.visible: ma.containsMouse
ToolTip.text: root.error != "" ? qsTr("Could not send this message: ") + qsTr(root.error) : (root.ackd ? qsTr("Acknowledged") : qsTr("Pending")) //: Could not send this message
ToolTip.text: root.error != "" ? qsTr("could-not-send-msg-error") + ":" + root.error : (root.ackd ? qsTr("acknowledged-label") : qsTr("pending-label"))
MouseArea { MouseArea {
id: ma id: ma
anchors.fill: parent anchors.fill: parent

View File

@ -165,10 +165,12 @@ ColumnLayout {
SimpleButton { // COPY ONION ADDRESS BUTTON SimpleButton { // COPY ONION ADDRESS BUTTON
icon: "regular/clipboard" icon: "regular/clipboard"
text: qsTr("copy") //: Button for copying profile onion address to clipboard
text: qsTr("copy-btn")
onClicked: { onClicked: {
gcd.popup(qsTr("copied to clipboard!")) //: Copied to clipboard
gcd.popup(qsTr("copied-clipboard-notification"))
txtHidden.text = nick.replace(" ", "~") + "~" + onion txtHidden.text = nick.replace(" ", "~") + "~" + onion
txtHidden.selectAll() txtHidden.selectAll()
txtHidden.copy() txtHidden.copy()
@ -197,7 +199,8 @@ ColumnLayout {
SimpleButton { // CREATE GROUP BUTTON SimpleButton { // CREATE GROUP BUTTON
icon: "regular/clipboard" icon: "regular/clipboard"
text: qsTr("new group") //: create new group button
text: qsTr("new-group-btn")
onClicked: theStack.pane = theStack.addGroupPane onClicked: theStack.pane = theStack.addGroupPane
} }
@ -206,7 +209,8 @@ ColumnLayout {
TextField { TextField {
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
style: CwtchTextFieldStyle{ width: 400 } style: CwtchTextFieldStyle{ width: 400 }
placeholderText: qsTr("... paste an address here to add a contact ...") //: ex: "... paste an address here to add a contact ..."
placeholderText: qsTr("paste-address-to-add-contact")
horizontalAlignment: TextInput.AlignHCenter horizontalAlignment: TextInput.AlignHCenter
onTextChanged: { onTextChanged: {

View File

@ -51,7 +51,7 @@ Rectangle {
} }
ToolTip.visible: tooltip != "" && mouseArea.containsMouse ToolTip.visible: tooltip != "" && mouseArea.containsMouse
ToolTip.text: qsTr(tooltip) ToolTip.text: tooltip
} }