Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Crowdin updates #11

Open
wants to merge 560 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
560 commits
Select commit Hold shift + click to select a range
e32f60c
New translations connect-using-public-key.png (Chinese Simplified)
rptools-automation Aug 30, 2022
0f1f3bc
New translations edit-player-dialog.png (French)
rptools-automation Aug 30, 2022
7d5cfae
New translations connect-using-public-key.png (Spanish)
rptools-automation Aug 30, 2022
158fcdf
New translations edit-player-dialog.png (Spanish)
rptools-automation Aug 30, 2022
de4ef59
New translations edit-player-dialog.png (Danish)
rptools-automation Aug 30, 2022
6eb7b99
New translations edit-player-dialog.png (German)
rptools-automation Aug 30, 2022
8f03a40
New translations edit-player-dialog.png (Italian)
rptools-automation Aug 30, 2022
a67670f
New translations edit-player-dialog.png (Japanese)
rptools-automation Aug 30, 2022
79daf05
New translations edit-player-dialog.png (Dutch)
rptools-automation Aug 30, 2022
7ec6994
New translations edit-player-dialog.png (Polish)
rptools-automation Aug 30, 2022
0a8466c
New translations edit-player-dialog.png (Russian)
rptools-automation Aug 30, 2022
1ad08be
New translations edit-player-dialog.png (Swedish)
rptools-automation Aug 30, 2022
112a1b1
New translations edit-player-dialog.png (Ukrainian)
rptools-automation Aug 30, 2022
4f6d565
New translations connect-using-public-key.png (Danish)
rptools-automation Aug 30, 2022
41d711a
New translations connect-using-public-key.png (French)
rptools-automation Aug 30, 2022
f7fe66d
New translations speech.png (Danish)
rptools-automation Aug 30, 2022
575ff89
New translations thought.png (French)
rptools-automation Aug 30, 2022
7c886fb
New translations speech.png (German)
rptools-automation Aug 30, 2022
5e2f13e
New translations speech.png (Italian)
rptools-automation Aug 30, 2022
87b6e1e
New translations speech.png (Japanese)
rptools-automation Aug 30, 2022
da02788
New translations speech.png (Dutch)
rptools-automation Aug 30, 2022
a758386
New translations speech.png (Polish)
rptools-automation Aug 30, 2022
597533a
New translations speech.png (Russian)
rptools-automation Aug 30, 2022
2841156
New translations speech.png (Swedish)
rptools-automation Aug 30, 2022
4172128
New translations speech.png (Ukrainian)
rptools-automation Aug 30, 2022
841a7b6
New translations speech.png (Chinese Simplified)
rptools-automation Aug 30, 2022
6754d4d
New translations speech.png (Portuguese, Brazilian)
rptools-automation Aug 30, 2022
07e4bc6
New translations thought.png (Spanish)
rptools-automation Aug 30, 2022
03b0959
New translations thought.png (Portuguese, Brazilian)
rptools-automation Aug 30, 2022
c2dad6b
New translations thought.png (Danish)
rptools-automation Aug 30, 2022
b5e0d2a
New translations thought.png (German)
rptools-automation Aug 30, 2022
f526d72
New translations thought.png (Italian)
rptools-automation Aug 30, 2022
bef2972
New translations thought.png (Japanese)
rptools-automation Aug 30, 2022
261dc9a
New translations thought.png (Dutch)
rptools-automation Aug 30, 2022
60edfb5
New translations thought.png (Polish)
rptools-automation Aug 30, 2022
6a6d0a5
New translations thought.png (Russian)
rptools-automation Aug 30, 2022
778c0c0
New translations thought.png (Swedish)
rptools-automation Aug 30, 2022
2dce95b
New translations thought.png (Ukrainian)
rptools-automation Aug 30, 2022
832fb57
New translations thought.png (Chinese Simplified)
rptools-automation Aug 30, 2022
899d7ac
New translations edit-player-dialog.png (Chinese Simplified)
rptools-automation Aug 30, 2022
6a0149c
New translations edit-player-dialog.png (Portuguese, Brazilian)
rptools-automation Aug 30, 2022
9d8cadf
New translations player-database.png (Ukrainian)
rptools-automation Aug 30, 2022
32a6b87
New translations player-database.png (Spanish)
rptools-automation Aug 30, 2022
ea6dd5f
New translations player-database.png (Danish)
rptools-automation Aug 30, 2022
ea0d282
New translations player-database.png (German)
rptools-automation Aug 30, 2022
1a39db6
New translations player-database.png (Italian)
rptools-automation Aug 30, 2022
ec988de
New translations player-database.png (Japanese)
rptools-automation Aug 30, 2022
796dd2c
New translations player-database.png (Dutch)
rptools-automation Aug 30, 2022
8cc9292
New translations player-database.png (Polish)
rptools-automation Aug 30, 2022
5a83d0e
New translations player-database.png (Russian)
rptools-automation Aug 30, 2022
ebc15bc
New translations player-database.png (Swedish)
rptools-automation Aug 30, 2022
9a99cd4
New translations player-database.png (Chinese Simplified)
rptools-automation Aug 30, 2022
f83c051
New translations player-database-menu.png (Portuguese, Brazilian)
rptools-automation Aug 30, 2022
8badfc3
New translations player-database.png (Portuguese, Brazilian)
rptools-automation Aug 30, 2022
8385a0c
New translations public-key.png (French)
rptools-automation Aug 30, 2022
d910a6e
New translations public-key.png (Spanish)
rptools-automation Aug 30, 2022
36032ab
New translations public-key.png (Danish)
rptools-automation Aug 30, 2022
3448b75
New translations public-key.png (German)
rptools-automation Aug 30, 2022
1e20677
New translations public-key.png (Italian)
rptools-automation Aug 30, 2022
ca47836
New translations public-key.png (Japanese)
rptools-automation Aug 30, 2022
641c2b9
New translations public-key.png (Dutch)
rptools-automation Aug 30, 2022
61df186
New translations public-key.png (Polish)
rptools-automation Aug 30, 2022
d6ef056
New translations public-key.png (Russian)
rptools-automation Aug 30, 2022
56b570d
New translations player-database.png (French)
rptools-automation Aug 30, 2022
68a322e
New translations player-database-menu.png (Chinese Simplified)
rptools-automation Aug 30, 2022
2974c2e
New translations index.md (French)
rptools-automation Aug 30, 2022
93d6f19
New translations index.md (Chinese Simplified)
rptools-automation Aug 30, 2022
e018785
New translations index.md (Spanish)
rptools-automation Aug 30, 2022
78b47c1
New translations index.md (Danish)
rptools-automation Aug 30, 2022
8f0fac2
New translations index.md (German)
rptools-automation Aug 30, 2022
262108b
New translations index.md (Italian)
rptools-automation Aug 30, 2022
a68dfe3
New translations index.md (Japanese)
rptools-automation Aug 30, 2022
4e86894
New translations index.md (Dutch)
rptools-automation Aug 30, 2022
66a98f5
New translations index.md (Polish)
rptools-automation Aug 30, 2022
ca47d9f
New translations index.md (Russian)
rptools-automation Aug 30, 2022
5536153
New translations index.md (Swedish)
rptools-automation Aug 30, 2022
29e9cfc
New translations index.md (Ukrainian)
rptools-automation Aug 30, 2022
bf54f3f
New translations index.md (Portuguese, Brazilian)
rptools-automation Aug 30, 2022
a2753d1
New translations player-database-menu.png (Ukrainian)
rptools-automation Aug 30, 2022
faaee4a
New translations player-database-menu.png (French)
rptools-automation Aug 30, 2022
e37c517
New translations player-database-menu.png (Spanish)
rptools-automation Aug 30, 2022
6611825
New translations player-database-menu.png (Danish)
rptools-automation Aug 30, 2022
485865e
New translations player-database-menu.png (German)
rptools-automation Aug 30, 2022
37203ed
New translations player-database-menu.png (Italian)
rptools-automation Aug 30, 2022
e82bf28
New translations player-database-menu.png (Japanese)
rptools-automation Aug 30, 2022
9aab005
New translations player-database-menu.png (Dutch)
rptools-automation Aug 30, 2022
1c2752b
New translations player-database-menu.png (Polish)
rptools-automation Aug 30, 2022
78ebc34
New translations player-database-menu.png (Russian)
rptools-automation Aug 30, 2022
aa5e18f
New translations player-database-menu.png (Swedish)
rptools-automation Aug 30, 2022
1363e25
New translations public-key.png (Swedish)
rptools-automation Aug 30, 2022
0d2bf9d
New translations public-key.png (Ukrainian)
rptools-automation Aug 30, 2022
6f8c5a3
New translations index.mdx (Russian)
rptools-automation Aug 30, 2022
6ec300a
New translations allow-uri-access.png (Portuguese, Brazilian)
rptools-automation Aug 30, 2022
938e248
New translations index.mdx (French)
rptools-automation Aug 30, 2022
3874731
New translations index.mdx (Spanish)
rptools-automation Aug 30, 2022
fd746f0
New translations index.mdx (Danish)
rptools-automation Aug 30, 2022
305060c
New translations index.mdx (German)
rptools-automation Aug 30, 2022
13a7d61
New translations index.mdx (Italian)
rptools-automation Aug 30, 2022
39a37e7
New translations index.mdx (Japanese)
rptools-automation Aug 30, 2022
7401ac6
New translations index.mdx (Dutch)
rptools-automation Aug 30, 2022
8c6463a
New translations index.mdx (Polish)
rptools-automation Aug 30, 2022
4745c9c
New translations index.mdx (Swedish)
rptools-automation Aug 30, 2022
14c412b
New translations allow-uri-access.png (Ukrainian)
rptools-automation Aug 30, 2022
2f33dc9
New translations index.mdx (Ukrainian)
rptools-automation Aug 30, 2022
1d6a567
New translations index.mdx (Chinese Simplified)
rptools-automation Aug 30, 2022
fc46d10
New translations index.mdx (Portuguese, Brazilian)
rptools-automation Aug 30, 2022
c5a51f9
New translations relative-path-example.gif (French)
rptools-automation Aug 30, 2022
1b48d28
New translations relative-path-example.gif (Spanish)
rptools-automation Aug 30, 2022
04f809a
New translations relative-path-example.gif (Danish)
rptools-automation Aug 30, 2022
286a23b
New translations relative-path-example.gif (German)
rptools-automation Aug 30, 2022
4c1bab9
New translations relative-path-example.gif (Italian)
rptools-automation Aug 30, 2022
20bde9c
New translations relative-path-example.gif (Japanese)
rptools-automation Aug 30, 2022
89f4b86
New translations relative-path-example.gif (Dutch)
rptools-automation Aug 30, 2022
0b37e66
New translations allow-uri-access.png (Chinese Simplified)
rptools-automation Aug 30, 2022
788e156
New translations allow-uri-access.png (Swedish)
rptools-automation Aug 30, 2022
7b274e8
New translations public-key.png (Chinese Simplified)
rptools-automation Aug 30, 2022
f31da4c
New translations start-server-dialog.png (Swedish)
rptools-automation Aug 30, 2022
796ed0a
New translations public-key.png (Portuguese, Brazilian)
rptools-automation Aug 30, 2022
3f772ba
New translations start-server-dialog.png (French)
rptools-automation Aug 30, 2022
dda3b45
New translations start-server-dialog.png (Spanish)
rptools-automation Aug 30, 2022
a625d44
New translations start-server-dialog.png (Danish)
rptools-automation Aug 30, 2022
f6e04cb
New translations start-server-dialog.png (German)
rptools-automation Aug 30, 2022
87b21ea
New translations start-server-dialog.png (Italian)
rptools-automation Aug 30, 2022
5ec01c8
New translations start-server-dialog.png (Japanese)
rptools-automation Aug 30, 2022
268ab5f
New translations relative-path-example.gif (Russian)
rptools-automation Aug 30, 2022
650429e
New translations export-lib-token.png (Dutch)
rptools-automation Aug 30, 2022
6aa5c77
New translations index.mdx (Ukrainian)
rptools-automation Aug 30, 2022
f043710
New translations index.mdx (Chinese Simplified)
rptools-automation Aug 30, 2022
6b12a51
New translations index.mdx (Portuguese, Brazilian)
rptools-automation Aug 30, 2022
a6196af
New translations export-lib-token.png (French)
rptools-automation Aug 30, 2022
e46e79f
New translations export-lib-token.png (Spanish)
rptools-automation Aug 30, 2022
4538c3c
New translations export-lib-token.png (Danish)
rptools-automation Aug 30, 2022
5b792c5
New translations export-lib-token.png (German)
rptools-automation Aug 30, 2022
adc65c6
New translations export-lib-token.png (Italian)
rptools-automation Aug 30, 2022
0e34885
New translations export-lib-token.png (Japanese)
rptools-automation Aug 30, 2022
3c734dc
New translations export-lib-token.png (Polish)
rptools-automation Aug 30, 2022
b5ecaa8
New translations index.mdx (Russian)
rptools-automation Aug 30, 2022
40a059c
New translations export-lib-token.png (Russian)
rptools-automation Aug 30, 2022
eedf221
New translations export-lib-token.png (Swedish)
rptools-automation Aug 30, 2022
ee45874
New translations export-lib-token.png (Ukrainian)
rptools-automation Aug 30, 2022
c0729dc
New translations export-lib-token.png (Chinese Simplified)
rptools-automation Aug 30, 2022
8c53ac1
New translations export-lib-token.png (Portuguese, Brazilian)
rptools-automation Aug 30, 2022
98605e2
New translations index.mdx (French)
rptools-automation Aug 30, 2022
f392b53
New translations index.mdx (Spanish)
rptools-automation Aug 30, 2022
182265c
New translations index.mdx (Danish)
rptools-automation Aug 30, 2022
da330da
New translations index.mdx (German)
rptools-automation Aug 30, 2022
2e0ff40
New translations index.mdx (Italian)
rptools-automation Aug 30, 2022
287f255
New translations index.mdx (Swedish)
rptools-automation Aug 30, 2022
7065370
New translations index.mdx (Polish)
rptools-automation Aug 30, 2022
fcf5e2f
New translations relative-path-example.gif (Swedish)
rptools-automation Aug 30, 2022
7ddc7e1
New translations relative-path-macros.png (Polish)
rptools-automation Aug 30, 2022
17c2dc2
New translations relative-path-example.gif (Ukrainian)
rptools-automation Aug 30, 2022
48c8d4d
New translations relative-path-example.gif (Chinese Simplified)
rptools-automation Aug 30, 2022
13badcc
New translations relative-path-example.gif (Portuguese, Brazilian)
rptools-automation Aug 30, 2022
6e3fe68
New translations relative-path-macros.png (French)
rptools-automation Aug 30, 2022
dc643be
New translations relative-path-macros.png (Spanish)
rptools-automation Aug 30, 2022
54bf6dd
New translations relative-path-macros.png (Danish)
rptools-automation Aug 30, 2022
ba746be
New translations relative-path-macros.png (German)
rptools-automation Aug 30, 2022
c5c0fce
New translations relative-path-macros.png (Italian)
rptools-automation Aug 30, 2022
6fe3b27
New translations relative-path-macros.png (Japanese)
rptools-automation Aug 30, 2022
208e3da
New translations relative-path-macros.png (Dutch)
rptools-automation Aug 30, 2022
cabe88a
New translations relative-path-macros.png (Russian)
rptools-automation Aug 30, 2022
4ee0920
New translations index.mdx (Dutch)
rptools-automation Aug 30, 2022
7ee8e31
New translations relative-path-macros.png (Swedish)
rptools-automation Aug 30, 2022
2ca36f1
New translations relative-path-macros.png (Ukrainian)
rptools-automation Aug 30, 2022
2875788
New translations relative-path-macros.png (Chinese Simplified)
rptools-automation Aug 30, 2022
4f06e52
New translations relative-path-macros.png (Portuguese, Brazilian)
rptools-automation Aug 30, 2022
281a5b2
New translations index.mdx (French)
rptools-automation Aug 30, 2022
16c36c0
New translations index.mdx (Spanish)
rptools-automation Aug 30, 2022
6556aed
New translations index.mdx (Danish)
rptools-automation Aug 30, 2022
00de761
New translations index.mdx (German)
rptools-automation Aug 30, 2022
5731fb4
New translations index.mdx (Italian)
rptools-automation Aug 30, 2022
33c5a9b
New translations index.mdx (Japanese)
rptools-automation Aug 30, 2022
e9f4c11
New translations index.mdx (Japanese)
rptools-automation Aug 30, 2022
be73774
New translations index.mdx (Dutch)
rptools-automation Aug 30, 2022
24edd40
New translations index.mdx (Ukrainian)
rptools-automation Aug 30, 2022
c6fe678
New translations authors.yml (Chinese Simplified)
rptools-automation Aug 30, 2022
672bcbd
New translations authors.yml (Ukrainian)
rptools-automation Aug 30, 2022
2acc236
New translations authors.yml (Swedish)
rptools-automation Aug 30, 2022
a139496
New translations authors.yml (Russian)
rptools-automation Aug 30, 2022
b354ef3
New translations authors.yml (Polish)
rptools-automation Aug 30, 2022
8ec572e
New translations authors.yml (Dutch)
rptools-automation Aug 30, 2022
6a4eeed
New translations authors.yml (Japanese)
rptools-automation Aug 30, 2022
0db0c06
New translations authors.yml (Italian)
rptools-automation Aug 30, 2022
d67ee50
New translations authors.yml (German)
rptools-automation Aug 30, 2022
f5666bb
New translations authors.yml (Danish)
rptools-automation Aug 30, 2022
8c9fed2
New translations authors.yml (Spanish)
rptools-automation Aug 30, 2022
fd313d8
New translations authors.yml (French)
rptools-automation Aug 30, 2022
4916a5a
New translations index.mdx (Portuguese, Brazilian)
rptools-automation Aug 30, 2022
586a14a
New translations index.mdx (Chinese Simplified)
rptools-automation Aug 30, 2022
0fc1f60
New translations index.mdx (Swedish)
rptools-automation Aug 30, 2022
0271abe
New translations index.mdx (Polish)
rptools-automation Aug 30, 2022
6b56f62
New translations index.mdx (Russian)
rptools-automation Aug 30, 2022
a29dcf0
New translations index.mdx (Polish)
rptools-automation Aug 30, 2022
e9c262c
New translations index.mdx (Dutch)
rptools-automation Aug 30, 2022
2a5afd4
New translations index.mdx (Japanese)
rptools-automation Aug 30, 2022
c4b1d28
New translations index.mdx (Italian)
rptools-automation Aug 30, 2022
d8e656c
New translations index.mdx (German)
rptools-automation Aug 30, 2022
3131c1b
New translations index.mdx (Danish)
rptools-automation Aug 30, 2022
99d62e8
New translations index.mdx (Spanish)
rptools-automation Aug 30, 2022
713531a
New translations index.mdx (French)
rptools-automation Aug 30, 2022
0a0a5c0
New translations index.mdx (Portuguese, Brazilian)
rptools-automation Aug 30, 2022
e4080be
New translations index.mdx (Chinese Simplified)
rptools-automation Aug 30, 2022
a31c3d9
New translations index.mdx (Ukrainian)
rptools-automation Aug 30, 2022
fe189b3
New translations index.mdx (Swedish)
rptools-automation Aug 30, 2022
2f8a7a2
New translations index.mdx (Russian)
rptools-automation Aug 30, 2022
aa43e23
New translations authors.yml (Portuguese, Brazilian)
rptools-automation Aug 30, 2022
9a438a7
New translations mtscript-lib-functions.mdx (Swedish)
rptools-automation Aug 30, 2022
9287163
New translations mtscript-lib-functions.mdx (French)
rptools-automation Aug 30, 2022
624c2bb
New translations mtscript-lib-functions.mdx (Spanish)
rptools-automation Aug 30, 2022
745fac8
New translations mtscript-lib-functions.mdx (Danish)
rptools-automation Aug 30, 2022
3db37b0
New translations mtscript-lib-functions.mdx (German)
rptools-automation Aug 30, 2022
62223f9
New translations mtscript-lib-functions.mdx (Italian)
rptools-automation Aug 30, 2022
71dca72
New translations mtscript-lib-functions.mdx (Japanese)
rptools-automation Aug 30, 2022
84de4dd
New translations mtscript-lib-functions.mdx (Dutch)
rptools-automation Aug 30, 2022
56f0392
New translations mtscript-lib-functions.mdx (Polish)
rptools-automation Aug 30, 2022
8e42b46
New translations mtscript-lib-functions.mdx (Russian)
rptools-automation Aug 30, 2022
b90a4be
New translations mtscript-lib-functions.mdx (Ukrainian)
rptools-automation Aug 30, 2022
434d1cc
New translations mtscript-lib-functions.mdx (Chinese Simplified)
rptools-automation Aug 30, 2022
fc614ab
New translations mtscript-lib-functions.mdx (Portuguese, Brazilian)
rptools-automation Aug 30, 2022
d75e83a
New translations mtscript-data-functions.mdx (Chinese Simplified)
rptools-automation Aug 30, 2022
a743703
New translations mtscript-data-functions.mdx (Portuguese, Brazilian)
rptools-automation Aug 30, 2022
0b7f50d
New translations mtscript-data-functions.mdx (Swedish)
rptools-automation Aug 30, 2022
48f82f7
New translations mtscript-data-functions.mdx (Ukrainian)
rptools-automation Aug 30, 2022
43a2072
New translations mtscript-data-functions.mdx (Russian)
rptools-automation Aug 30, 2022
d0bf7cd
New translations mtscript-data-functions.mdx (Polish)
rptools-automation Aug 30, 2022
fc2e78a
New translations mtscript-data-functions.mdx (French)
rptools-automation Aug 30, 2022
bc85672
New translations mtscript-data-functions.mdx (Spanish)
rptools-automation Aug 30, 2022
fcc5eac
New translations mtscript-data-functions.mdx (Danish)
rptools-automation Aug 30, 2022
5356c29
New translations mtscript-data-functions.mdx (German)
rptools-automation Aug 30, 2022
4010682
New translations mtscript-data-functions.mdx (Italian)
rptools-automation Aug 30, 2022
d1cd01b
New translations mtscript-data-functions.mdx (Japanese)
rptools-automation Aug 30, 2022
9e8be38
New translations mtscript-data-functions.mdx (Dutch)
rptools-automation Aug 30, 2022
e2289a2
New translations start-server-dialog.png (Dutch)
rptools-automation Aug 30, 2022
95cb3f3
New translations start-server-dialog.png (Polish)
rptools-automation Aug 30, 2022
c19b348
New translations start-server-dialog.png (Russian)
rptools-automation Aug 30, 2022
e8621d1
New translations start-server-dialog.png (Ukrainian)
rptools-automation Aug 30, 2022
1f65d96
New translations allow-uri-access.png (Russian)
rptools-automation Aug 30, 2022
5e22d1e
New translations start-server-dialog.png (Chinese Simplified)
rptools-automation Aug 30, 2022
89df55a
New translations start-server-dialog.png (Portuguese, Brazilian)
rptools-automation Aug 30, 2022
2f3d595
New translations allow-uri-access.png (French)
rptools-automation Aug 30, 2022
d228a3c
New translations allow-uri-access.png (Spanish)
rptools-automation Aug 30, 2022
34a47a3
New translations allow-uri-access.png (Danish)
rptools-automation Aug 30, 2022
4b16156
New translations allow-uri-access.png (German)
rptools-automation Aug 30, 2022
c3611c4
New translations allow-uri-access.png (Italian)
rptools-automation Aug 30, 2022
4768ba7
New translations allow-uri-access.png (Japanese)
rptools-automation Aug 30, 2022
e4a41fb
New translations allow-uri-access.png (Dutch)
rptools-automation Aug 30, 2022
d5d5ac8
New translations allow-uri-access.png (Polish)
rptools-automation Aug 30, 2022
57ff0d5
New translations relative-path-example.gif (Polish)
rptools-automation Aug 30, 2022
b2b0508
Merge branch 'main' into l10n_main
cwisniew Aug 30, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
---
slug: token-speech-bubbles
title: Speech and Thought Bubbles
authors:
- craigw
tags:
- MapTool
- speech-bubble
- MapTool 1.10
---


## Callouts

One of the new additions in MapTool 1.10 is the ability to override the name that appears in the speech or thought bubble callouts in MapTool.

For those that are not already familiar with the functionality MapTool provides the ability to display the following callouts on all clients
* Pointer - Spacebar<br/> ![Pointer](./pointer.png)

* Speech Bubble - Control + Spacebar<br/> ![Speech Bubble](./speech.png)

* Thought Bubble - Shift + Spacebar<br/> ![Thought Bubble](./thought.png)

* Pointing Finger - Control + Shift + Spacebar<br/> ![Pointing Finger](./finger-point.png)



## Setting the Speech/Thought Callout Name

Previously these callouts always render the name of the player regardless of where the callout is or impersonation status. In MapTool 1.10 tokens can have a speech name, this can affect the name displayed for both thought and speech bubbles when the mouse pointer is over the token, or the token is impersonated.

This can be set when dragging a new token on to the map<br/> ![New Token Dialog](./new-token-dialog.png)

Or by editing existing tokens. ![Edit Token Dialog](./edit-token-dialog.png)

Or via macro.<br/> `setSpeechName("Speech bubble name", tokenId)`

## Related Macros
There are two related macros `getSpeechName()` which returns the speech name for the current token. There is also a trusted variant `getSpeechName(tokenId)` which will return the speech name for the token with the specified id.

`setSpeechName(SpeechBubbleName)` sets the speech name for the current token. There is also a trusted variant `setSpeechName(SpeechBubbleName, tokenId)` which will set the speech name for the token with the specified id.


## Examples
In the following examples the speech and thought bubbles look different to previous versions as another fix in MapTool 1.10 is to size them dynamically so large names wont be rendered outside of the bubbles.

No impersonated token or token under mouse ![No Token](./anon.png)

Token with Speech Name ![Token With Speech Name](./red-dragon.png)

Token with really long speech name ![Really Long Name](./captain-spalding.png)

Both the eagle and the Dragon have a speech name ![Impersonated](./eagle.png)

Mage and Familiar with Speech Name, mouse over Mage ![Mage](./mage-thought.png)

Mage and Familiar with Speech Name, mouse over Familiar ![Mage](./mage-familiar-thought.png)



## Determining which name is displayed
In general when deciding which name to use in speech and thought bubbles MapTool will attempt to show the name associated with the following precedence

1. Token under the mouse with speech name(if player owns it or is GM)
2. Impersonated Token with speech name
3. The players name


Below is a more detailed overview of the logic if you really want to know what it is.

```mermaid
flowchart TD;
Start([Start]) --> mouseOver{Mouse Over<br/>Token} --> |Yes| isOwner{Player Owns}
mouseOver --> |No| impersonated
isOwner --> |No| impersonated{Token<br/> Impersonated?}
isOwner --> |Yes| hasSpeechName{Has Speech<br/> Name}
hasSpeechName --> |Yes| speechName[Use Token<br/>Speech Bubble Name]
hasSpeechName --> |No| impersonated
impersonated --> |No| playerName[Use Player Name]
impersonated --> |Yes| impersonatedHasSpeech{Token Has<br/>Speech Name?}
impersonatedHasSpeech --> |Yes| impersonatedSpeech[Use Impersonated<br/>Token Speech Name]
impersonatedHasSpeech --> |No| playerName
```

If there are multiple tokens under the mouse (e.g. a Token Stack) and at least one has a speech name then the following logic will be used to determine which is used.

```mermaid
flowchart TD;
Start([Start]) --> hasImpersonated{Token<br/> Impersonated?}
hasImpersonated --> |Yes| impersonatedUnder{Impersonated Token<br/>in Stack?}
impersonatedUnder --> |Yes| useImpersonated[Use Impersonated<br/>Token Speech Name]
impersonatedUnder --> |No| topHasSpeech
hasImpersonated --> |No| topHasSpeech{Top Token<br/>Has Speech Name?}
topHasSpeech --> |Yes| useTop[Use Top Token<br/>Speech Name]
topHasSpeech --> |No| useOther[Use Any Token<br/>in Stack<br/>Speech Name]
```
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
---
slug: player-databases
title: Player Databases
authors:
- craigw
tags:
- MapTool
- Authentication
- MapTool 1.10
---

## Authentication types
Prior to version 1.10 MapTool only supported a single method of authentication which is role based authentication. Each Role (GM and Player) has a password and any client that connects and authenticates with either of these passwords gets that role. There is no restriction player names other than everyone has to have a unique name.

In MapTool 1.10 there are three authentication methods.
* Role based
* Player specific passwords
* Public Key

## Using Player Specific Authentication
For player specific passwords and public keys authentication a password file must be used as these require that the name of the players are fixed so that they can be matched to the specific password or public key. When starting the server you can specify that a password file is used. ![Start Server Dialog](./start-server-dialog.png)

This will load the password file or create a new one if it doesn't exist.


## Clients Connecting With Public Keys
So that the user does not have to type in a password that will not be used they can check "connect using public Key" from the connect to server dialog.

![Connect To Sever Dialog](./connect-using-public-key.png)

They do not have to check this box as if the server requests the client attempts to authenticates via public key the client will do so even if the user has specified a password. If this value is checked the only way the client can authenticate is via public key so any password in the password text field will be ignored.


## Adding, Editing, or Removing Players
The menu option to edit player passwords is under the file menu. ![Player Database Menu Option](./player-database-menu.png)

This opens the player database dialog which can be used to add, edit, and remove players. This dialog shows the following information

### Player Database
![Edit Player Dialog](./player-database.png)
* Player name
* Role, Player or GM
* Authentication Type, Password or Public Key
* Is the player Blocked Blocked players will not be able to log in. When they try to connect they will get a message with a reason that they are blocked.

:::note
New, Added, or Modifications to players take effect immediately but the changes will not be written to the password file until this dialog is closed (either with Ok button or dialog close button). This is so that the file will not be continually overwritten many times when making several changes at once.
:::


### Adding or Editing Player
Clicking on the Edit or Add button will open a dialog where you can provide the player details. ![Edit Player Dialog](./edit-player-dialog.png) This dialog is used to provide the information required for the player database entry.
* Player Name (only editable for Add)
* Role, Player or GM
* If the player has been blocked from logging in, and if so the reason why
* Authentication Type, password or public key
* Player Password (only if authentication type is password)
* Public Key (only if authentication type is public key)

The password is hashed which is a one way operation, so you will not be able to see a players password so if you and the player forget it you will have to change it to a new one.

Its recommended that if you want to use player specific authentication you use public keys as that way neither you or the player will need to remember the password. You can add more than one public key in the public key text field so you can easily support players who have multiple computers.

If you still prefer to use a password over a public key it is **strongly** recommended you use the Generate New Password button so that no one is sharing passwords they may be using elsewhere.

:::note
Setting a plyer to blocked will not kick the player, it will only stop them from attempting to connect to the server. You will need to kick the player if you also want to remove them immediately. At this time kicking a blocked player will not send them the reason that they are blocked/kicked but will do so in a future version.
:::

## Obtaining The Players Public Key
There is a new Authentication tab on the preferences dialog which contains the public key for your client. If you have multiple machines each will have its a different public key, its also possible if you have multiple versions installed with different data directories then these may also have different public keys.

![Players Public Key](./public-key.png)

You can regenerate your public key but if you do so then you will not be able to connect to any server that has your old public key so you will need to ensure you let the person running the server know that your public key has been changed.

Your public key is also stored in the file `.maptool-rptools/config/public.key` (or equivalent data directory).

**Warning:** Your private key is also stored in this directory, do not share this with anyone as if they have both your public and private key they will be able to log in as you on other servers your public key is registered with.


## Password File
The location of the password file -- assuming the standard data directory -- is `.maptool-rptools/config/passwords.json` always ensure that you make a backup before editing it as if you make mistakes and you don't have a backup you may need to regenerate new passwords for all players. Also never update the password file while the server is running. Public keys for players are stored in the the `.maptool-rptools/config/keys` directory. If you use multiple computers or share GM duties with someone else you can copy the `passwords.json` file and `keys` directory and place them in the same directory on the second computer as they contain nothing specific to the computer it was generated on. You should still endeavour to make sure that this password file is shard with as little number of people as possible. Also **never** use passwords that you have used anywhere else in this file even though they are hashed. If you must use passwords use the button to generate new passwords, but you should prefer public keys!

### Format of the Password File
The password file uses json format.
```json
"passwords": [
{
"username": "p1",
"password": "/49vX2/i/5YhQZTaalYnoA",
"salt": "DZAp3sKZSY/vWuLfTG26mhQbOx5PLNT0tRdNvTNMn8KjDlY3jJg180ZBN56ehfkygOk6v0CgySZaufGkOKj7RqOwudzoWZhtNGSabkbI4s85TG7Ecfz8HQQRfIi1XtWrlqkrnuiyD8zQFg9zNr0xvQlUwzL5UOK7emt/xPr2QfU",
"role": "Player"
},
{
"username": "sp1",
"publicKeys": [
"pk1.key"
],
"role": "Player"
},
{
"username": "g1",
"password": "9SH7OrqlXyRMrSXy2fQHaw",
"salt": "LOWXSGZ5tNeCwVpzNFuK/4EC+9jHMPmgpZ3Q05kElZyJKSWk0dGQOuZWADH2ZYAs4UvN3DVczMbAO6Dm5+NdnvsZsb/SnZ/xEM0QZ5yvmOh0bGjWEHwqTwFBbRUrzlpzy1nNKdJU8e7G2qWmaLUCDSV5Ut50l9aBfeL29d5btLA",
"role": "GM"
},
{
"username": "Test4",
"password": "ZyZpHxUR18RdhQpFk4n+jA",
"salt": "SucHGWjcbeDcegZo8A6jekB56iICulF3OtbcomJ+MsShuhKrrls2ZE+T25aTj/xAFu5wZlfE129LgBYvw/C3q2zeEyvjEmXprq5rzW8+c8VaXIRPSHbz5ursX5pRL8qcxbsCm4RFozld6R9/P6+IC3TC3DWoq6CRsvzHpIO2Nnc",
"role": "Player"
},
{
"username": "Test3",
"password": "EyFrs4pM6Euy5zQLHrFoOw",
"salt": "Fpvg/PJZGIp7N68OmxMaEGOA1mo4vdg7KoRUDik3Q6P6VovI0YOOdNi3iyo9WgcuukhXjlSoxBqG3Cz/hNQRVVgsXdGwcb86K20imFBbfyzpuNt3a/51u9HTQuYoE8FzzNsTdCI/VPmyQjgvP+AwSYT0i7m/GRXdtugoOWGnDgY",
"role": "Player"
}
]
}
```

A player entry that uses a public key will look like the following
```json
{
"username": "sp1",
"publicKeys": [
"pk1.key"
],
"role": "Player"
}
```
The value in `publicKeys` is the name of the file in the `keys` directory that contains the public keys for the player.

A player entery that uses a password will look like the following
```json
{
"username": "Test3",
"password": "EyFrs4pM6Euy5zQLHrFoOw",
"salt": "Fpvg/PJZGIp7N68OmxMaEGOA1mo4vdg7KoRUDik3Q6P6VovI0YOOdNi3iyo9WgcuukhXjlSoxBqG3Cz/hNQRVVgsXdGwcb86K20imFBbfyzpuNt3a/51u9HTQuYoE8FzzNsTdCI/VPmyQjgvP+AwSYT0i7m/GRXdtugoOWGnDgY",
"role": "Player"
}
```
The `password` field contains the hashed password for the player, the `salt` field is a randomised value that is used in the function used hash the password.

If you want to add players you will not be able to -- or be expected to -- generate the hashed password and salt instead you can instead specify the plaintext password and no salt like the following.
```json
{
"username": "Test3",
"password": "You-Are-Using-A-Random-Password-Arent-You?",
"role": "Player"
}
```
Then the next time the server is started this file will be read and the password will be hashed and the file overwritten to only contain hashed passwords and the salt for the password. This will also generate a `passwords.json.backup` before overwriting, ensure that you delete this file after testing as it contains then non hashed version of the passwords. But you did remember to use randome passwords and not passwords that you use elsehwere correct?
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading