Compare commits
107 Commits
main-chapr
...
1.6.2-chap
Author | SHA1 | Date | |
---|---|---|---|
06a8e7fe2f | |||
|
e7c7db235c | ||
|
5b95636165 | ||
|
65b7745429 | ||
|
d0420fb418 | ||
|
3b17dfc6ef | ||
|
879c7400bf | ||
|
46d8d7d781 | ||
|
684924e9e5 | ||
|
a7f720d825 | ||
|
826444bef7 | ||
|
10c6841f8a | ||
|
49a87c6038 | ||
|
7a5036d957 | ||
|
f8c2f58604 | ||
|
edec91de1c | ||
|
3bd570bd6a | ||
|
8131518ba1 | ||
|
bb89eb7fba | ||
|
94d1908777 | ||
|
5b2f788e48 | ||
|
33e9025d09 | ||
|
6133f6c35c | ||
|
0107b1258e | ||
|
65f289e516 | ||
|
b150450fac | ||
|
aa1a44e329 | ||
|
ee151ad29d | ||
|
c090f8d27f | ||
|
8c1310c334 | ||
|
c895c511c1 | ||
|
421fd4901f | ||
|
b2bf90d14e | ||
|
8d97569de0 | ||
|
d34f9c0b8c | ||
|
9614ee90f2 | ||
|
95d6a0d3b9 | ||
|
b9d74ecd35 | ||
|
9114ca00bf | ||
|
0fb40d5d3a | ||
|
cb4e95b917 | ||
|
52b0e0b369 | ||
|
515bfd8122 | ||
|
fbc302c0a1 | ||
|
b62e9dbc6e | ||
|
5c2496d474 | ||
|
f3eb2759ce | ||
|
cdb7ec0443 | ||
|
05dc1dd32e | ||
|
b70be94538 | ||
|
9a4c5b30c6 | ||
|
4ef0318495 | ||
|
58f919ecdd | ||
|
7518ea74c5 | ||
|
7e1dfdb012 | ||
|
1a4e2f8f06 | ||
|
8053daec14 | ||
|
9612637881 | ||
|
fb1ea260ba | ||
|
17b629018c | ||
|
a92407ea4e | ||
|
441ac9d8d9 | ||
|
046ccf2000 | ||
|
6c7c0ec09c | ||
|
b0f4a63705 | ||
|
1b772d0404 | ||
|
8dbf954870 | ||
|
69efa00d7f | ||
|
d17a0f091b | ||
|
6a1371822a | ||
|
0cc5880354 | ||
|
eb17f75793 | ||
|
0568d10bca | ||
|
ac681d6aa9 | ||
|
6f9496511a | ||
|
31cfa5b6e3 | ||
|
d27f43eb1d | ||
|
e395717a54 | ||
|
6a68d59d8b | ||
|
bc7a346aa0 | ||
|
0a24df6adb | ||
|
4cdf21ecd1 | ||
|
e2fac1be9d | ||
|
fa714c03dd | ||
|
c025c83e33 | ||
|
76e7ca4942 | ||
|
7aceed6a03 | ||
|
1795c1cf1a | ||
|
fd95445831 | ||
|
70ca60089f | ||
|
4f8c19c80e | ||
|
7a6aa84b76 | ||
|
f255905a6f | ||
|
b4ca795b6a | ||
|
80546bf629 | ||
|
5c97443d1d | ||
|
896a49c8cf | ||
|
ad50950b3c | ||
|
73c13af10d | ||
|
8a03c85708 | ||
|
6a454c1765 | ||
|
f862e062cd | ||
|
db2d8f1598 | ||
|
168fb46767 | ||
|
ff6b9b8e01 | ||
|
b998820957 | ||
|
edc86ffd72 |
@ -40,11 +40,7 @@
|
|||||||
"forwardPorts": [
|
"forwardPorts": [
|
||||||
8080
|
8080
|
||||||
],
|
],
|
||||||
"postCreateCommand": [
|
"postCreateCommand": ".devcontainer/postCreateCommand.sh",
|
||||||
"composer install --no-dev --optimize-autoloader",
|
|
||||||
"sudo chmod a+x \"$(pwd)\" && sudo rm -rf /var/www/html && sudo ln -s \"$(pwd)\" /var/www/html",
|
|
||||||
"npm install --global nyc"
|
|
||||||
],
|
|
||||||
// alternatiuve: apache2ctl start (but requires root)
|
// alternatiuve: apache2ctl start (but requires root)
|
||||||
"postAttachCommand": "php -S 0.0.0.0:8080"
|
"postAttachCommand": "php -S 0.0.0.0:8080"
|
||||||
}
|
}
|
||||||
|
5
.devcontainer/postCreateCommand.sh
Executable file
5
.devcontainer/postCreateCommand.sh
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
composer install --no-dev --optimize-autoloader
|
||||||
|
sudo chmod a+x "$(pwd)" && sudo rm -rf /var/www/html && sudo ln -s "$(pwd)" /var/www/html
|
||||||
|
npm install --global nyc
|
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -2,6 +2,7 @@ bin/configuration-test-generator export-ignore
|
|||||||
bin/icon-test export-ignore
|
bin/icon-test export-ignore
|
||||||
doc/ export-ignore
|
doc/ export-ignore
|
||||||
tst/ export-ignore
|
tst/ export-ignore
|
||||||
|
i18n/en.json export-ignore
|
||||||
img/browserstack.svg export-ignore
|
img/browserstack.svg export-ignore
|
||||||
js/.istanbul.yml export-ignore
|
js/.istanbul.yml export-ignore
|
||||||
js/.nycrc.yml export-ignore
|
js/.nycrc.yml export-ignore
|
||||||
|
1
.github/DISCUSSION_TEMPLATE/q-a.yml
vendored
1
.github/DISCUSSION_TEMPLATE/q-a.yml
vendored
@ -1,4 +1,3 @@
|
|||||||
title: ""
|
|
||||||
labels: ["question/support"]
|
labels: ["question/support"]
|
||||||
body:
|
body:
|
||||||
- type: markdown
|
- type: markdown
|
||||||
|
3
.github/ISSUE_TEMPLATE/bug_report.md
vendored
3
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@ -10,6 +10,9 @@ assignees: ''
|
|||||||
<!-- Please make sure to **only** use this template when it is about bugs in the PrivateBin PHP project.
|
<!-- Please make sure to **only** use this template when it is about bugs in the PrivateBin PHP project.
|
||||||
Otherwise, for help and support issues e.g. for deployment issues, please go back and chose the appropiate category. -->
|
Otherwise, for help and support issues e.g. for deployment issues, please go back and chose the appropiate category. -->
|
||||||
|
|
||||||
|
**Did you use the FAQ section?**
|
||||||
|
- [ ] Yes, I have read [the FAQ](https://github.com/PrivateBin/PrivateBin/wiki/FAQ) and I found no solution/answer there.
|
||||||
|
|
||||||
<!-- Describe the bug: A clear and concise description of what the bug is. -->
|
<!-- Describe the bug: A clear and concise description of what the bug is. -->
|
||||||
|
|
||||||
## Steps to reproduce
|
## Steps to reproduce
|
||||||
|
50
.github/workflows/release.yml
vendored
Normal file
50
.github/workflows/release.yml
vendored
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
name: Draft Release
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags: '[0-9]+.[0-9]?[0-9]?[0-9]?.?[0-9]+'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
draft:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Fetch changelog from tag
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
sparse-checkout: CHANGELOG.md
|
||||||
|
sparse-checkout-cone-mode: false
|
||||||
|
|
||||||
|
- name: Extract latest changelog entry and attach it to draft
|
||||||
|
uses: taiki-e/create-gh-release-action@v1
|
||||||
|
with:
|
||||||
|
changelog: CHANGELOG.md
|
||||||
|
draft: true
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
release:
|
||||||
|
outputs:
|
||||||
|
hashes: ${{ steps.hash.outputs.hashes }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Collect artifacts
|
||||||
|
run: |
|
||||||
|
wget -q https://github.com/PrivateBin/PrivateBin/archive/refs/tags/${GITHUB_REF_NAME}.tar.gz
|
||||||
|
wget -q https://github.com/PrivateBin/PrivateBin/archive/refs/tags/${GITHUB_REF_NAME}.zip
|
||||||
|
|
||||||
|
- name: Generate hashes
|
||||||
|
shell: bash
|
||||||
|
id: hash
|
||||||
|
run: echo "hashes=$(sha256sum ${GITHUB_REF_NAME}.* | base64 -w0)" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
|
provenance:
|
||||||
|
needs:
|
||||||
|
- release
|
||||||
|
permissions:
|
||||||
|
actions: read
|
||||||
|
id-token: write
|
||||||
|
contents: write
|
||||||
|
uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v1.9.0
|
||||||
|
with:
|
||||||
|
base64-subjects: "${{ needs.release.outputs.hashes }}"
|
||||||
|
draft-release: true
|
||||||
|
upload-assets: true
|
6
.github/workflows/tests.yml
vendored
6
.github/workflows/tests.yml
vendored
@ -19,7 +19,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
php-versions: ['7.3', '7.4', '8.0', '8.1', '8.2']
|
php-versions: ['7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4']
|
||||||
name: PHP ${{ matrix.php-versions }} unit tests on ${{ matrix.operating-system }}
|
name: PHP ${{ matrix.php-versions }} unit tests on ${{ matrix.operating-system }}
|
||||||
env:
|
env:
|
||||||
extensions: gd, sqlite3
|
extensions: gd, sqlite3
|
||||||
@ -102,9 +102,9 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: '16'
|
node-version: '20'
|
||||||
cache: 'npm'
|
cache: 'npm'
|
||||||
cache-dependency-path: 'js/package-lock.json'
|
cache-dependency-path: 'js/package-lock.json'
|
||||||
|
|
||||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -35,7 +35,9 @@ tst/.phpunit.result.cache
|
|||||||
.settings
|
.settings
|
||||||
.buildpath
|
.buildpath
|
||||||
.project
|
.project
|
||||||
|
.phpdoc
|
||||||
.externalToolBuilders
|
.externalToolBuilders
|
||||||
.c9
|
.c9
|
||||||
/.idea/
|
/.idea/
|
||||||
*.iml
|
*.iml
|
||||||
|
paste.log
|
||||||
|
5
.vscode/settings.json
vendored
Normal file
5
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"files.associations": {
|
||||||
|
"**/cfg/conf*.php": "ini"
|
||||||
|
}
|
||||||
|
}
|
113
CHANGELOG.md
113
CHANGELOG.md
@ -1,21 +1,32 @@
|
|||||||
# PrivateBin version history
|
# PrivateBin version history
|
||||||
|
|
||||||
* **1.6.0 (2023-09-11)**
|
## 1.6.2 (2023-12-15)
|
||||||
|
* FIXED: English not selectable when `languageselection` enabled (#1208)
|
||||||
|
* FIXED: SRI mismatch due to cached file having changed (#1207)
|
||||||
|
|
||||||
|
## 1.6.1 (2023-12-04)
|
||||||
|
* ADDED: Right-To-Left (RTL) support for Arabic & Hebrew (#1174)
|
||||||
|
* CHANGED: Upgrading libraries to: DOMpurify 3.0.6
|
||||||
|
|
||||||
|
## 1.6.0 (2023-09-11)
|
||||||
* ADDED: Translations for Japanese & Arabic
|
* ADDED: Translations for Japanese & Arabic
|
||||||
* ADDED: Configuration option to disable Email button (#1164)
|
* ADDED: Configuration option to disable Email button (#1164)
|
||||||
* CHANGED: Minimum required PHP version is 7.3, due to upgrading PHPunit (#707)
|
* CHANGED: Minimum required PHP version is 7.3, due to upgrading PHPunit (#707)
|
||||||
* CHANGED: Removed PHP 5 polyfill for random_bytes()
|
* CHANGED: Removed PHP 5 polyfill for random_bytes()
|
||||||
* **1.5.2 (2023-07-09)**
|
|
||||||
|
## 1.5.2 (2023-07-09)
|
||||||
* ADDED: Allow AWS SDK to use default credential provider chain for S3Storage (#1070)
|
* ADDED: Allow AWS SDK to use default credential provider chain for S3Storage (#1070)
|
||||||
* CHANGED: Upgrading libraries to: DOMpurify 3.0.4 & jQuery 3.7.0
|
* CHANGED: Upgrading libraries to: DOMpurify 3.0.4 & jQuery 3.7.0
|
||||||
* FIXED: Addressed PHP 8.2 deprecation warnings (#1092)
|
* FIXED: Addressed PHP 8.2 deprecation warnings (#1092)
|
||||||
* FIXED: Expose types JSON-LD incl. configured expiration dates (#1045)
|
* FIXED: Expose types JSON-LD incl. configured expiration dates (#1045)
|
||||||
* **1.5.1 (2022-12-24)**
|
|
||||||
|
## 1.5.1 (2022-12-24)
|
||||||
* ADDED: script for administrative tasks: deleting pastes (#274), removing empty directories (#277), purging expired pastes (#276) & statistics (#319)
|
* ADDED: script for administrative tasks: deleting pastes (#274), removing empty directories (#277), purging expired pastes (#276) & statistics (#319)
|
||||||
* FIXED: Revert Filesystem purge to limited and randomized lookup (#1030)
|
* FIXED: Revert Filesystem purge to limited and randomized lookup (#1030)
|
||||||
* FIXED: Catch JSON decode errors when invalid data gets sent to the API (#1030)
|
* FIXED: Catch JSON decode errors when invalid data gets sent to the API (#1030)
|
||||||
* FIXED: Support sorting v1 format in mixed version comments in Filesystem backend (#1030)
|
* FIXED: Support sorting v1 format in mixed version comments in Filesystem backend (#1030)
|
||||||
* **1.5 (2022-12-11)**
|
|
||||||
|
## 1.5 (2022-12-11)
|
||||||
* ADDED: script for data storage backend migrations (#1012)
|
* ADDED: script for data storage backend migrations (#1012)
|
||||||
* ADDED: Translations for Turkish, Slovak, Greek and Thai
|
* ADDED: Translations for Turkish, Slovak, Greek and Thai
|
||||||
* ADDED: S3 Storage backend (#994)
|
* ADDED: S3 Storage backend (#994)
|
||||||
@ -25,7 +36,8 @@
|
|||||||
* FIXED: Revert to CREATE INDEX without IF NOT EXISTS clauses, to support MySQL (#943)
|
* FIXED: Revert to CREATE INDEX without IF NOT EXISTS clauses, to support MySQL (#943)
|
||||||
* FIXED: Apply table prefix to indexes as well, to support multiple instances sharing a single database (#943)
|
* FIXED: Apply table prefix to indexes as well, to support multiple instances sharing a single database (#943)
|
||||||
* FIXED: YOURLS integration via new proxy, storing signature in configuration (#725)
|
* FIXED: YOURLS integration via new proxy, storing signature in configuration (#725)
|
||||||
* **1.4 (2022-04-09)**
|
|
||||||
|
## 1.4 (2022-04-09)
|
||||||
* ADDED: Translations for Corsican, Estonian, Finnish and Lojban
|
* ADDED: Translations for Corsican, Estonian, Finnish and Lojban
|
||||||
* ADDED: new HTTP headers improving security (#765)
|
* ADDED: new HTTP headers improving security (#765)
|
||||||
* ADDED: Download button for paste text (#774)
|
* ADDED: Download button for paste text (#774)
|
||||||
@ -43,7 +55,8 @@
|
|||||||
* CHANGED: Server salt, traffic and purge limiter now stored in the storage backend (#419)
|
* CHANGED: Server salt, traffic and purge limiter now stored in the storage backend (#419)
|
||||||
* CHANGED: Drop support for attachment download in IE
|
* CHANGED: Drop support for attachment download in IE
|
||||||
* FIXED: Error when attachments are disabled, but paste with attachment gets displayed
|
* FIXED: Error when attachments are disabled, but paste with attachment gets displayed
|
||||||
* **1.3.5 (2021-04-05)**
|
|
||||||
|
## 1.3.5 (2021-04-05)
|
||||||
* ADDED: Translations for Hebrew, Lithuanian, Indonesian and Catalan
|
* ADDED: Translations for Hebrew, Lithuanian, Indonesian and Catalan
|
||||||
* ADDED: Make the project info configurable (#681)
|
* ADDED: Make the project info configurable (#681)
|
||||||
* CHANGED: Upgrading libraries to: DOMpurify 2.2.7, kjua 0.9.0 & random_compat 2.0.18
|
* CHANGED: Upgrading libraries to: DOMpurify 2.2.7, kjua 0.9.0 & random_compat 2.0.18
|
||||||
@ -62,32 +75,38 @@
|
|||||||
* FIXED: Improve OpenGraph attributes (#651)
|
* FIXED: Improve OpenGraph attributes (#651)
|
||||||
* FIXED: Reset to configured burn-after-reading, discussion and expiration settings (#682)
|
* FIXED: Reset to configured burn-after-reading, discussion and expiration settings (#682)
|
||||||
* FIXED: Italic segment of project information (#756)
|
* FIXED: Italic segment of project information (#756)
|
||||||
* **1.3.4 (2020-03-22)**
|
|
||||||
|
## 1.3.4 (2020-03-22)
|
||||||
* CHANGED: Minimum required PHP version is 5.6, due to a change in the identicon library and to use php's native hash_equals()
|
* CHANGED: Minimum required PHP version is 5.6, due to a change in the identicon library and to use php's native hash_equals()
|
||||||
* CHANGED: Upgrading libraries to: identicon 2.0.0
|
* CHANGED: Upgrading libraries to: identicon 2.0.0
|
||||||
* FIXED: Support custom expiration options in email function (#586)
|
* FIXED: Support custom expiration options in email function (#586)
|
||||||
* FIXED: Regression with encoding of HTML entities (#588)
|
* FIXED: Regression with encoding of HTML entities (#588)
|
||||||
* FIXED: Unable to paste password on paste with attachment (#565 & #595)
|
* FIXED: Unable to paste password on paste with attachment (#565 & #595)
|
||||||
* **1.3.3 (2020-02-16)**
|
|
||||||
|
## 1.3.3 (2020-02-16)
|
||||||
* CHANGED: Upgrading libraries to: DOMpurify 2.0.8
|
* CHANGED: Upgrading libraries to: DOMpurify 2.0.8
|
||||||
* CHANGED: Several translations got updated with missing messages
|
* CHANGED: Several translations got updated with missing messages
|
||||||
* CHANGED: Introduce HTML entity encoding on server side (#581)
|
* CHANGED: Introduce HTML entity encoding on server side (#581)
|
||||||
* FIXED: HTML entity double encoding issues introduced in 1.3.2 (#560)
|
* FIXED: HTML entity double encoding issues introduced in 1.3.2 (#560)
|
||||||
* **1.2.3 (2020-02-16)**
|
|
||||||
|
## 1.2.3 (2020-02-16)
|
||||||
* CHANGED: Upgrading libraries to: DOMpurify 2.0.8
|
* CHANGED: Upgrading libraries to: DOMpurify 2.0.8
|
||||||
* CHANGED: Introduce HTML entity encoding on server side (#581)
|
* CHANGED: Introduce HTML entity encoding on server side (#581)
|
||||||
* FIXED: HTML entity double encoding issues introduced in 1.3.2 (#560)
|
* FIXED: HTML entity double encoding issues introduced in 1.3.2 (#560)
|
||||||
* **1.3.2 (2020-01-11)**
|
|
||||||
|
## 1.3.2 (2020-01-11)
|
||||||
* ADDED: Translation for Ukrainian (#533)
|
* ADDED: Translation for Ukrainian (#533)
|
||||||
* ADDED: Option to send a mail with the link, when creating a paste (#398)
|
* ADDED: Option to send a mail with the link, when creating a paste (#398)
|
||||||
* ADDED: Add support for CONFIG_PATH environment variable (#552)
|
* ADDED: Add support for CONFIG_PATH environment variable (#552)
|
||||||
* CHANGED: Upgrading libraries to: base-x 3.0.7, DOMpurify 2.0.7 & Showdown 1.9.1
|
* CHANGED: Upgrading libraries to: base-x 3.0.7, DOMpurify 2.0.7 & Showdown 1.9.1
|
||||||
* FIXED: HTML injection via unescaped attachment filename (#554)
|
* FIXED: HTML injection via unescaped attachment filename (#554)
|
||||||
* FIXED: Password disabling option (#527)
|
* FIXED: Password disabling option (#527)
|
||||||
* **1.2.2 (2020-01-11)**
|
|
||||||
|
## 1.2.2 (2020-01-11)
|
||||||
* CHANGED: Upgrading libraries to: bootstrap 3.4.1 (CSS), DOMpurify 2.0.7, jQuery 3.4.1, kjua 0.6.0, Showdown 1.9.1 & SJCL 1.0.8
|
* CHANGED: Upgrading libraries to: bootstrap 3.4.1 (CSS), DOMpurify 2.0.7, jQuery 3.4.1, kjua 0.6.0, Showdown 1.9.1 & SJCL 1.0.8
|
||||||
* FIXED: HTML injection via unescaped attachment filename (#554)
|
* FIXED: HTML injection via unescaped attachment filename (#554)
|
||||||
* **1.3.1 (2019-09-22)**
|
|
||||||
|
## 1.3.1 (2019-09-22)
|
||||||
* ADDED: Translation for Bulgarian (#455)
|
* ADDED: Translation for Bulgarian (#455)
|
||||||
* CHANGED: Improved mobile UI - obscured send button and hard to click shortener button (#477)
|
* CHANGED: Improved mobile UI - obscured send button and hard to click shortener button (#477)
|
||||||
* CHANGED: Enhanced URL shortener integration (#479)
|
* CHANGED: Enhanced URL shortener integration (#479)
|
||||||
@ -103,7 +122,8 @@
|
|||||||
* FIXED: Showdown.js error when posting svg qrcode (#485)
|
* FIXED: Showdown.js error when posting svg qrcode (#485)
|
||||||
* FIXED: Failed to handle the case where user cancelled attachment selection properly (#487)
|
* FIXED: Failed to handle the case where user cancelled attachment selection properly (#487)
|
||||||
* FIXED: Displaying the appropriate errors in older browsers (#508)
|
* FIXED: Displaying the appropriate errors in older browsers (#508)
|
||||||
* **1.3 (2019-07-09)**
|
|
||||||
|
## 1.3 (2019-07-09)
|
||||||
* ADDED: Translation for Czech (#424)
|
* ADDED: Translation for Czech (#424)
|
||||||
* ADDED: Threat modeled the application (#177)
|
* ADDED: Threat modeled the application (#177)
|
||||||
* ADDED: Made compression configurable (#38)
|
* ADDED: Made compression configurable (#38)
|
||||||
@ -122,14 +142,16 @@
|
|||||||
* FIXED: Properly escaped HTML in raw text mode (#358)
|
* FIXED: Properly escaped HTML in raw text mode (#358)
|
||||||
* FIXED: Made download links better readable in the dark bootstrap theme (#364)
|
* FIXED: Made download links better readable in the dark bootstrap theme (#364)
|
||||||
* FIXED: Allow Letsencrypt bot to access on apache servers (#413)
|
* FIXED: Allow Letsencrypt bot to access on apache servers (#413)
|
||||||
* **1.2.1 (2018-08-11)**
|
|
||||||
|
## 1.2.1 (2018-08-11)
|
||||||
* ADDED: Add support for mega.nz links in pastes and comments (#331)
|
* ADDED: Add support for mega.nz links in pastes and comments (#331)
|
||||||
* CHANGED: Added some missing Russian translations (#348)
|
* CHANGED: Added some missing Russian translations (#348)
|
||||||
* CHANGED: Minor PHP refactoring: Rename PrivateBin class to Controller, improved logic of some persistence classes (#342)
|
* CHANGED: Minor PHP refactoring: Rename PrivateBin class to Controller, improved logic of some persistence classes (#342)
|
||||||
* CHANGED: Upgrading DOMpurify library to 1.0.7
|
* CHANGED: Upgrading DOMpurify library to 1.0.7
|
||||||
* FIXED: Ensure legacy browsers without webcrypto support can't create paste keys with insufficient entropy (#346)
|
* FIXED: Ensure legacy browsers without webcrypto support can't create paste keys with insufficient entropy (#346)
|
||||||
* FIXED: Re-add support for old browsers (Firefox<21, Chrome<31, Safari<7, IE<11), broken in 1.2, will be removed again in 1.3
|
* FIXED: Re-add support for old browsers (Firefox<21, Chrome<31, Safari<7, IE<11), broken in 1.2, will be removed again in 1.3
|
||||||
* **1.2 (2018-07-22)**
|
|
||||||
|
## 1.2 (2018-07-22)
|
||||||
* ADDED: Translations for Spanish, Occitan, Norwegian, Portuguese, Dutch and Hungarian
|
* ADDED: Translations for Spanish, Occitan, Norwegian, Portuguese, Dutch and Hungarian
|
||||||
* ADDED: Option in configuration to change the default "PrivateBin" title of the site
|
* ADDED: Option in configuration to change the default "PrivateBin" title of the site
|
||||||
* ADDED: Added display of video, audio & PDF, drag & drop, preview of attachments (#182)
|
* ADDED: Added display of video, audio & PDF, drag & drop, preview of attachments (#182)
|
||||||
@ -143,9 +165,11 @@
|
|||||||
* CHANGED: Upgrading libraries to: SJCL 1.0.7, jQuery 3.3.1, Base64 2.4.5, Showdown 1.8.6, DOMpurify 1.0.5 & Prettify 453bd5f
|
* CHANGED: Upgrading libraries to: SJCL 1.0.7, jQuery 3.3.1, Base64 2.4.5, Showdown 1.8.6, DOMpurify 1.0.5 & Prettify 453bd5f
|
||||||
* CHANGED: Refactored JavaScript code, making it modular with private and public functions, making it much easier to maintain (#178)
|
* CHANGED: Refactored JavaScript code, making it modular with private and public functions, making it much easier to maintain (#178)
|
||||||
* FIXED: To counteract regressions introduced by the refactoring, we finally introduced property based unit testing for the JavaScript code, this caught several regressions, but also some very old bugs not found so far (#32)
|
* FIXED: To counteract regressions introduced by the refactoring, we finally introduced property based unit testing for the JavaScript code, this caught several regressions, but also some very old bugs not found so far (#32)
|
||||||
* **1.1.1 (2017-10-06)**
|
|
||||||
|
## 1.1.1 (2017-10-06)
|
||||||
* CHANGED: Switched to `.php` file extension for configuration file, to avoid leaking configuration data in unprotected installation.
|
* CHANGED: Switched to `.php` file extension for configuration file, to avoid leaking configuration data in unprotected installation.
|
||||||
* **1.1 (2016-12-26)**
|
|
||||||
|
## 1.1 (2016-12-26)
|
||||||
* ADDED: Translations for Italian and Russian
|
* ADDED: Translations for Italian and Russian
|
||||||
* ADDED: Loading message displayed until decryption succeeded for slower (in terms of CPU or network) systems
|
* ADDED: Loading message displayed until decryption succeeded for slower (in terms of CPU or network) systems
|
||||||
* ADDED: Dockerfile for docker container creation
|
* ADDED: Dockerfile for docker container creation
|
||||||
@ -154,7 +178,8 @@
|
|||||||
* CHANGED: Updated random_compat and jQuery libraries
|
* CHANGED: Updated random_compat and jQuery libraries
|
||||||
* FIXED: XSS using JavaScript stored as markdown formatted paste, after clicking on Raw paste button (#137)
|
* FIXED: XSS using JavaScript stored as markdown formatted paste, after clicking on Raw paste button (#137)
|
||||||
* FIXED: Automatic purging deleting non-expiring pastes, when using database store (#149)
|
* FIXED: Automatic purging deleting non-expiring pastes, when using database store (#149)
|
||||||
* **1.0 (2016-08-25)**
|
|
||||||
|
## 1.0 (2016-08-25)
|
||||||
* ADDED: Translations for Slowene and Chinese
|
* ADDED: Translations for Slowene and Chinese
|
||||||
* ADDED: re-introduced (optional) URL shortener support, which was removed back in version 0.16 for privacy concerns
|
* ADDED: re-introduced (optional) URL shortener support, which was removed back in version 0.16 for privacy concerns
|
||||||
* ADDED: Preview tab, helpful for writing markdown code or check the source code rendering
|
* ADDED: Preview tab, helpful for writing markdown code or check the source code rendering
|
||||||
@ -182,7 +207,8 @@
|
|||||||
* FIXED: Raw text now displays original markdown instead of rendered HTML
|
* FIXED: Raw text now displays original markdown instead of rendered HTML
|
||||||
* FIXED: Removed unused code detected with the help of various code review tools
|
* FIXED: Removed unused code detected with the help of various code review tools
|
||||||
* FIXED: Table format for PostgreSQL, making it possible to use PostgreSQL as backend in addition to MySQL, SQLite and flat files
|
* FIXED: Table format for PostgreSQL, making it possible to use PostgreSQL as backend in addition to MySQL, SQLite and flat files
|
||||||
* **0.22 (2015-11-09)**:
|
|
||||||
|
## 0.22 (2015-11-09):
|
||||||
* ADDED: Tab character input support
|
* ADDED: Tab character input support
|
||||||
* ADDED: Dark bootstrap theme
|
* ADDED: Dark bootstrap theme
|
||||||
* ADDED: Option to hide clone button on expiring pastes
|
* ADDED: Option to hide clone button on expiring pastes
|
||||||
@ -197,12 +223,14 @@
|
|||||||
* CHANGED: Switching to JSON-based REST-API
|
* CHANGED: Switching to JSON-based REST-API
|
||||||
* CHANGED: Database structure to store attachments, allowing larger attachments to be stored (depending on maximum BLOB size of database backend)
|
* CHANGED: Database structure to store attachments, allowing larger attachments to be stored (depending on maximum BLOB size of database backend)
|
||||||
* CHANGED: Refactored data model, traffic limiting & request handling
|
* CHANGED: Refactored data model, traffic limiting & request handling
|
||||||
* **0.21.1 (2015-09-21)**:
|
|
||||||
|
## 0.21.1 (2015-09-21):
|
||||||
* FIXING: lost meta data when using DB model instead of flat files
|
* FIXING: lost meta data when using DB model instead of flat files
|
||||||
* FIXING: mobile navbar getting triggered on load
|
* FIXING: mobile navbar getting triggered on load
|
||||||
* CHANGED: database table "paste" gets automatically extended with a "meta" column
|
* CHANGED: database table "paste" gets automatically extended with a "meta" column
|
||||||
* CHANGED: navbar of "bootstrap" template now spans full width of view port on large screens
|
* CHANGED: navbar of "bootstrap" template now spans full width of view port on large screens
|
||||||
* **0.21 (2015-09-19)**:
|
|
||||||
|
## 0.21 (2015-09-19):
|
||||||
* ADDED: Translations for German, French and Polish, language selection menu (optional)
|
* ADDED: Translations for German, French and Polish, language selection menu (optional)
|
||||||
* ADDED: File upload and image display support (optional)
|
* ADDED: File upload and image display support (optional)
|
||||||
* ADDED: Markdown format support
|
* ADDED: Markdown format support
|
||||||
@ -219,7 +247,8 @@ encryption), i18n (translation, counterpart of i18n.php) and helper (stateless u
|
|||||||
* [Directory of public PrivateBin servers](https://github.com/PrivateBin/PrivateBin/wiki/PrivateBin-Directory)
|
* [Directory of public PrivateBin servers](https://github.com/PrivateBin/PrivateBin/wiki/PrivateBin-Directory)
|
||||||
* [Translation](https://github.com/PrivateBin/PrivateBin/wiki/Translation)
|
* [Translation](https://github.com/PrivateBin/PrivateBin/wiki/Translation)
|
||||||
* [Templates](https://github.com/PrivateBin/PrivateBin/wiki/Templates)
|
* [Templates](https://github.com/PrivateBin/PrivateBin/wiki/Templates)
|
||||||
* **0.20 (2015-09-03)**:
|
|
||||||
|
## 0.20 (2015-09-03):
|
||||||
* ADDED: Password protected pastes (optional)
|
* ADDED: Password protected pastes (optional)
|
||||||
* ADDED: configuration options for highlighting, password, discussions, expiration times, rate limiting
|
* ADDED: configuration options for highlighting, password, discussions, expiration times, rate limiting
|
||||||
* ADDED: JSON-only retrieval of paste incl. discussion, used to be able to refresh paste when posting a comment
|
* ADDED: JSON-only retrieval of paste incl. discussion, used to be able to refresh paste when posting a comment
|
||||||
@ -229,10 +258,12 @@ encryption), i18n (translation, counterpart of i18n.php) and helper (stateless u
|
|||||||
* FIXING: Behaviour of several conflicting configuration options. As a general measure unit tests for 9 of the options and all their possible configurations were added via a unit test generator.
|
* FIXING: Behaviour of several conflicting configuration options. As a general measure unit tests for 9 of the options and all their possible configurations were added via a unit test generator.
|
||||||
* updated JS libraries: jquery to 1.11.3, sjcl to 1.0.2, base64.js to 2.1.9, deflate to 0.5, inflate to 0.3 and prettify to latest
|
* updated JS libraries: jquery to 1.11.3, sjcl to 1.0.2, base64.js to 2.1.9, deflate to 0.5, inflate to 0.3 and prettify to latest
|
||||||
* generally improved documentation, both inline phpdoc / JSdoc source code documentation, as well as Wiki pages on installation, configuration, development and JSON-API
|
* generally improved documentation, both inline phpdoc / JSdoc source code documentation, as well as Wiki pages on installation, configuration, development and JSON-API
|
||||||
* **Alpha 0.19 (2013-07-05)**:
|
|
||||||
|
## Alpha 0.19 (2013-07-05):
|
||||||
* Corrected XSS security flaw which affected IE<10. Other browsers were not affected.
|
* Corrected XSS security flaw which affected IE<10. Other browsers were not affected.
|
||||||
* Corrected spacing display in IE<10.
|
* Corrected spacing display in IE<10.
|
||||||
* **Alpha 0.18 (2013-02-24)**:
|
|
||||||
|
## Alpha 0.18 (2013-02-24):
|
||||||
* ADDED: The resulting URL is automatically selected after pressing "Send". You just have to press CTRL+C.
|
* ADDED: The resulting URL is automatically selected after pressing "Send". You just have to press CTRL+C.
|
||||||
* ADDED: Automatic syntax highlighting for 53 languages using highlight.js
|
* ADDED: Automatic syntax highlighting for 53 languages using highlight.js
|
||||||
* ADDED: "5 minutes" and "1 week" expirations.
|
* ADDED: "5 minutes" and "1 week" expirations.
|
||||||
@ -245,41 +276,51 @@ encryption), i18n (translation, counterpart of i18n.php) and helper (stateless u
|
|||||||
* ADDED: Better json checking (including entropy).
|
* ADDED: Better json checking (including entropy).
|
||||||
* ADDED: Added version to js/css assets URLs in order to prevent some abusive caches to serve an obsolete version of these files when ZeroBin is upgraded.
|
* ADDED: Added version to js/css assets URLs in order to prevent some abusive caches to serve an obsolete version of these files when ZeroBin is upgraded.
|
||||||
* "Burn after reading" option has been moved out of Expiration combo to a separate checkbox. Reason is: You can prevent a read-once paste to be available ad vitam eternam on the net.
|
* "Burn after reading" option has been moved out of Expiration combo to a separate checkbox. Reason is: You can prevent a read-once paste to be available ad vitam eternam on the net.
|
||||||
* **Alpha 0.17 (2013-02-23)**:
|
|
||||||
|
## Alpha 0.17 (2013-02-23):
|
||||||
* ADDED: Deletion URL.
|
* ADDED: Deletion URL.
|
||||||
* small refactoring.
|
* small refactoring.
|
||||||
* improved regex checks.
|
* improved regex checks.
|
||||||
* larger server alt on installation.
|
* larger server alt on installation.
|
||||||
* **Alpha 0.16**:
|
|
||||||
|
## Alpha 0.16:
|
||||||
* FIXED minor php warnings.
|
* FIXED minor php warnings.
|
||||||
* FIXED: zerobin.js reformated and properly commented.
|
* FIXED: zerobin.js reformated and properly commented.
|
||||||
* FIXED: Directory structure re-organized.
|
* FIXED: Directory structure re-organized.
|
||||||
* CHANGED: URL shortening button was removed. (It was bad for privacy.)
|
* CHANGED: URL shortening button was removed. (It was bad for privacy.)
|
||||||
* **Alpha 0.15 (2012-04-20):**
|
|
||||||
|
## Alpha 0.15 (2012-04-20):
|
||||||
* FIXED: 2 minor corrections to avoid notices in php log.
|
* FIXED: 2 minor corrections to avoid notices in php log.
|
||||||
* FIXED: Sources converted to UTF-8.
|
* FIXED: Sources converted to UTF-8.
|
||||||
* **Alpha 0.14 (2012-04-20):**
|
|
||||||
|
## Alpha 0.14 (2012-04-20):
|
||||||
* ADDED: GD presence is checked.
|
* ADDED: GD presence is checked.
|
||||||
* CHANGED: Traffic limiter data files moved to data/ (→easier rights management)
|
* CHANGED: Traffic limiter data files moved to data/ (→easier rights management)
|
||||||
* ADDED: "Burn after reading" implemented. Opening the URL will display the paste and immediately destroy it on server.
|
* ADDED: "Burn after reading" implemented. Opening the URL will display the paste and immediately destroy it on server.
|
||||||
* **Alpha 0.13 (2012-04-18):**
|
|
||||||
|
## Alpha 0.13 (2012-04-18):
|
||||||
* FIXED: ''imageantialias()'' call removed because it's not really usefull and can be a problem on most hosts (if GD is not compiled in php).
|
* FIXED: ''imageantialias()'' call removed because it's not really usefull and can be a problem on most hosts (if GD is not compiled in php).
|
||||||
* FIXED: $error not properly initialized in index.php
|
* FIXED: $error not properly initialized in index.php
|
||||||
* **Alpha 0.12 (2012-04-18):**
|
|
||||||
* **DISCUSSIONS !** Now you can enable discussions on your pastes. Of course, posted comments and nickname are also encrypted and the server cannot see them.
|
## Alpha 0.12 (2012-04-18):
|
||||||
|
## DISCUSSIONS ! Now you can enable discussions on your pastes. Of course, posted comments and nickname are also encrypted and the server cannot see them.
|
||||||
* This feature implies a change in storage format. You will have to delete all previous pastes in your ZeroBin.
|
* This feature implies a change in storage format. You will have to delete all previous pastes in your ZeroBin.
|
||||||
* Added [[php:vizhash_gd|Vizhash]] as avatars, so you can match posters IP addresses without revealing them. (Same image = same IP). Of course the IP address cannot be deduced from the Vizhash.
|
* Added [[php:vizhash_gd|Vizhash]] as avatars, so you can match posters IP addresses without revealing them. (Same image = same IP). Of course the IP address cannot be deduced from the Vizhash.
|
||||||
* Remaining time before expiration is now displayed.
|
* Remaining time before expiration is now displayed.
|
||||||
* Explicit tags were added to CSS and jQuery selectors (eg. div#aaa instead of #aaa) to speed up browser.
|
* Explicit tags were added to CSS and jQuery selectors (eg. div#aaa instead of #aaa) to speed up browser.
|
||||||
* Better cleaning of the URL (to make sure the key is not broken by some stupid redirection service)
|
* Better cleaning of the URL (to make sure the key is not broken by some stupid redirection service)
|
||||||
* **Alpha 0.11 (2012-04-12):**
|
|
||||||
|
## Alpha 0.11 (2012-04-12):
|
||||||
* Automatically ignore parameters (such as &utm_source=...) added //after// the anchor by some stupid Web 2.0 services.
|
* Automatically ignore parameters (such as &utm_source=...) added //after// the anchor by some stupid Web 2.0 services.
|
||||||
* First public release.
|
* First public release.
|
||||||
* **Alpha 0.10 (2012-04-12):**
|
|
||||||
* IE9 does not seem to correctly support ''pre-wrap'' either. Special handling mode activated for all version of IE<10. (Note: **ALL other browsers** correctly support this feature.)
|
## Alpha 0.10 (2012-04-12):
|
||||||
* **Alpha 0.9 (2012-04-11):**
|
* IE9 does not seem to correctly support ''pre-wrap'' either. Special handling mode activated for all version of IE<10. (Note: ALL other browsers correctly support this feature.)
|
||||||
|
|
||||||
|
## Alpha 0.9 (2012-04-11):
|
||||||
* Oh bummer... IE 8 is as shitty as IE6/7: Its does not seem to support ''white-space:pre-wrap'' correctly. I had to activate the special handling mode. I still have to test IE 9.
|
* Oh bummer... IE 8 is as shitty as IE6/7: Its does not seem to support ''white-space:pre-wrap'' correctly. I had to activate the special handling mode. I still have to test IE 9.
|
||||||
* **Alpha 0.8 (2012-04-11):**
|
|
||||||
|
## Alpha 0.8 (2012-04-11):
|
||||||
* Source code not published yet.
|
* Source code not published yet.
|
||||||
* Interface completely redesigned. Icons added.
|
* Interface completely redesigned. Icons added.
|
||||||
* Now properly supports IE6/7 (ugly display, but it works. "Clone" button is disabled though.)
|
* Now properly supports IE6/7 (ugly display, but it works. "Clone" button is disabled though.)
|
||||||
|
8
Makefile
8
Makefile
@ -1,7 +1,7 @@
|
|||||||
.PHONY: all coverage coverage-js coverage-php doc doc-js doc-php increment sign test test-js test-php help
|
.PHONY: all coverage coverage-js coverage-php doc doc-js doc-php increment sign test test-js test-php help
|
||||||
|
|
||||||
CURRENT_VERSION = 1.6.0
|
CURRENT_VERSION = 1.6.2
|
||||||
VERSION ?= 1.6.1
|
VERSION ?= 1.6.3
|
||||||
VERSION_FILES = index.php bin/ cfg/ *.md doc/Installation.md css/ i18n/ img/ js/package.json js/privatebin.js lib/ Makefile tpl/ tst/
|
VERSION_FILES = index.php bin/ cfg/ *.md doc/Installation.md css/ i18n/ img/ js/package.json js/privatebin.js lib/ Makefile tpl/ tst/
|
||||||
REGEX_CURRENT_VERSION := $(shell echo $(CURRENT_VERSION) | sed "s/\./\\\./g")
|
REGEX_CURRENT_VERSION := $(shell echo $(CURRENT_VERSION) | sed "s/\./\\\./g")
|
||||||
REGEX_VERSION := $(shell echo $(VERSION) | sed "s/\./\\\./g")
|
REGEX_VERSION := $(shell echo $(VERSION) | sed "s/\./\\\./g")
|
||||||
@ -18,7 +18,7 @@ coverage-js: ## Run JS unit tests and generate code coverage reports.
|
|||||||
|
|
||||||
coverage-php: ## Run PHP unit tests and generate code coverage reports.
|
coverage-php: ## Run PHP unit tests and generate code coverage reports.
|
||||||
cd tst && phpunit 2> /dev/null
|
cd tst && phpunit 2> /dev/null
|
||||||
cd tst/log/php-coverage-report && sed -i "s#$(CURDIR)##g" *.html */*.html
|
cd tst/log/php-coverage-report && sed -i "s#$(CURDIR)/##g" *.html */*.html
|
||||||
|
|
||||||
doc: doc-js doc-php ## Generate all code documentation.
|
doc: doc-js doc-php ## Generate all code documentation.
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ doc-js: ## Generate JS code documentation.
|
|||||||
jsdoc -p -d doc/jsdoc js/privatebin.js js/legacy.js
|
jsdoc -p -d doc/jsdoc js/privatebin.js js/legacy.js
|
||||||
|
|
||||||
doc-php: ## Generate JS code documentation.
|
doc-php: ## Generate JS code documentation.
|
||||||
phpdoc --visibility public,protected,private -t doc/phpdoc -d lib/
|
phpdoc --visibility=public,protected,private --target=doc/phpdoc --directory=lib/
|
||||||
|
|
||||||
increment: ## Increment and commit new version number, set target version using `make increment VERSION=1.2.3`.
|
increment: ## Increment and commit new version number, set target version using `make increment VERSION=1.2.3`.
|
||||||
for F in `grep -l -R $(REGEX_CURRENT_VERSION) $(VERSION_FILES) | grep -v -e tst/log/ -e ":0" -e CHANGELOG.md`; \
|
for F in `grep -l -R $(REGEX_CURRENT_VERSION) $(VERSION_FILES) | grep -v -e tst/log/ -e ":0" -e CHANGELOG.md`; \
|
||||||
|
12
README.chapril.md
Normal file
12
README.chapril.md
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# Construire une version Chapril de privatebin
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
git fetch --all
|
||||||
|
export VERSION=1.6.0
|
||||||
|
git rebase ${VERSION?}
|
||||||
|
# [... Résoudre les conflits]
|
||||||
|
git tag ${VERSION?}-chapril
|
||||||
|
git push --tags origin # Pousser le tag côté forge April
|
||||||
|
git archive -o /tmp/chapril-paste-${VERSION?}.tar.gz --prefix=chapril-paste-${VERSION?}/ ${VERSION?}-chapril
|
||||||
|
```
|
@ -1,6 +1,6 @@
|
|||||||
# [![PrivateBin](https://cdn.rawgit.com/PrivateBin/assets/master/images/preview/logoSmall.png)](https://privatebin.info/)
|
# [![PrivateBin](https://cdn.rawgit.com/PrivateBin/assets/master/images/preview/logoSmall.png)](https://privatebin.info/)
|
||||||
|
|
||||||
*Current version: 1.6.0*
|
*Current version: 1.6.2*
|
||||||
|
|
||||||
**PrivateBin** is a minimalist, open source online
|
**PrivateBin** is a minimalist, open source online
|
||||||
[pastebin](https://en.wikipedia.org/wiki/Pastebin)
|
[pastebin](https://en.wikipedia.org/wiki/Pastebin)
|
||||||
@ -55,7 +55,7 @@ without losing any data.
|
|||||||
paste (first) might still be disclosed via access logs.
|
paste (first) might still be disclosed via access logs.
|
||||||
|
|
||||||
- In case of a server breach your data is secure as it is only stored encrypted
|
- In case of a server breach your data is secure as it is only stored encrypted
|
||||||
on the server. However, the server could be absused or the server admin could
|
on the server. However, the server could be abused or the server admin could
|
||||||
be legally forced into sending malicious code to their users, which logs
|
be legally forced into sending malicious code to their users, which logs
|
||||||
the decryption key and sends it to a server when a user accesses a paste.
|
the decryption key and sends it to a server when a user accesses a paste.
|
||||||
Therefore, do not access any PrivateBin instance if you think it has been
|
Therefore, do not access any PrivateBin instance if you think it has been
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
| Version | Supported |
|
| Version | Supported |
|
||||||
| ------- | ------------------ |
|
| ------- | ------------------ |
|
||||||
| 1.6.0 | :heavy_check_mark: |
|
| 1.6.2 | :heavy_check_mark: |
|
||||||
| < 1.6.0 | :x: |
|
| < 1.6.2 | :x: |
|
||||||
|
|
||||||
## Reporting a Vulnerability
|
## Reporting a Vulnerability
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace PrivateBin;
|
namespace PrivateBin;
|
||||||
|
@ -23,7 +23,7 @@ new ConfigurationTestGenerator(array(
|
|||||||
'tests' => array(
|
'tests' => array(
|
||||||
array(
|
array(
|
||||||
'conditions' => array('steps' => $vd),
|
'conditions' => array('steps' => $vd),
|
||||||
'type' => 'RegExp',
|
'type' => 'MatchesRegularExpression',
|
||||||
'args' => array(
|
'args' => array(
|
||||||
'#<div[^>]*id="opendiscussionoption"[^>]*>#',
|
'#<div[^>]*id="opendiscussionoption"[^>]*>#',
|
||||||
'$content',
|
'$content',
|
||||||
@ -53,7 +53,7 @@ new ConfigurationTestGenerator(array(
|
|||||||
'setting' => false,
|
'setting' => false,
|
||||||
'tests' => array(
|
'tests' => array(
|
||||||
array(
|
array(
|
||||||
'type' => 'NotRegExp',
|
'type' => 'DoesNotMatchRegularExpression',
|
||||||
'args' => array(
|
'args' => array(
|
||||||
'#<div[^>]*id="opendiscussionoption"[^>]*>#',
|
'#<div[^>]*id="opendiscussionoption"[^>]*>#',
|
||||||
'$content',
|
'$content',
|
||||||
@ -70,7 +70,7 @@ new ConfigurationTestGenerator(array(
|
|||||||
'tests' => array(
|
'tests' => array(
|
||||||
array(
|
array(
|
||||||
'conditions' => array('main/discussion' => true),
|
'conditions' => array('main/discussion' => true),
|
||||||
'type' => 'RegExp',
|
'type' => 'MatchesRegularExpression',
|
||||||
'args' => array(
|
'args' => array(
|
||||||
'#<input[^>]+id="opendiscussion"[^>]*checked="checked"[^>]*>#',
|
'#<input[^>]+id="opendiscussion"[^>]*checked="checked"[^>]*>#',
|
||||||
'$content',
|
'$content',
|
||||||
@ -84,7 +84,7 @@ new ConfigurationTestGenerator(array(
|
|||||||
'tests' => array(
|
'tests' => array(
|
||||||
array(
|
array(
|
||||||
'conditions' => array('main/discussion' => true),
|
'conditions' => array('main/discussion' => true),
|
||||||
'type' => 'NotRegExp',
|
'type' => 'DoesNotMatchRegularExpression',
|
||||||
'args' => array(
|
'args' => array(
|
||||||
'#<input[^>]+id="opendiscussion"[^>]*checked="checked"[^>]*>#',
|
'#<input[^>]+id="opendiscussion"[^>]*checked="checked"[^>]*>#',
|
||||||
'$content',
|
'$content',
|
||||||
@ -100,7 +100,7 @@ new ConfigurationTestGenerator(array(
|
|||||||
'setting' => true,
|
'setting' => true,
|
||||||
'tests' => array(
|
'tests' => array(
|
||||||
array(
|
array(
|
||||||
'type' => 'RegExp',
|
'type' => 'MatchesRegularExpression',
|
||||||
'args' => array(
|
'args' => array(
|
||||||
'#<input[^>]+id="burnafterreading"[^>]*checked="checked"[^>]*>#',
|
'#<input[^>]+id="burnafterreading"[^>]*checked="checked"[^>]*>#',
|
||||||
'$content',
|
'$content',
|
||||||
@ -113,7 +113,7 @@ new ConfigurationTestGenerator(array(
|
|||||||
'setting' => false,
|
'setting' => false,
|
||||||
'tests' => array(
|
'tests' => array(
|
||||||
array(
|
array(
|
||||||
'type' => 'NotRegExp',
|
'type' => 'DoesNotMatchRegularExpression',
|
||||||
'args' => array(
|
'args' => array(
|
||||||
'#<input[^>]+id="burnafterreading"[^>]*checked="checked"[^>]*>#',
|
'#<input[^>]+id="burnafterreading"[^>]*checked="checked"[^>]*>#',
|
||||||
'$content',
|
'$content',
|
||||||
@ -129,7 +129,7 @@ new ConfigurationTestGenerator(array(
|
|||||||
'setting' => true,
|
'setting' => true,
|
||||||
'tests' => array(
|
'tests' => array(
|
||||||
array(
|
array(
|
||||||
'type' => 'RegExp',
|
'type' => 'MatchesRegularExpression',
|
||||||
'args' => array(
|
'args' => array(
|
||||||
'#<div[^>]*id="password"[^>]*>#',
|
'#<div[^>]*id="password"[^>]*>#',
|
||||||
'$content',
|
'$content',
|
||||||
@ -143,7 +143,7 @@ new ConfigurationTestGenerator(array(
|
|||||||
'tests' => array(
|
'tests' => array(
|
||||||
array(
|
array(
|
||||||
'conditions' => array('main/discussion' => true),
|
'conditions' => array('main/discussion' => true),
|
||||||
'type' => 'NotRegExp',
|
'type' => 'DoesNotMatchRegularExpression',
|
||||||
'args' => array(
|
'args' => array(
|
||||||
'#<div[^>]*id="password"[^>]*>#',
|
'#<div[^>]*id="password"[^>]*>#',
|
||||||
'$content',
|
'$content',
|
||||||
@ -159,14 +159,14 @@ new ConfigurationTestGenerator(array(
|
|||||||
'setting' => 'page',
|
'setting' => 'page',
|
||||||
'tests' => array(
|
'tests' => array(
|
||||||
array(
|
array(
|
||||||
'type' => 'RegExp',
|
'type' => 'MatchesRegularExpression',
|
||||||
'args' => array(
|
'args' => array(
|
||||||
'#<link[^>]+type="text/css"[^>]+rel="stylesheet"[^>]+href="css/privatebin\.css\\?\d[\d\.]+\d+"[^>]*/>#',
|
'#<link[^>]+type="text/css"[^>]+rel="stylesheet"[^>]+href="css/privatebin\.css\\?\d[\d\.]+\d+"[^>]*/>#',
|
||||||
'$content',
|
'$content',
|
||||||
'outputs "page" stylesheet correctly',
|
'outputs "page" stylesheet correctly',
|
||||||
),
|
),
|
||||||
), array(
|
), array(
|
||||||
'type' => 'NotRegExp',
|
'type' => 'DoesNotMatchRegularExpression',
|
||||||
'args' => array(
|
'args' => array(
|
||||||
'#<link[^>]+type="text/css"[^>]+rel="stylesheet"[^>]+href="css/bootstrap/bootstrap-\d[\d\.]+\d\.css"[^>]*/>#',
|
'#<link[^>]+type="text/css"[^>]+rel="stylesheet"[^>]+href="css/bootstrap/bootstrap-\d[\d\.]+\d\.css"[^>]*/>#',
|
||||||
'$content',
|
'$content',
|
||||||
@ -179,14 +179,14 @@ new ConfigurationTestGenerator(array(
|
|||||||
'setting' => 'bootstrap',
|
'setting' => 'bootstrap',
|
||||||
'tests' => array(
|
'tests' => array(
|
||||||
array(
|
array(
|
||||||
'type' => 'NotRegExp',
|
'type' => 'DoesNotMatchRegularExpression',
|
||||||
'args' => array(
|
'args' => array(
|
||||||
'#<link[^>]+type="text/css"[^>]+rel="stylesheet"[^>]+href="css/privatebin\.css\\?\d[\d\.]+\d+"[^>]*/>#',
|
'#<link[^>]+type="text/css"[^>]+rel="stylesheet"[^>]+href="css/privatebin\.css\\?\d[\d\.]+\d+"[^>]*/>#',
|
||||||
'$content',
|
'$content',
|
||||||
'removes "page" stylesheet correctly',
|
'removes "page" stylesheet correctly',
|
||||||
),
|
),
|
||||||
), array(
|
), array(
|
||||||
'type' => 'RegExp',
|
'type' => 'MatchesRegularExpression',
|
||||||
'args' => array(
|
'args' => array(
|
||||||
'#<link[^>]+type="text/css"[^>]+rel="stylesheet"[^>]+href="css/bootstrap/bootstrap-\d[\d\.]+\d\.css"[^>]*/>#',
|
'#<link[^>]+type="text/css"[^>]+rel="stylesheet"[^>]+href="css/bootstrap/bootstrap-\d[\d\.]+\d\.css"[^>]*/>#',
|
||||||
'$content',
|
'$content',
|
||||||
@ -361,7 +361,7 @@ class ConfigurationTestGenerator
|
|||||||
}
|
}
|
||||||
// skip if not all test conditions are met
|
// skip if not all test conditions are met
|
||||||
if (array_key_exists('conditions', $test)) {
|
if (array_key_exists('conditions', $test)) {
|
||||||
while (list($path, $setting) = each($test['conditions'])) {
|
foreach ($test['conditions'] as $path => $setting) {
|
||||||
if ($path == 'steps' && !in_array($step, $setting)) {
|
if ($path == 'steps' && !in_array($step, $setting)) {
|
||||||
continue 2;
|
continue 2;
|
||||||
} elseif ($path != 'steps') {
|
} elseif ($path != 'steps') {
|
||||||
@ -591,8 +591,9 @@ EOT;
|
|||||||
return $this->_configurations;
|
return $this->_configurations;
|
||||||
}
|
}
|
||||||
echo "generateConfigurations: iteration $this->_iterationCount", PHP_EOL;
|
echo "generateConfigurations: iteration $this->_iterationCount", PHP_EOL;
|
||||||
$continue = list($path, $settings) = each($this->_options);
|
$path = key($this->_options);
|
||||||
if ($continue === false) {
|
$settings = current($this->_options);
|
||||||
|
if (next($this->_options) === false) {
|
||||||
return $this->_configurations;
|
return $this->_configurations;
|
||||||
}
|
}
|
||||||
list($section, $option) = explode('/', $path);
|
list($section, $option) = explode('/', $path);
|
||||||
|
40
composer.lock
generated
40
composer.lock
generated
@ -483,16 +483,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/php-code-coverage",
|
"name": "phpunit/php-code-coverage",
|
||||||
"version": "9.2.27",
|
"version": "9.2.29",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
|
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
|
||||||
"reference": "b0a88255cb70d52653d80c890bd7f38740ea50d1"
|
"reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/b0a88255cb70d52653d80c890bd7f38740ea50d1",
|
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/6a3a87ac2bbe33b25042753df8195ba4aa534c76",
|
||||||
"reference": "b0a88255cb70d52653d80c890bd7f38740ea50d1",
|
"reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -549,7 +549,7 @@
|
|||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
|
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
|
||||||
"security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
|
"security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
|
||||||
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.27"
|
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.29"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -557,7 +557,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2023-07-26T13:44:30+00:00"
|
"time": "2023-09-19T04:57:46+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/php-file-iterator",
|
"name": "phpunit/php-file-iterator",
|
||||||
@ -802,16 +802,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/phpunit",
|
"name": "phpunit/phpunit",
|
||||||
"version": "9.6.11",
|
"version": "9.6.15",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||||
"reference": "810500e92855eba8a7a5319ae913be2da6f957b0"
|
"reference": "05017b80304e0eb3f31d90194a563fd53a6021f1"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/810500e92855eba8a7a5319ae913be2da6f957b0",
|
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/05017b80304e0eb3f31d90194a563fd53a6021f1",
|
||||||
"reference": "810500e92855eba8a7a5319ae913be2da6f957b0",
|
"reference": "05017b80304e0eb3f31d90194a563fd53a6021f1",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -826,7 +826,7 @@
|
|||||||
"phar-io/manifest": "^2.0.3",
|
"phar-io/manifest": "^2.0.3",
|
||||||
"phar-io/version": "^3.0.2",
|
"phar-io/version": "^3.0.2",
|
||||||
"php": ">=7.3",
|
"php": ">=7.3",
|
||||||
"phpunit/php-code-coverage": "^9.2.13",
|
"phpunit/php-code-coverage": "^9.2.28",
|
||||||
"phpunit/php-file-iterator": "^3.0.5",
|
"phpunit/php-file-iterator": "^3.0.5",
|
||||||
"phpunit/php-invoker": "^3.1.1",
|
"phpunit/php-invoker": "^3.1.1",
|
||||||
"phpunit/php-text-template": "^2.0.3",
|
"phpunit/php-text-template": "^2.0.3",
|
||||||
@ -885,7 +885,7 @@
|
|||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
|
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
|
||||||
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
|
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
|
||||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.11"
|
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.15"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -901,7 +901,7 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2023-08-19T07:10:56+00:00"
|
"time": "2023-12-01T16:55:19+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/cli-parser",
|
"name": "sebastian/cli-parser",
|
||||||
@ -1869,16 +1869,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "theseer/tokenizer",
|
"name": "theseer/tokenizer",
|
||||||
"version": "1.2.1",
|
"version": "1.2.2",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/theseer/tokenizer.git",
|
"url": "https://github.com/theseer/tokenizer.git",
|
||||||
"reference": "34a41e998c2183e22995f158c581e7b5e755ab9e"
|
"reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e",
|
"url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
|
||||||
"reference": "34a41e998c2183e22995f158c581e7b5e755ab9e",
|
"reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -1907,7 +1907,7 @@
|
|||||||
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
|
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/theseer/tokenizer/issues",
|
"issues": "https://github.com/theseer/tokenizer/issues",
|
||||||
"source": "https://github.com/theseer/tokenizer/tree/1.2.1"
|
"source": "https://github.com/theseer/tokenizer/tree/1.2.2"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -1915,7 +1915,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2021-07-28T10:34:58+00:00"
|
"time": "2023-11-20T00:12:19+00:00"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
@ -1930,5 +1930,5 @@
|
|||||||
"platform-overrides": {
|
"platform-overrides": {
|
||||||
"php": "7.3"
|
"php": "7.3"
|
||||||
},
|
},
|
||||||
"plugin-api-version": "2.3.0"
|
"plugin-api-version": "2.6.0"
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
body {
|
body {
|
||||||
@ -113,6 +113,7 @@ body.loading {
|
|||||||
#qrcodemodalClose {
|
#qrcodemodalClose {
|
||||||
float: right;
|
float: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
#qrcode-display {
|
#qrcode-display {
|
||||||
width: 200px;
|
width: 200px;
|
||||||
height: 200px;
|
height: 200px;
|
||||||
@ -205,3 +206,23 @@ li.L0, li.L1, li.L2, li.L3, li.L5, li.L6, li.L7, li.L8 {
|
|||||||
.modal .modal-content button {
|
.modal .modal-content button {
|
||||||
margin: 0.5em 0;
|
margin: 0.5em 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* right-to-left overrides */
|
||||||
|
html[dir="rtl"] .checkbox label {
|
||||||
|
padding-left: inherit;
|
||||||
|
padding-right: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[dir="rtl"] .checkbox input[type="checkbox"] {
|
||||||
|
margin-left: inherit;
|
||||||
|
margin-right: -20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[dir="rtl"] #language {
|
||||||
|
margin-left: inherit;
|
||||||
|
margin-right: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[dir="rtl"] #deletelink, html[dir="rtl"] #qrcodemodalClose {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* When there is no script at all other */
|
/* When there is no script at all other */
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* CSS Reset from YUI 3.4.1 (build 4118) - Copyright 2011 Yahoo! Inc. All rights reserved.
|
/* CSS Reset from YUI 3.4.1 (build 4118) - Copyright 2011 Yahoo! Inc. All rights reserved.
|
||||||
@ -261,6 +261,7 @@ button img {
|
|||||||
|
|
||||||
#newbutton {
|
#newbutton {
|
||||||
float: right;
|
float: right;
|
||||||
|
margin-left: 0;
|
||||||
margin-right: 0;
|
margin-right: 0;
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
display: inline;
|
display: inline;
|
||||||
@ -488,3 +489,17 @@ img.vizhash {
|
|||||||
#cleartext h3 {
|
#cleartext h3 {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* right-to-left overrides */
|
||||||
|
html[dir="rtl"] #aboutbox, html[dir="rtl"] #deletelink, html[dir="rtl"] #newbutton {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[dir="rtl"] button, html[dir="rtl"] .button, html[dir="rtl"] button img {
|
||||||
|
margin-left: 5px;
|
||||||
|
margin-right: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[dir="rtl"] button img {
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
@ -21,7 +21,7 @@ $ sudo pear install phpdoc/phpDocumentor
|
|||||||
To generate the documentation, change into the main directory and run phpdoc:
|
To generate the documentation, change into the main directory and run phpdoc:
|
||||||
```console
|
```console
|
||||||
$ cd PrivateBin
|
$ cd PrivateBin
|
||||||
$ phpdoc --visibility public,protected,private -t doc/phpdoc -d lib/
|
$ phpdoc --visibility=public,protected,private --target=doc/phpdoc --directory=lib/
|
||||||
```
|
```
|
||||||
|
|
||||||
**Note:** When used with PHP 7, the prerelease of phpDocumentator 2.9 needs to be
|
**Note:** When used with PHP 7, the prerelease of phpDocumentator 2.9 needs to be
|
||||||
|
@ -15,9 +15,9 @@ for more information.
|
|||||||
|
|
||||||
**NOTE:** There are Ansible roles available for installing and configuring PrivateBin on your server. You can choose from the following options:
|
**NOTE:** There are Ansible roles available for installing and configuring PrivateBin on your server. You can choose from the following options:
|
||||||
|
|
||||||
- [Podman Rootless - PrivateBin by @voidquark](https://galaxy.ansible.com/voidquark/privatebin) ([Github source code](https://github.com/voidquark/privatebin)): Simplifies the deployment and management of a secure PrivateBin service using a rootless Podman container. Key features include root-less deployment, ensuring security within a user namespace, idempotent deployment for consistent state, out-of-the-box setup for Red Hat systems, and the flexibility to customize PrivateBin configurations. It has been tested on EL9.
|
- [Podman Rootless - PrivateBin by @voidquark](https://galaxy.ansible.com/ui/standalone/roles/voidquark/privatebin/) ([Github source code](https://github.com/voidquark/privatebin)): Simplifies the deployment and management of a secure PrivateBin service using a rootless Podman container. Key features include root-less deployment, ensuring security within a user namespace, idempotent deployment for consistent state, out-of-the-box setup for Red Hat systems, and the flexibility to customize PrivateBin configurations. It has been tested on EL9.
|
||||||
|
|
||||||
- [Config Configuration - PrivateBin by @e1mo](https://galaxy.ansible.com/e1mo/privatebin) ([Github source code](https://git.sr.ht/~e1mo/ansible-role-privatebin)): Deploy PrivateBin configuration to disk with a customized configuration.
|
- [Config Configuration - PrivateBin by @e1mo](https://galaxy.ansible.com/ui/standalone/roles/e1mo/privatebin/) ([Github source code](https://git.sr.ht/~e1mo/ansible-role-privatebin)): Deploy PrivateBin configuration to disk with a customized configuration.
|
||||||
|
|
||||||
### Minimal Requirements
|
### Minimal Requirements
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ accessible to your webserver and PHP process (see also
|
|||||||
In situations where you want to keep the PrivateBin static files separate from the
|
In situations where you want to keep the PrivateBin static files separate from the
|
||||||
rest of your data, or you want to reuse the installation files on multiple vhosts,
|
rest of your data, or you want to reuse the installation files on multiple vhosts,
|
||||||
you may only want to change the `conf.php`. In this case, you can set the
|
you may only want to change the `conf.php`. In this case, you can set the
|
||||||
`CONFIG_PATH` environment variable to the absolute path to the `conf.php` file.
|
`CONFIG_PATH` environment variable to the absolute path to the directory containing the `conf.php` file.
|
||||||
This can be done in your web server's virtual host config, the PHP config, or in
|
This can be done in your web server's virtual host config, the PHP config, or in
|
||||||
the index.php, if you choose to customize it.
|
the index.php, if you choose to customize it.
|
||||||
|
|
||||||
@ -68,13 +68,13 @@ wherever it may be.
|
|||||||
|
|
||||||
> #### CONFIG_PATH example
|
> #### CONFIG_PATH example
|
||||||
> Setting the value in an Apache Vhost:
|
> Setting the value in an Apache Vhost:
|
||||||
> SetEnv CONFIG_PATH /var/lib/privatebin/conf.php
|
> SetEnv CONFIG_PATH /var/lib/privatebin/
|
||||||
>
|
>
|
||||||
> In a php-fpm pool config:
|
> In a php-fpm pool config:
|
||||||
> env[CONFIG_PATH] = /var/lib/privatebin/conf.php
|
> env[CONFIG_PATH] = /var/lib/privatebin/
|
||||||
>
|
>
|
||||||
> In the index.php, near the top:
|
> In the index.php, near the top:
|
||||||
> putenv('CONFIG_PATH=/var/lib/privatebin/conf.php');
|
> putenv('CONFIG_PATH=/var/lib/privatebin/');
|
||||||
|
|
||||||
### Transport security
|
### Transport security
|
||||||
|
|
||||||
@ -201,7 +201,7 @@ CREATE INDEX parent ON prefix_comment(pasteid);
|
|||||||
CREATE TABLE prefix_config (
|
CREATE TABLE prefix_config (
|
||||||
id CHAR(16) NOT NULL, value TEXT, PRIMARY KEY (id)
|
id CHAR(16) NOT NULL, value TEXT, PRIMARY KEY (id)
|
||||||
);
|
);
|
||||||
INSERT INTO prefix_config VALUES('VERSION', '1.6.0');
|
INSERT INTO prefix_config VALUES('VERSION', '1.6.2');
|
||||||
```
|
```
|
||||||
|
|
||||||
In **PostgreSQL**, the `data`, `attachment`, `nickname` and `vizhash` columns
|
In **PostgreSQL**, the `data`, `attachment`, `nickname` and `vizhash` columns
|
||||||
|
@ -31,7 +31,7 @@ Know how for participating in PrivateBins development.
|
|||||||
How to generate the source code API documentation, as found on the project
|
How to generate the source code API documentation, as found on the project
|
||||||
website for [PHP](https://privatebin.info/codedoc/) and [JS](https://privatebin.info/jsdoc/)
|
website for [PHP](https://privatebin.info/codedoc/) and [JS](https://privatebin.info/jsdoc/)
|
||||||
|
|
||||||
### [Running Unit Tests](https://github.com/PrivateBin/PrivateBin/blob/master/tst/README.md#running-all-unit-tests)
|
### [Running Unit Tests](https://github.com/PrivateBin/PrivateBin/blob/master/doc/Running Unit Tests.md#running-all-unit-tests)
|
||||||
|
|
||||||
How to run the PHP & JS unit tests, including a brief introduction to property
|
How to run the PHP & JS unit tests, including a brief introduction to property
|
||||||
based unit testing.
|
based unit testing.
|
@ -28,11 +28,6 @@ docker run --rm --read-only -v ~/PrivateBin:/srv:ro privatebin/unit-testing phpu
|
|||||||
docker run --rm --read-only -v ~/PrivateBin:/srv:ro privatebin/unit-testing mocha
|
docker run --rm --read-only -v ~/PrivateBin:/srv:ro privatebin/unit-testing mocha
|
||||||
```
|
```
|
||||||
|
|
||||||
We also provide a Janitor image that includes the Cloud9 and Theia WebIDEs as
|
|
||||||
well as the integrated unit testing utilities. See our [docker wiki
|
|
||||||
page](https://github.com/PrivateBin/PrivateBin/wiki/Docker#janitor-image-with-cloud9-and-theia-webide-janitortechnologyprivatebin)
|
|
||||||
for further details on this.
|
|
||||||
|
|
||||||
## Running PHP Unit Tests
|
## Running PHP Unit Tests
|
||||||
|
|
||||||
In order to run these tests, you will need to install the following packages
|
In order to run these tests, you will need to install the following packages
|
||||||
@ -61,18 +56,15 @@ configurations defined in its constructor, it generates the unit test file
|
|||||||
of these configurations and tests for (most of the) valid combinations. Some of
|
of these configurations and tests for (most of the) valid combinations. Some of
|
||||||
combinations can't be tested with this method, i.e. a valid option combined with
|
combinations can't be tested with this method, i.e. a valid option combined with
|
||||||
an invalid one. Other very specific test cases (i.e. to trigger multiple errors)
|
an invalid one. Other very specific test cases (i.e. to trigger multiple errors)
|
||||||
are covered in `tst/PrivateBinTest.php`. Here is how to generate the
|
are covered in `tst/ControllerTest.php`. Here is how to generate the
|
||||||
configuration test and run it:
|
configuration test and run it:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
$ cd PrivateBin/tst
|
$ cd PrivateBin/tst
|
||||||
$ php ConfigurationTestGenerator.php
|
$ ../bin/configuration-test-generator
|
||||||
$ phpunit ConfigurationCombinationsTest.php
|
$ phpunit ConfigurationCombinationsTest.php
|
||||||
```
|
```
|
||||||
|
|
||||||
Note that it can take an hour or longer to run the several thousand tests.
|
|
||||||
|
|
||||||
|
|
||||||
## Running JavaScript Unit Tests
|
## Running JavaScript Unit Tests
|
||||||
|
|
||||||
In order to run these tests, you will need to install the following packages
|
In order to run these tests, you will need to install the following packages
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s عبارة عن أداة لصق على الإنترنت بسيطة ومفتوحة المصدر حيث لا يمتلك الخادم أي معرفة بالبيانات الملصقة. يتم تشفير / فك تشفير البيانات %sفي المتصفح%s باستخدام 256 بت AES.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s عبارة عن أداة لصق على الإنترنت بسيطة ومفتوحة المصدر حيث لا يمتلك الخادم أي معرفة بالبيانات الملصقة. يتم تشفير / فك تشفير البيانات %sفي المتصفح%s باستخدام 256 بت AES.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "مزيد من المعلومات على <a href=\"https://privatebin.info/\">صفحة المشروع</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "مزيد من المعلومات على <a href=\"https://privatebin.info/\">صفحة المشروع</a>.",
|
||||||
"Because ignorance is bliss": "لأن الجهل نعمة",
|
"Because ignorance is bliss": "لأن الجهل نعمة",
|
||||||
"en": "ar",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "اللصق غير موجود أو انتهت صلاحيته أو تم حذفه.",
|
"Paste does not exist, has expired or has been deleted.": "اللصق غير موجود أو انتهت صلاحيته أو تم حذفه.",
|
||||||
"%s requires php %s or above to work. Sorry.": "%s يتطلب php %s أو أعلى للعمل. آسف.",
|
"%s requires php %s or above to work. Sorry.": "%s يتطلب php %s أو أعلى للعمل. آسف.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s يتطلب وجود قسم [%s] تضبيط في ملف تضبيط.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s يتطلب وجود قسم [%s] تضبيط في ملف تضبيط.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s е изчистен и изцяло достъпен като отворен код, онлайн \"paste\" услуга, където сървъра не знае подадената информация. Тя се шифрова/дешифрова %sвъв браузъра%s използвайки 256 битов AES алгоритъм.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s е изчистен и изцяло достъпен като отворен код, онлайн \"paste\" услуга, където сървъра не знае подадената информация. Тя се шифрова/дешифрова %sвъв браузъра%s използвайки 256 битов AES алгоритъм.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Повече информация може да намерите на <a href=\"https://privatebin.info/\">страницата на проекта (Английски)</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Повече информация може да намерите на <a href=\"https://privatebin.info/\">страницата на проекта (Английски)</a>.",
|
||||||
"Because ignorance is bliss": "Невежеството е блаженство",
|
"Because ignorance is bliss": "Невежеството е блаженство",
|
||||||
"en": "bg",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "Информацията не съществува, срокът и е изтекъл или е била изтрита.",
|
"Paste does not exist, has expired or has been deleted.": "Информацията не съществува, срокът и е изтекъл или е била изтрита.",
|
||||||
"%s requires php %s or above to work. Sorry.": "%s има нужда от PHP %s или по-нова, за да работи. Съжалявам.",
|
"%s requires php %s or above to work. Sorry.": "%s има нужда от PHP %s или по-нова, за да работи. Съжалявам.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s задължава отдела от настройките [%s] да съществува във файла със настройките.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s задължава отдела от настройките [%s] да съществува във файла със настройките.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s és un pastebin en línia de codi obert i minimalista on el servidor no té coneixement de les dades enganxades. Les dades estan encriptades/desxifrades %sen el navegador%s utilitzant AES de 256 bits.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s és un pastebin en línia de codi obert i minimalista on el servidor no té coneixement de les dades enganxades. Les dades estan encriptades/desxifrades %sen el navegador%s utilitzant AES de 256 bits.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Més informació a la <a href=\"https://privatebin.info/\">pàgina del projecte</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Més informació a la <a href=\"https://privatebin.info/\">pàgina del projecte</a>.",
|
||||||
"Because ignorance is bliss": "Perquè la ignorància és felicitat",
|
"Because ignorance is bliss": "Perquè la ignorància és felicitat",
|
||||||
"en": "ca",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "El paste no existeix, ha caducat o s'ha eliminat.",
|
"Paste does not exist, has expired or has been deleted.": "El paste no existeix, ha caducat o s'ha eliminat.",
|
||||||
"%s requires php %s or above to work. Sorry.": "%s requereix php %s o superior per funcionar. Ho sento.",
|
"%s requires php %s or above to work. Sorry.": "%s requereix php %s o superior per funcionar. Ho sento.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s requereix que la secció de configuració [%s] sigui present al fitxer de configuració.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s requereix que la secció de configuració [%s] sigui present al fitxer de configuració.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s hè un serviziu in linea di tipu « pastebin » (ghjestiunariu d’appiccicu di pezzi di testu è di codice di fonte) minimalistu è à fonte aperta induve u servitore ùn hà micca cunnuscenza di i dati mandati. I dati sò cifrati è dicifrati %sin u navigatore%s cù una cifratura AES di 256 bit.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s hè un serviziu in linea di tipu « pastebin » (ghjestiunariu d’appiccicu di pezzi di testu è di codice di fonte) minimalistu è à fonte aperta induve u servitore ùn hà micca cunnuscenza di i dati mandati. I dati sò cifrati è dicifrati %sin u navigatore%s cù una cifratura AES di 256 bit.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Più d’infurmazione annant’à a <a href=\"https://privatebin.info/\">pagina di u prughjettu</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Più d’infurmazione annant’à a <a href=\"https://privatebin.info/\">pagina di u prughjettu</a>.",
|
||||||
"Because ignorance is bliss": "Perchè l’ignurenza hè una campa",
|
"Because ignorance is bliss": "Perchè l’ignurenza hè una campa",
|
||||||
"en": "co",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "L’appiccicu ùn esiste micca, hè scadutu o hè statu squassatu.",
|
"Paste does not exist, has expired or has been deleted.": "L’appiccicu ùn esiste micca, hè scadutu o hè statu squassatu.",
|
||||||
"%s requires php %s or above to work. Sorry.": "Per disgrazzia, %s richiede php %s o più recente per funziunà.",
|
"%s requires php %s or above to work. Sorry.": "Per disgrazzia, %s richiede php %s o più recente per funziunà.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s richiede a presenza di a sezzione di cunfigurazione [%s] in a schedariu di cunfigurazione.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s richiede a presenza di a sezzione di cunfigurazione [%s] in a schedariu di cunfigurazione.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s je minimalistický open source 'pastebin' server, který neanalyzuje vložená data. Data jsou šifrována %sv prohlížeči%s pomocí 256 bitů AES.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s je minimalistický open source 'pastebin' server, který neanalyzuje vložená data. Data jsou šifrována %sv prohlížeči%s pomocí 256 bitů AES.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Více informací na <a href=\"https://privatebin.info/\">stránce projetu</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Více informací na <a href=\"https://privatebin.info/\">stránce projetu</a>.",
|
||||||
"Because ignorance is bliss": "Protože nevědomost je sladká",
|
"Because ignorance is bliss": "Protože nevědomost je sladká",
|
||||||
"en": "cs",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "Vložený text neexistuje, expiroval nebo byl odstraněn.",
|
"Paste does not exist, has expired or has been deleted.": "Vložený text neexistuje, expiroval nebo byl odstraněn.",
|
||||||
"%s requires php %s or above to work. Sorry.": "%s vyžaduje php %s nebo vyšší. Lituji.",
|
"%s requires php %s or above to work. Sorry.": "%s vyžaduje php %s nebo vyšší. Lituji.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s vyžaduje, aby byla v konfiguračním souboru přítomna sekce [%s].",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s vyžaduje, aby byla v konfiguračním souboru přítomna sekce [%s].",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s ist ein minimalistischer, quelloffener \"Pastebin\"-artiger Dienst, bei dem der Server keinerlei Kenntnis der Inhalte hat. Die Daten werden %sim Browser%s mit 256 Bit AES ver- und entschlüsselt.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s ist ein minimalistischer, quelloffener \"Pastebin\"-artiger Dienst, bei dem der Server keinerlei Kenntnis der Inhalte hat. Die Daten werden %sim Browser%s mit 256 Bit AES ver- und entschlüsselt.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Weitere Informationen sind auf der <a href=\"https://privatebin.info/\">Projektseite</a> zu finden.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Weitere Informationen sind auf der <a href=\"https://privatebin.info/\">Projektseite</a> zu finden.",
|
||||||
"Because ignorance is bliss": "Unwissenheit ist ein Segen",
|
"Because ignorance is bliss": "Unwissenheit ist ein Segen",
|
||||||
"en": "de",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "Diesen Text gibt es nicht, er ist abgelaufen oder wurde gelöscht.",
|
"Paste does not exist, has expired or has been deleted.": "Diesen Text gibt es nicht, er ist abgelaufen oder wurde gelöscht.",
|
||||||
"%s requires php %s or above to work. Sorry.": "%s benötigt PHP %s oder höher, um zu funktionieren. Sorry.",
|
"%s requires php %s or above to work. Sorry.": "%s benötigt PHP %s oder höher, um zu funktionieren. Sorry.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s benötigt den Konfigurationsabschnitt [%s] in der Konfigurationsdatei um zu funktionieren.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s benötigt den Konfigurationsabschnitt [%s] in der Konfigurationsdatei um zu funktionieren.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s είναι ένα λιτό, ανοικτού λογισμικού διαδικτυακής υπηρεσίας επικόλλησης όπου ο διακομιστής έχει πλήρη άγνια του περιεχομένου που επικολλήθηκαν. Τα Δεδομένα κρυπτογραφούνται και αποκρυπτογραφούνται %sστον φιλομετρητή (browser)%s χρησιμοποιόντας 256 bits AES.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s είναι ένα λιτό, ανοικτού λογισμικού διαδικτυακής υπηρεσίας επικόλλησης όπου ο διακομιστής έχει πλήρη άγνια του περιεχομένου που επικολλήθηκαν. Τα Δεδομένα κρυπτογραφούνται και αποκρυπτογραφούνται %sστον φιλομετρητή (browser)%s χρησιμοποιόντας 256 bits AES.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Περισσότερες πληροφορίες στον <a href=\"https://privatebin.info/\">ιστότοπο του εργαλείου</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Περισσότερες πληροφορίες στον <a href=\"https://privatebin.info/\">ιστότοπο του εργαλείου</a>.",
|
||||||
"Because ignorance is bliss": "Επειδή η άγνοια είναι ευτυχία",
|
"Because ignorance is bliss": "Επειδή η άγνοια είναι ευτυχία",
|
||||||
"en": "el",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "Η επικόλληση δεν υπάρχει, έληξε ή διαγράφηκε",
|
"Paste does not exist, has expired or has been deleted.": "Η επικόλληση δεν υπάρχει, έληξε ή διαγράφηκε",
|
||||||
"%s requires php %s or above to work. Sorry.": "%s απαιτεί php %s ή νεότερη για να λειτουργήσει. Συγγνώμη.",
|
"%s requires php %s or above to work. Sorry.": "%s απαιτεί php %s ή νεότερη για να λειτουργήσει. Συγγνώμη.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s απαιτεί οι ρυθμίσεις [%s] να υπάρχουν στο αρχείο ρυθμίσεων.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s απαιτεί οι ρυθμίσεις [%s] να υπάρχουν στο αρχείο ρυθμίσεων.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "More information on the <a href=\"https://privatebin.info/\">project page</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "More information on the <a href=\"https://privatebin.info/\">project page</a>.",
|
||||||
"Because ignorance is bliss": "Because ignorance is bliss",
|
"Because ignorance is bliss": "Because ignorance is bliss",
|
||||||
"en": "en",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "Paste does not exist, has expired or has been deleted.",
|
"Paste does not exist, has expired or has been deleted.": "Paste does not exist, has expired or has been deleted.",
|
||||||
"%s requires php %s or above to work. Sorry.": "%s requires php %s or above to work. Sorry.",
|
"%s requires php %s or above to work. Sorry.": "%s requires php %s or above to work. Sorry.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s requires configuration section [%s] to be present in configuration file.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s requires configuration section [%s] to be present in configuration file.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s es un \"pastebin\" en línea minimalista de código abierto, donde el servidor no tiene ningún conocimiento de los datos guardados. Los datos son cifrados/descifrados %sen el navegador%s usando 256 bits AES.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s es un \"pastebin\" en línea minimalista de código abierto, donde el servidor no tiene ningún conocimiento de los datos guardados. Los datos son cifrados/descifrados %sen el navegador%s usando 256 bits AES.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Más información en la <a href=\"https://privatebin.info/\">página del proyecto</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Más información en la <a href=\"https://privatebin.info/\">página del proyecto</a>.",
|
||||||
"Because ignorance is bliss": "Porque la ignorancia es felicidad",
|
"Because ignorance is bliss": "Porque la ignorancia es felicidad",
|
||||||
"en": "es",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "El \"paste\" no existe, ha caducado o ha sido eliminado.",
|
"Paste does not exist, has expired or has been deleted.": "El \"paste\" no existe, ha caducado o ha sido eliminado.",
|
||||||
"%s requires php %s or above to work. Sorry.": "%s requiere php %s o superior para funcionar. Lo siento.",
|
"%s requires php %s or above to work. Sorry.": "%s requiere php %s o superior para funcionar. Lo siento.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s requiere que la sección de configuración [%s] esté presente en el archivo de configuración.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s requiere que la sección de configuración [%s] esté presente en el archivo de configuración.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s on minimalistlik, avatud lähtekoodiga online pastebin, kus serveril pole kleebitud andmete kohta teadmist. Andmed krüpteeritakse/dekrüpteeritakse %sbrauseris%s kasutades 256-bitist AES-i.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s on minimalistlik, avatud lähtekoodiga online pastebin, kus serveril pole kleebitud andmete kohta teadmist. Andmed krüpteeritakse/dekrüpteeritakse %sbrauseris%s kasutades 256-bitist AES-i.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Lisateave <a href=\"https://privatebin.info/\">projekti lehel</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Lisateave <a href=\"https://privatebin.info/\">projekti lehel</a>.",
|
||||||
"Because ignorance is bliss": "Kuna teadmatus on õndsus",
|
"Because ignorance is bliss": "Kuna teadmatus on õndsus",
|
||||||
"en": "et",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "Kleebet ei eksisteeri, on aegunud või on kustutatud.",
|
"Paste does not exist, has expired or has been deleted.": "Kleebet ei eksisteeri, on aegunud või on kustutatud.",
|
||||||
"%s requires php %s or above to work. Sorry.": "%s vajab, et oleks php %s või kõrgem, et töötada. Vabandame.",
|
"%s requires php %s or above to work. Sorry.": "%s vajab, et oleks php %s või kõrgem, et töötada. Vabandame.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s vajab, et [%s] seadistamise jaotis oleks olemas konfiguratsioonifailis.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s vajab, et [%s] seadistamise jaotis oleks olemas konfiguratsioonifailis.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s on minimalistinen, avoimen lähdekoodin online pastebin jossa palvelimella ei ole tietoa syötetystä datasta. Data salataan/puretaan %sselaimessa%s käyttäen 256-bittistä AES:ää.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s on minimalistinen, avoimen lähdekoodin online pastebin jossa palvelimella ei ole tietoa syötetystä datasta. Data salataan/puretaan %sselaimessa%s käyttäen 256-bittistä AES:ää.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Lisää tietoa <a href=\"https://privatebin.info/\">projektisivulla</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Lisää tietoa <a href=\"https://privatebin.info/\">projektisivulla</a>.",
|
||||||
"Because ignorance is bliss": "Koska tieto lisää tuskaa",
|
"Because ignorance is bliss": "Koska tieto lisää tuskaa",
|
||||||
"en": "fi",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "Pastea ei ole olemassa, se on vanhentunut tai se on poistettu.",
|
"Paste does not exist, has expired or has been deleted.": "Pastea ei ole olemassa, se on vanhentunut tai se on poistettu.",
|
||||||
"%s requires php %s or above to work. Sorry.": "%s vaatii php:n %s-version tai uudemman toimiakseen. Anteeksi.",
|
"%s requires php %s or above to work. Sorry.": "%s vaatii php:n %s-version tai uudemman toimiakseen. Anteeksi.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s vaatii konfiguraatio-osion [%s] olevan läsnä konfiguraatiotiedostossa.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s vaatii konfiguraatio-osion [%s] olevan läsnä konfiguraatiotiedostossa.",
|
||||||
@ -209,11 +208,11 @@
|
|||||||
"Convert To UTC": "Muuta UTC:ksi",
|
"Convert To UTC": "Muuta UTC:ksi",
|
||||||
"Close": "Sulje",
|
"Close": "Sulje",
|
||||||
"Encrypted note on %s": "Salattu viesti %sissä",
|
"Encrypted note on %s": "Salattu viesti %sissä",
|
||||||
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Käy tässä linkissä nähdäksesi viestin. URL:n antaminen kenellekään antaa heidänkin päästä katsomeen viestiä. ",
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Vieraile tässä linkissä nähdäksesi viestin. URL:n antaminen kenellekään antaa heidänkin päästä katsomaan viestiä.",
|
||||||
"URL shortener may expose your decrypt key in URL.": "URL-lyhentäjä voi paljastaa purkuavaimesi URL:ssä.",
|
"URL shortener may expose your decrypt key in URL.": "URL-lyhentäjä voi paljastaa purkuavaimesi URL:ssä.",
|
||||||
"Save paste": "Tallenna paste",
|
"Save paste": "Tallenna paste",
|
||||||
"Your IP is not authorized to create pastes.": "IP:llesi ei ole annettu oikeutta luoda pasteja.",
|
"Your IP is not authorized to create pastes.": "IP:llesi ei ole annettu oikeutta luoda pasteja.",
|
||||||
"Trying to shorten a URL that isn't pointing at our instance.": "Trying to shorten a URL that isn't pointing at our instance.",
|
"Trying to shorten a URL that isn't pointing at our instance.": "Yritetään lyhentää URL-osoite, joka ei osoita meidän instanssiiin.",
|
||||||
"Error calling YOURLS. Probably a configuration issue, like wrong or missing \"apiurl\" or \"signature\".": "Error calling YOURLS. Probably a configuration issue, like wrong or missing \"apiurl\" or \"signature\".",
|
"Error calling YOURLS. Probably a configuration issue, like wrong or missing \"apiurl\" or \"signature\".": "Virhe kutsuttaessa YOURLS. Luultavasti asetusongelma kuten väärä tai puuttuuva \"apiurl\" tai \"signature\".",
|
||||||
"Error parsing YOURLS response.": "Error parsing YOURLS response."
|
"Error parsing YOURLS response.": "Virhe jäsennettäessä YOURLS-vastausta."
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
{
|
{
|
||||||
"PrivateBin": "PrivateBin",
|
"PrivateBin": "PrivateBin",
|
||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s est un 'pastebin' (ou gestionnaire d'extraits de texte et de code source) minimaliste et open source, dans lequel le serveur n'a aucune connaissance des données envoyées. Les données sont chiffrées/déchiffrées %sdans le navigateur%s par un chiffrement AES 256 bits.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s est un 'pastebin' (ou gestionnaire d'extraits de texte et de code source) minimaliste et libre, dans lequel le serveur n'a aucune connaissance des données envoyées. Les données sont chiffrées/déchiffrées %sdans le navigateur%s par un chiffrement AES 256 bits.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Plus d'informations sur <a href=\"https://privatebin.info/\">la page du projet</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Plus d'informations sur <a href=\"https://privatebin.info/\">la page du projet</a>.",
|
||||||
"Because ignorance is bliss": "Vivons heureux, vivons cachés",
|
"Because ignorance is bliss": "Vivons heureux, vivons cachés",
|
||||||
"en": "fr",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "Le paste n'existe pas, a expiré, ou a été supprimé.",
|
"Paste does not exist, has expired or has been deleted.": "Le paste n'existe pas, a expiré, ou a été supprimé.",
|
||||||
"%s requires php %s or above to work. Sorry.": "Désolé, %s nécessite php %s ou supérieur pour fonctionner.",
|
"%s requires php %s or above to work. Sorry.": "Désolé, %s nécessite php %s ou supérieur pour fonctionner.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s a besoin de la section de configuration [%s] dans le fichier de configuration pour fonctionner.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s a besoin de la section de configuration [%s] dans le fichier de configuration pour fonctionner.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "More information on the <a href=\"https://privatebin.info/\">project page</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "More information on the <a href=\"https://privatebin.info/\">project page</a>.",
|
||||||
"Because ignorance is bliss": "כיוון שבורות היא ברכה",
|
"Because ignorance is bliss": "כיוון שבורות היא ברכה",
|
||||||
"en": "he",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "ההדבקה לא קיימת, פגה או נמחקה.",
|
"Paste does not exist, has expired or has been deleted.": "ההדבקה לא קיימת, פגה או נמחקה.",
|
||||||
"%s requires php %s or above to work. Sorry.": "%s דורש PHP %s כדי לפעול.",
|
"%s requires php %s or above to work. Sorry.": "%s דורש PHP %s כדי לפעול.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s דורש שסעיף ההגדרות [%s] יהיה קיים בקובץ ההגדרות.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s דורש שסעיף ההגדרות [%s] יהיה קיים בקובץ ההגדרות.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "More information on the <a href=\"https://privatebin.info/\">project page</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "More information on the <a href=\"https://privatebin.info/\">project page</a>.",
|
||||||
"Because ignorance is bliss": "Because ignorance is bliss",
|
"Because ignorance is bliss": "Because ignorance is bliss",
|
||||||
"en": "hi",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "Paste does not exist, has expired or has been deleted.",
|
"Paste does not exist, has expired or has been deleted.": "Paste does not exist, has expired or has been deleted.",
|
||||||
"%s requires php %s or above to work. Sorry.": "%s requires php %s or above to work. Sorry.",
|
"%s requires php %s or above to work. Sorry.": "%s requires php %s or above to work. Sorry.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s requires configuration section [%s] to be present in configuration file.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s requires configuration section [%s] to be present in configuration file.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "A %s egy minimalista, nyílt forráskódú adattároló szoftver, ahol a szerver semmilyen információt nem tárol a feltett adatról. Azt ugyanis a %sböngésződ%s segítségével titkosítja és oldja fel 256 bit hosszú titkosítási kulcsú AES-t használva.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "A %s egy minimalista, nyílt forráskódú adattároló szoftver, ahol a szerver semmilyen információt nem tárol a feltett adatról. Azt ugyanis a %sböngésződ%s segítségével titkosítja és oldja fel 256 bit hosszú titkosítási kulcsú AES-t használva.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "További információt a <a href=\"https://privatebin.info/\">projekt oldalán</a> találsz.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "További információt a <a href=\"https://privatebin.info/\">projekt oldalán</a> találsz.",
|
||||||
"Because ignorance is bliss": "A titok egyfajta hatalom.",
|
"Because ignorance is bliss": "A titok egyfajta hatalom.",
|
||||||
"en": "hu",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "A bejegyzés nem létezik, lejárt vagy törölve lett.",
|
"Paste does not exist, has expired or has been deleted.": "A bejegyzés nem létezik, lejárt vagy törölve lett.",
|
||||||
"%s requires php %s or above to work. Sorry.": "Bocs, de a %s működéséhez %s vagy ezt meghaladó verziójú php-s környezet szükséges.",
|
"%s requires php %s or above to work. Sorry.": "Bocs, de a %s működéséhez %s vagy ezt meghaladó verziójú php-s környezet szükséges.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "A %s megfelelő működéséhez a konfigurációs fájlban a [%s] résznek léteznie kell.",
|
"%s requires configuration section [%s] to be present in configuration file.": "A %s megfelelő működéséhez a konfigurációs fájlban a [%s] résznek léteznie kell.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s adalah sebuah pastebin online sumber terbuka dan minimalis, dimana servernya tersebut tidak punya pengetahuan tentang data yang ditempelkan. Data tersebut di enkrip/dekrip %sdi dalam browser%s menggunakan metode enkrip AES 256 bit.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s adalah sebuah pastebin online sumber terbuka dan minimalis, dimana servernya tersebut tidak punya pengetahuan tentang data yang ditempelkan. Data tersebut di enkrip/dekrip %sdi dalam browser%s menggunakan metode enkrip AES 256 bit.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Infomasi lebih lanjut pada <a href=\"https://privatebin.info/\">halaman proyek</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Infomasi lebih lanjut pada <a href=\"https://privatebin.info/\">halaman proyek</a>.",
|
||||||
"Because ignorance is bliss": "Karena ketidaktahuan adalah kebahagiaan, gitu loh",
|
"Because ignorance is bliss": "Karena ketidaktahuan adalah kebahagiaan, gitu loh",
|
||||||
"en": "id",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "Paste tidak ada, telah kedaluwarsa atau telah dihapus.",
|
"Paste does not exist, has expired or has been deleted.": "Paste tidak ada, telah kedaluwarsa atau telah dihapus.",
|
||||||
"%s requires php %s or above to work. Sorry.": "%s memerlukan php %s atau versi diatasnya untuk dapat dijalankan. Maaf.",
|
"%s requires php %s or above to work. Sorry.": "%s memerlukan php %s atau versi diatasnya untuk dapat dijalankan. Maaf.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s membutuhkan bagian konfigurasi [%s] untuk ada di file konfigurasi.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s membutuhkan bagian konfigurasi [%s] untuk ada di file konfigurasi.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s è un sistema di tipo \"Pastebin\" online, open source, minimalista. Il server non possiede alcuna conoscenza (\"Zero Knowledge\") del contenuto dei dati inviati. I dati sono cifrati/decifrati %snel Browser%s con algoritmo AES a 256 Bit.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s è un sistema di tipo \"Pastebin\" online, open source, minimalista. Il server non possiede alcuna conoscenza (\"Zero Knowledge\") del contenuto dei dati inviati. I dati sono cifrati/decifrati %snel Browser%s con algoritmo AES a 256 Bit.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Per ulteriori informazioni, vedi <a href=\"https://privatebin.info/\">Sito del progetto</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Per ulteriori informazioni, vedi <a href=\"https://privatebin.info/\">Sito del progetto</a>.",
|
||||||
"Because ignorance is bliss": "Perché l'ignoranza è una benedizione (Because ignorance is bliss)",
|
"Because ignorance is bliss": "Perché l'ignoranza è una benedizione (Because ignorance is bliss)",
|
||||||
"en": "it",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "Questo messaggio non esiste, è scaduto o è stato cancellato.",
|
"Paste does not exist, has expired or has been deleted.": "Questo messaggio non esiste, è scaduto o è stato cancellato.",
|
||||||
"%s requires php %s or above to work. Sorry.": "%s richiede php %s o superiore per funzionare. Ci spiace.",
|
"%s requires php %s or above to work. Sorry.": "%s richiede php %s o superiore per funzionare. Ci spiace.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s richiede la presenza della sezione [%s] nei file di configurazione.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s richiede la presenza della sezione [%s] nei file di configurazione.",
|
||||||
|
323
i18n/ja.json
323
i18n/ja.json
@ -1,48 +1,47 @@
|
|||||||
{
|
{
|
||||||
"PrivateBin": "PrivateBin",
|
"PrivateBin": "PrivateBin",
|
||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s はミニマリストで、オープンソースのオンラインデータ貼り付けサービスです。サーバーに、貼り付けられたデータの中身を読み取ることはできません。データは、256ビットのAESを用いて%sブラウザー上で%s暗号化、または復号化されます。",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "More information on the <a href=\"https://privatebin.info/\">project page</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "詳細については<a href=\"https://privatebin.info/\">プロジェクトのページ</a>をご覧ください。",
|
||||||
"Because ignorance is bliss": "Because ignorance is bliss",
|
"Because ignorance is bliss": "知らぬが仏",
|
||||||
"en": "ja",
|
"Paste does not exist, has expired or has been deleted.": "ペーストが存在しないか、期限切れ、または削除されました。",
|
||||||
"Paste does not exist, has expired or has been deleted.": "Paste does not exist, has expired or has been deleted.",
|
"%s requires php %s or above to work. Sorry.": "%s の動作には php %s 以上が必要です。申し訳ありません。",
|
||||||
"%s requires php %s or above to work. Sorry.": "%s requires php %s or above to work. Sorry.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%sには設定ファイルに[%s]の設定セクションが必要です。",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s requires configuration section [%s] to be present in configuration file.",
|
|
||||||
"Please wait %d seconds between each post.": [
|
"Please wait %d seconds between each post.": [
|
||||||
"Please wait %d second between each post. (singular)",
|
"投稿ごとに%d秒間お待ちください。",
|
||||||
"Please wait %d seconds between each post. (1st plural)",
|
"投稿ごとに%d秒間お待ちください。",
|
||||||
"Please wait %d seconds between each post. (2nd plural)",
|
"投稿ごとに%d秒間お待ちください。",
|
||||||
"Please wait %d seconds between each post. (3rd plural)",
|
"投稿ごとに%d秒間お待ちください。",
|
||||||
"Please wait %d seconds between each post. (4th plural)",
|
"投稿ごとに%d秒間お待ちください。",
|
||||||
"Please wait %d seconds between each post. (5th plural)"
|
"投稿ごとに%d秒間お待ちください。"
|
||||||
],
|
],
|
||||||
"Paste is limited to %s of encrypted data.": "Paste is limited to %s of encrypted data.",
|
"Paste is limited to %s of encrypted data.": "ペーストは暗号化されたデータの%sに制限されています。",
|
||||||
"Invalid data.": "Invalid data.",
|
"Invalid data.": "無効なデータです。",
|
||||||
"You are unlucky. Try again.": "You are unlucky. Try again.",
|
"You are unlucky. Try again.": "何か問題が発生しました。もう一度やり直してください。",
|
||||||
"Error saving comment. Sorry.": "Error saving comment. Sorry.",
|
"Error saving comment. Sorry.": "コメントの保存中にエラーが発生しました。申し訳ありません。",
|
||||||
"Error saving paste. Sorry.": "Error saving paste. Sorry.",
|
"Error saving paste. Sorry.": "ペーストの保存中にエラーが発生しました。申し訳ありません。",
|
||||||
"Invalid paste ID.": "Invalid paste ID.",
|
"Invalid paste ID.": "無効なペーストIDです。",
|
||||||
"Paste is not of burn-after-reading type.": "Paste is not of burn-after-reading type.",
|
"Paste is not of burn-after-reading type.": "ペーストは、読み込んだ後に消去される種類のものではありません。",
|
||||||
"Wrong deletion token. Paste was not deleted.": "Wrong deletion token. Paste was not deleted.",
|
"Wrong deletion token. Paste was not deleted.": "不正な削除トークンです。ペーストは削除されませんでした。",
|
||||||
"Paste was properly deleted.": "Paste was properly deleted.",
|
"Paste was properly deleted.": "ペーストが正しく削除されました。",
|
||||||
"JavaScript is required for %s to work. Sorry for the inconvenience.": "JavaScript is required for %s to work. Sorry for the inconvenience.",
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "%s の動作にはJavaScriptが必要です。ご迷惑をおかけして申し訳ありません。",
|
||||||
"%s requires a modern browser to work.": "%s requires a modern browser to work.",
|
"%s requires a modern browser to work.": "%s の動作には最近のブラウザが必要です。",
|
||||||
"New": "新しい",
|
"New": "新規",
|
||||||
"Send": "送る",
|
"Send": "送信",
|
||||||
"Clone": "Clone",
|
"Clone": "複製",
|
||||||
"Raw text": "Raw text",
|
"Raw text": "未加工テキスト",
|
||||||
"Expires": "Expires",
|
"Expires": "有効期限",
|
||||||
"Burn after reading": "Burn after reading",
|
"Burn after reading": "読み込んだ後に消去",
|
||||||
"Open discussion": "Open discussion",
|
"Open discussion": "ディスカッションを開く",
|
||||||
"Password (recommended)": "Password (recommended)",
|
"Password (recommended)": "パスワード(推奨)",
|
||||||
"Discussion": "Discussion",
|
"Discussion": "ディスカッション",
|
||||||
"Toggle navigation": "Toggle navigation",
|
"Toggle navigation": "ナビゲーションを切り替え",
|
||||||
"%d seconds": [
|
"%d seconds": [
|
||||||
"%d second (singular)",
|
"%d秒",
|
||||||
"%d seconds (1st plural)",
|
"%d秒",
|
||||||
"%d seconds (2nd plural)",
|
"%d秒",
|
||||||
"%d seconds (3rd plural)",
|
"%d秒",
|
||||||
"%d seconds (4th plural)",
|
"%d秒",
|
||||||
"%d seconds (5th plural)"
|
"%d秒"
|
||||||
],
|
],
|
||||||
"%d minutes": [
|
"%d minutes": [
|
||||||
"%d分",
|
"%d分",
|
||||||
@ -69,93 +68,93 @@
|
|||||||
"%d 日"
|
"%d 日"
|
||||||
],
|
],
|
||||||
"%d weeks": [
|
"%d weeks": [
|
||||||
"%d week (singular)",
|
"%d週間",
|
||||||
"%d weeks (1st plural)",
|
"%d週間",
|
||||||
"%d weeks (2nd plural)",
|
"%d週間",
|
||||||
"%d weeks (3rd plural)",
|
"%d週間",
|
||||||
"%d weeks (4th plural)",
|
"%d週間",
|
||||||
"%d weeks (5th plural)"
|
"%d週間"
|
||||||
],
|
],
|
||||||
"%d months": [
|
"%d months": [
|
||||||
"%d month (singular)",
|
"%dか月",
|
||||||
"%d months (1st plural)",
|
"%dか月",
|
||||||
"%d months (2nd plural)",
|
"%dか月",
|
||||||
"%d months (3rd plural)",
|
"%dか月",
|
||||||
"%d months (4th plural)",
|
"%dか月",
|
||||||
"%d months (5th plural)"
|
"%dか月"
|
||||||
],
|
],
|
||||||
"%d years": [
|
"%d years": [
|
||||||
"%d year (singular)",
|
"%d年",
|
||||||
"%d years (1st plural)",
|
"%d年",
|
||||||
"%d years (2nd plural)",
|
"%d年",
|
||||||
"%d years (3rd plural)",
|
"%d年",
|
||||||
"%d years (4th plural)",
|
"%d年",
|
||||||
"%d years (5th plural)"
|
"%d年"
|
||||||
],
|
],
|
||||||
"Never": "Never",
|
"Never": "無期限",
|
||||||
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.",
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "注意:これはテストサービスです。データはいつでも削除される可能性があります。このサービスを悪用するとKittensの動作は停止します。",
|
||||||
"This document will expire in %d seconds.": [
|
"This document will expire in %d seconds.": [
|
||||||
"This document will expire in %d second. (singular)",
|
"このドキュメントは%d秒後に失効します。",
|
||||||
"This document will expire in %d seconds. (1st plural)",
|
"このドキュメントは%d秒後に失効します。",
|
||||||
"This document will expire in %d seconds. (2nd plural)",
|
"このドキュメントは%d秒後に失効します。",
|
||||||
"This document will expire in %d seconds. (3rd plural)",
|
"このドキュメントは%d秒後に失効します。",
|
||||||
"This document will expire in %d seconds. (4th plural)",
|
"このドキュメントは%d秒後に失効します。",
|
||||||
"This document will expire in %d seconds. (5th plural)"
|
"このドキュメントは%d秒後に失効します。"
|
||||||
],
|
],
|
||||||
"This document will expire in %d minutes.": [
|
"This document will expire in %d minutes.": [
|
||||||
"This document will expire in %d minute. (singular)",
|
"このドキュメントは%d分後に失効します。",
|
||||||
"This document will expire in %d minutes. (1st plural)",
|
"このドキュメントは%d分後に失効します。",
|
||||||
"This document will expire in %d minutes. (2nd plural)",
|
"このドキュメントは%d分後に失効します。",
|
||||||
"This document will expire in %d minutes. (3rd plural)",
|
"このドキュメントは%d分後に失効します。",
|
||||||
"This document will expire in %d minutes. (4th plural)",
|
"このドキュメントは%d分後に失効します。",
|
||||||
"This document will expire in %d minutes. (5th plural)"
|
"このドキュメントは%d分後に失効します。"
|
||||||
],
|
],
|
||||||
"This document will expire in %d hours.": [
|
"This document will expire in %d hours.": [
|
||||||
"This document will expire in %d hour. (singular)",
|
"このドキュメントは%d時間後に失効します。",
|
||||||
"This document will expire in %d hours. (1st plural)",
|
"このドキュメントは%d時間後に失効します。",
|
||||||
"This document will expire in %d hours. (2nd plural)",
|
"このドキュメントは%d時間後に失効します。",
|
||||||
"This document will expire in %d hours. (3rd plural)",
|
"このドキュメントは%d時間後に失効します。",
|
||||||
"This document will expire in %d hours. (4th plural)",
|
"このドキュメントは%d時間後に失効します。",
|
||||||
"This document will expire in %d hours. (5th plural)"
|
"このドキュメントは%d時間後に失効します。"
|
||||||
],
|
],
|
||||||
"This document will expire in %d days.": [
|
"This document will expire in %d days.": [
|
||||||
"This document will expire in %d day. (singular)",
|
"このドキュメントは%d日後に失効します。",
|
||||||
"This document will expire in %d days. (1st plural)",
|
"このドキュメントは%d日後に失効します。",
|
||||||
"This document will expire in %d days. (2nd plural)",
|
"このドキュメントは%d日後に失効します。",
|
||||||
"This document will expire in %d days. (3rd plural)",
|
"このドキュメントは%d日後に失効します。",
|
||||||
"This document will expire in %d days. (4th plural)",
|
"このドキュメントは%d日後に失効します。",
|
||||||
"This document will expire in %d days. (5th plural)"
|
"このドキュメントは%d日後に失効します。"
|
||||||
],
|
],
|
||||||
"This document will expire in %d months.": [
|
"This document will expire in %d months.": [
|
||||||
"This document will expire in %d month. (singular)",
|
"このドキュメントは%dか月後に失効します。",
|
||||||
"This document will expire in %d months. (1st plural)",
|
"このドキュメントは%dか月後に失効します。",
|
||||||
"This document will expire in %d months. (2nd plural)",
|
"このドキュメントは%dか月後に失効します。",
|
||||||
"This document will expire in %d months. (3rd plural)",
|
"このドキュメントは%dか月後に失効します。",
|
||||||
"This document will expire in %d months. (4th plural)",
|
"このドキュメントは%dか月後に失効します。",
|
||||||
"This document will expire in %d months. (5th plural)"
|
"このドキュメントは%dか月後に失効します。"
|
||||||
],
|
],
|
||||||
"Please enter the password for this paste:": "Please enter the password for this paste:",
|
"Please enter the password for this paste:": "このペーストのパスワードを入力してください。",
|
||||||
"Could not decrypt data (Wrong key?)": "Could not decrypt data (Wrong key?)",
|
"Could not decrypt data (Wrong key?)": "データを復号することができませんでした(間違った鍵ですか?)",
|
||||||
"Could not delete the paste, it was not stored in burn after reading mode.": "Could not delete the paste, it was not stored in burn after reading mode.",
|
"Could not delete the paste, it was not stored in burn after reading mode.": "ペーストを削除できませんでした。このペーストは、読み込んだ後に消去するモードでは保存されませんでした。",
|
||||||
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.",
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "このウィンドウを閉じないでください。このメッセージはもう表示できません。",
|
||||||
"Could not decrypt comment; Wrong key?": "Could not decrypt comment; Wrong key?",
|
"Could not decrypt comment; Wrong key?": "コメントを復号することができませんでした。間違った鍵ですか?",
|
||||||
"Reply": "Reply",
|
"Reply": "返信",
|
||||||
"Anonymous": "Anonymous",
|
"Anonymous": "匿名",
|
||||||
"Avatar generated from IP address": "Avatar generated from IP address",
|
"Avatar generated from IP address": "IPアドレスから生成したアバター",
|
||||||
"Add comment": "Add comment",
|
"Add comment": "コメントを追加",
|
||||||
"Optional nickname…": "Optional nickname…",
|
"Optional nickname…": "任意のニックネーム…",
|
||||||
"Post comment": "Post comment",
|
"Post comment": "コメントを投稿",
|
||||||
"Sending comment…": "Sending comment…",
|
"Sending comment…": "コメントを送信しています…",
|
||||||
"Comment posted.": "Comment posted.",
|
"Comment posted.": "コメントを投稿しました。",
|
||||||
"Could not refresh display: %s": "Could not refresh display: %s",
|
"Could not refresh display: %s": "表示を更新できませんでした:%s",
|
||||||
"unknown status": "unknown status",
|
"unknown status": "不明な状態",
|
||||||
"server error or not responding": "server error or not responding",
|
"server error or not responding": "サーバーエラーまたは応答しません",
|
||||||
"Could not post comment: %s": "Could not post comment: %s",
|
"Could not post comment: %s": "コメントを投稿できませんでした:%s",
|
||||||
"Sending paste…": "Sending paste…",
|
"Sending paste…": "ペーストを送信しています…",
|
||||||
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>",
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "ペーストは<a id=\"pasteurl\" href=\"%s\">%s</a>です<span id=\"copyhint\">(コピーするには[Ctrl]+[c]を押してください)</span>",
|
||||||
"Delete data": "Delete data",
|
"Delete data": "データを削除",
|
||||||
"Could not create paste: %s": "Could not create paste: %s",
|
"Could not create paste: %s": "ペーストを作成できませんでした:%s",
|
||||||
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)",
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "ペーストを復号化できません:復号化キーがURLにありません(URLの一部を削除するリダイレクト機能またはURLの短縮アプリケーションを使いましたか?)",
|
||||||
"B": "B",
|
"B": "B",
|
||||||
"KiB": "KiB",
|
"KiB": "KiB",
|
||||||
"MiB": "MiB",
|
"MiB": "MiB",
|
||||||
@ -165,55 +164,55 @@
|
|||||||
"EiB": "EiB",
|
"EiB": "EiB",
|
||||||
"ZiB": "ZiB",
|
"ZiB": "ZiB",
|
||||||
"YiB": "YiB",
|
"YiB": "YiB",
|
||||||
"Format": "Format",
|
"Format": "形式",
|
||||||
"Plain Text": "Plain Text",
|
"Plain Text": "プレーンテキスト",
|
||||||
"Source Code": "Source Code",
|
"Source Code": "ソースコード",
|
||||||
"Markdown": "Markdown",
|
"Markdown": "Markdown",
|
||||||
"Download attachment": "Download attachment",
|
"Download attachment": "添付ファイルをダウンロード",
|
||||||
"Cloned: '%s'": "Cloned: '%s'",
|
"Cloned: '%s'": "複製済:'%s'",
|
||||||
"The cloned file '%s' was attached to this paste.": "The cloned file '%s' was attached to this paste.",
|
"The cloned file '%s' was attached to this paste.": "複製されたファイル '%s' がこのペーストに添付されました。",
|
||||||
"Attach a file": "Attach a file",
|
"Attach a file": "ファイルを添付",
|
||||||
"alternatively drag & drop a file or paste an image from the clipboard": "alternatively drag & drop a file or paste an image from the clipboard",
|
"alternatively drag & drop a file or paste an image from the clipboard": "代わりに、ファイルをドラッグ&ドロップまたはクリップボードから画像を貼り付け",
|
||||||
"File too large, to display a preview. Please download the attachment.": "File too large, to display a preview. Please download the attachment.",
|
"File too large, to display a preview. Please download the attachment.": "ファイルが大きすぎるため、プレビューを表示できません。ダウンロードしてください。",
|
||||||
"Remove attachment": "Remove attachment",
|
"Remove attachment": "添付ファイルを削除",
|
||||||
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Your browser does not support uploading encrypted files. Please use a newer browser.",
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "お使いのブラウザーは暗号化されたファイルのアップロードをサポートしていません。新しいブラウザーを使用してください。",
|
||||||
"Invalid attachment.": "Invalid attachment.",
|
"Invalid attachment.": "不正な添付ファイルです。",
|
||||||
"Options": "Options",
|
"Options": "設定",
|
||||||
"Shorten URL": "Shorten URL",
|
"Shorten URL": "URLを短縮",
|
||||||
"Editor": "Editor",
|
"Editor": "エディター",
|
||||||
"Preview": "Preview",
|
"Preview": "プレビュー",
|
||||||
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.",
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s は「%s」で終わるPATHが必要です。index.phpのPATHを更新してください。",
|
||||||
"Decrypt": "Decrypt",
|
"Decrypt": "復号化",
|
||||||
"Enter password": "Enter password",
|
"Enter password": "パスワードを入力",
|
||||||
"Loading…": "Loading…",
|
"Loading…": "読み込んでいます…",
|
||||||
"Decrypting paste…": "Decrypting paste…",
|
"Decrypting paste…": "ペーストを復号化しています…",
|
||||||
"Preparing new paste…": "Preparing new paste…",
|
"Preparing new paste…": "新しいペーストを準備しています…",
|
||||||
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.",
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "このメッセージが消去されない場合、<a href=\"%s\">トラブルシュート用のFAQ</a>をご確認ください。",
|
||||||
"+++ no paste text +++": "+++ no paste text +++",
|
"+++ no paste text +++": "+++ ペーストのテキストはありません +++",
|
||||||
"Could not get paste data: %s": "Could not get paste data: %s",
|
"Could not get paste data: %s": "ペーストのデータを取得できませんでした:%s",
|
||||||
"QR code": "QR code",
|
"QR code": "QRコード",
|
||||||
"This website is using an insecure HTTP connection! Please use it only for testing.": "This website is using an insecure HTTP connection! Please use it only for testing.",
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "このウェブサイトは安全でない HTTP 接続を使用しています!テストにのみ使用してください。",
|
||||||
"For more information <a href=\"%s\">see this FAQ entry</a>.": "For more information <a href=\"%s\">see this FAQ entry</a>.",
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "詳細については、<a href=\"%s\">こちらのFAQエントリー</a>をご覧ください。",
|
||||||
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.",
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "お使いのブラウザーはWebCrypto APIのサポートにHTTPS接続を必要とするかもしれません。<a href=\"%s\">HTTPS接続に切り替えてみてください</a>。",
|
||||||
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.",
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "お使いのブラウザーはzlib圧縮に必要なWebAssemblyをサポートしていません。圧縮されていないドキュメントを作成することはできますが、圧縮されたドキュメントを読み込むことはできません。",
|
||||||
"waiting on user to provide a password": "waiting on user to provide a password",
|
"waiting on user to provide a password": "ユーザーがパスワードを入力するのを待機しています",
|
||||||
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.",
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "データを復号できませんでした。パスワードが間違っていましたか? 上部のボタンで再試行してください。",
|
||||||
"Retry": "Retry",
|
"Retry": "再試行",
|
||||||
"Showing raw text…": "Showing raw text…",
|
"Showing raw text…": "未加工テキストを表示しています…",
|
||||||
"Notice:": "Notice:",
|
"Notice:": "注意:",
|
||||||
"This link will expire after %s.": "This link will expire after %s.",
|
"This link will expire after %s.": "このリンクは%s後に期限切れになります。",
|
||||||
"This link can only be accessed once, do not use back or refresh button in your browser.": "This link can only be accessed once, do not use back or refresh button in your browser.",
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "このリンクは一度だけアクセスできます。ブラウザで戻ったり更新したりしないでください。",
|
||||||
"Link:": "Link:",
|
"Link:": "リンク:",
|
||||||
"Recipient may become aware of your timezone, convert time to UTC?": "Recipient may become aware of your timezone, convert time to UTC?",
|
"Recipient may become aware of your timezone, convert time to UTC?": "受信する人はあなたのタイムゾーンに気づくかもしれません。時間をUTCに変換しますか?",
|
||||||
"Use Current Timezone": "Use Current Timezone",
|
"Use Current Timezone": "現在のタイムゾーンを使用",
|
||||||
"Convert To UTC": "Convert To UTC",
|
"Convert To UTC": "UTCに変換",
|
||||||
"Close": "Close",
|
"Close": "閉じる",
|
||||||
"Encrypted note on %s": "Encrypted note on %s",
|
"Encrypted note on %s": "%sの暗号化されたメモ",
|
||||||
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.",
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "メモを見るには、このリンクを参照してください。誰でもURLからこのメモにアクセスできます。",
|
||||||
"URL shortener may expose your decrypt key in URL.": "URL shortener may expose your decrypt key in URL.",
|
"URL shortener may expose your decrypt key in URL.": "URLの短縮アプリケーションを使うと、復号用のキーが漏洩するおそれがあります。",
|
||||||
"Save paste": "Save paste",
|
"Save paste": "ペーストを保存",
|
||||||
"Your IP is not authorized to create pastes.": "Your IP is not authorized to create pastes.",
|
"Your IP is not authorized to create pastes.": "あなたのIPアドレスにはペーストを作成する権限がありません。",
|
||||||
"Trying to shorten a URL that isn't pointing at our instance.": "Trying to shorten a URL that isn't pointing at our instance.",
|
"Trying to shorten a URL that isn't pointing at our instance.": "このインスタンスを指していないURLを短縮しようとしています。",
|
||||||
"Error calling YOURLS. Probably a configuration issue, like wrong or missing \"apiurl\" or \"signature\".": "Error calling YOURLS. Probably a configuration issue, like wrong or missing \"apiurl\" or \"signature\".",
|
"Error calling YOURLS. Probably a configuration issue, like wrong or missing \"apiurl\" or \"signature\".": "YOURLSの呼び出し中にエラーが発生しました。\"apiurl\"または\"signature\"等の設定に問題がある可能性があります。",
|
||||||
"Error parsing YOURLS response.": "Error parsing YOURLS response."
|
"Error parsing YOURLS response.": "YOURLSレスポンスの解析中にエラーが発生しました。"
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": ".i la %s mupli lo sorcu lo'e se setca kibro .i ji'a zo'e se zancari gi'e fingubni .i lo samse'u na djuno lo datni selru'e cu .i ba'e %sle brauzero%s ku mipri le do datni ku fi la'oi AES poi bitni li 256",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": ".i la %s mupli lo sorcu lo'e se setca kibro .i ji'a zo'e se zancari gi'e fingubni .i lo samse'u na djuno lo datni selru'e cu .i ba'e %sle brauzero%s ku mipri le do datni ku fi la'oi AES poi bitni li 256",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "More information on the <a href=\"https://privatebin.info/\">project page</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "More information on the <a href=\"https://privatebin.info/\">project page</a>.",
|
||||||
"Because ignorance is bliss": ".i ki'u le ka na djuno cu ka saxfri",
|
"Because ignorance is bliss": ".i ki'u le ka na djuno cu ka saxfri",
|
||||||
"en": "jbo",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "Paste does not exist, has expired or has been deleted.",
|
"Paste does not exist, has expired or has been deleted.": "Paste does not exist, has expired or has been deleted.",
|
||||||
"%s requires php %s or above to work. Sorry.": "%s requires php %s or above to work. Sorry.",
|
"%s requires php %s or above to work. Sorry.": "%s requires php %s or above to work. Sorry.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s requires configuration section [%s] to be present in configuration file.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s requires configuration section [%s] to be present in configuration file.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "More information on the <a href=\"https://privatebin.info/\">project page</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "More information on the <a href=\"https://privatebin.info/\">project page</a>.",
|
||||||
"Because ignorance is bliss": "Because ignorance is bliss",
|
"Because ignorance is bliss": "Because ignorance is bliss",
|
||||||
"en": "ku",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "Paste does not exist, has expired or has been deleted.",
|
"Paste does not exist, has expired or has been deleted.": "Paste does not exist, has expired or has been deleted.",
|
||||||
"%s requires php %s or above to work. Sorry.": "%s requires php %s or above to work. Sorry.",
|
"%s requires php %s or above to work. Sorry.": "%s requires php %s or above to work. Sorry.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s requires configuration section [%s] to be present in configuration file.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s requires configuration section [%s] to be present in configuration file.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "More information on the <a href=\"https://privatebin.info/\">project page</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "More information on the <a href=\"https://privatebin.info/\">project page</a>.",
|
||||||
"Because ignorance is bliss": "Because ignorance is bliss",
|
"Because ignorance is bliss": "Because ignorance is bliss",
|
||||||
"en": "la",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "Paste does not exist, has expired or has been deleted.",
|
"Paste does not exist, has expired or has been deleted.": "Paste does not exist, has expired or has been deleted.",
|
||||||
"%s requires php %s or above to work. Sorry.": "%s requires php %s or above to work. Sorry.",
|
"%s requires php %s or above to work. Sorry.": "%s requires php %s or above to work. Sorry.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s requires configuration section [%s] to be present in configuration file.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s requires configuration section [%s] to be present in configuration file.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s yra minimalistinis, atvirojo kodo internetinis įdėjimų dėklas, kurį naudojant, serveris nieko nenutuokia apie įdėtus duomenis. Duomenys yra šifruojami/iššifruojami %snaršyklėje%s naudojant 256 bitų AES.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s yra minimalistinis, atvirojo kodo internetinis įdėjimų dėklas, kurį naudojant, serveris nieko nenutuokia apie įdėtus duomenis. Duomenys yra šifruojami/iššifruojami %snaršyklėje%s naudojant 256 bitų AES.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Daugiau informacijos rasite <a href=\"https://privatebin.info/\">projekto puslapyje</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Daugiau informacijos rasite <a href=\"https://privatebin.info/\">projekto puslapyje</a>.",
|
||||||
"Because ignorance is bliss": "Nes nežinojimas yra palaima",
|
"Because ignorance is bliss": "Nes nežinojimas yra palaima",
|
||||||
"en": "lt",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "Įdėjimo nėra, jis nebegalioja arba buvo ištrintas.",
|
"Paste does not exist, has expired or has been deleted.": "Įdėjimo nėra, jis nebegalioja arba buvo ištrintas.",
|
||||||
"%s requires php %s or above to work. Sorry.": "%s savo darbui reikalauja php %s arba naujesnės versijos. Apgailestaujame.",
|
"%s requires php %s or above to work. Sorry.": "%s savo darbui reikalauja php %s arba naujesnės versijos. Apgailestaujame.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s reikalauja, kad konfigūracijos faile būtų [%s] konfigūracijos sekcija.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s reikalauja, kad konfigūracijos faile būtų [%s] konfigūracijos sekcija.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is een minimalistische, open source online pastebin waarbij de server geen kennis heeft van de paste data zelf. Gegevens worden gecodeerd/gedecodeerd %s in de browser %s met behulp van 256-bits AES.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is een minimalistische, open source online pastebin waarbij de server geen kennis heeft van de paste data zelf. Gegevens worden gecodeerd/gedecodeerd %s in de browser %s met behulp van 256-bits AES.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Meer informatie is te vinden op de <a href=\"https://privatebin.info/\">projectpagina</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Meer informatie is te vinden op de <a href=\"https://privatebin.info/\">projectpagina</a>.",
|
||||||
"Because ignorance is bliss": "Onwetendheid is een zegen",
|
"Because ignorance is bliss": "Onwetendheid is een zegen",
|
||||||
"en": "nl",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "Paste bestaat niet, is verlopen of verwijderd.",
|
"Paste does not exist, has expired or has been deleted.": "Paste bestaat niet, is verlopen of verwijderd.",
|
||||||
"%s requires php %s or above to work. Sorry.": "%s vereist PHP %s of hoger om te kunnen werken. Sorry",
|
"%s requires php %s or above to work. Sorry.": "%s vereist PHP %s of hoger om te kunnen werken. Sorry",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s vereist dat de configuratiesectie [%s] aanwezig is in het configuratiebestand",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s vereist dat de configuratiesectie [%s] aanwezig is in het configuratiebestand",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s er en minimalistisk, åpen kildekode, elektronisk tilgjengelig pastebin hvor serveren ikke har kunnskap om dataene som limes inn. Dataene krypteres/dekrypteres %si nettleseren%s ved hjelp av 256 bits AES.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s er en minimalistisk, åpen kildekode, elektronisk tilgjengelig pastebin hvor serveren ikke har kunnskap om dataene som limes inn. Dataene krypteres/dekrypteres %si nettleseren%s ved hjelp av 256 bits AES.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Mer informasjon om prosjektet på <a href=\"https://privatebin.info/\">prosjektsiden</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Mer informasjon om prosjektet på <a href=\"https://privatebin.info/\">prosjektsiden</a>.",
|
||||||
"Because ignorance is bliss": "Fordi uvitenhet er lykke",
|
"Because ignorance is bliss": "Fordi uvitenhet er lykke",
|
||||||
"en": "no",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "Innlegget eksisterer ikke, er utløpt eller har blitt slettet.",
|
"Paste does not exist, has expired or has been deleted.": "Innlegget eksisterer ikke, er utløpt eller har blitt slettet.",
|
||||||
"%s requires php %s or above to work. Sorry.": "Beklager, %s krever php %s eller nyere for å kjøre.",
|
"%s requires php %s or above to work. Sorry.": "Beklager, %s krever php %s eller nyere for å kjøre.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s krever konfigurasjonsdel [%s] å være til stede i konfigurasjonsfilen .",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s krever konfigurasjonsdel [%s] å være til stede i konfigurasjonsfilen .",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s es un 'pastebin' (o gestionari d’extrachs de tèxte e còdi font) minimalista e open source, dins lo qual lo servidor a pas cap de coneissença de las donadas mandadas. Las donadas son chifradas/deschifradas %sdins lo navigator%s per un chiframent AES 256 bits.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s es un 'pastebin' (o gestionari d’extrachs de tèxte e còdi font) minimalista e open source, dins lo qual lo servidor a pas cap de coneissença de las donadas mandadas. Las donadas son chifradas/deschifradas %sdins lo navigator%s per un chiframent AES 256 bits.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Mai informacions sus <a href=\"https://privatebin.info/\">la pagina del projècte</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Mai informacions sus <a href=\"https://privatebin.info/\">la pagina del projècte</a>.",
|
||||||
"Because ignorance is bliss": "Perque lo bonaür es l’ignorància",
|
"Because ignorance is bliss": "Perque lo bonaür es l’ignorància",
|
||||||
"en": "oc",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "Lo tèxte existís pas, a expirat, o es estat suprimit.",
|
"Paste does not exist, has expired or has been deleted.": "Lo tèxte existís pas, a expirat, o es estat suprimit.",
|
||||||
"%s requires php %s or above to work. Sorry.": "O planhèm, %s necessita php %s o superior per foncionar.",
|
"%s requires php %s or above to work. Sorry.": "O planhèm, %s necessita php %s o superior per foncionar.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s fa besonh de la seccion de configuracion [%s] dins lo fichièr de configuracion per foncionar.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s fa besonh de la seccion de configuracion [%s] dins lo fichièr de configuracion per foncionar.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s jest minimalistycznym, otwartoźródłowym serwisem typu pastebin, w którym serwer nie ma jakichkolwiek informacji o tym, co jest wklejane. Dane są szyfrowane i deszyfrowane %sw przeglądarce%s z użyciem 256-bitowego klucza AES.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s jest minimalistycznym, otwartoźródłowym serwisem typu pastebin, w którym serwer nie ma jakichkolwiek informacji o tym, co jest wklejane. Dane są szyfrowane i deszyfrowane %sw przeglądarce%s z użyciem 256-bitowego klucza AES.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Więcej informacji na <a href=\"https://privatebin.info/\">stronie projektu</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Więcej informacji na <a href=\"https://privatebin.info/\">stronie projektu</a>.",
|
||||||
"Because ignorance is bliss": "Ponieważ ignorancja jest cnotą",
|
"Because ignorance is bliss": "Ponieważ ignorancja jest cnotą",
|
||||||
"en": "pl",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "Wklejka nie istnieje, wygasła albo została usunięta.",
|
"Paste does not exist, has expired or has been deleted.": "Wklejka nie istnieje, wygasła albo została usunięta.",
|
||||||
"%s requires php %s or above to work. Sorry.": "%s wymaga PHP w wersji %s lub nowszej. Przykro mi.",
|
"%s requires php %s or above to work. Sorry.": "%s wymaga PHP w wersji %s lub nowszej. Przykro mi.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s wymaga obecności sekcji [%s] w pliku konfiguracyjnym.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s wymaga obecności sekcji [%s] w pliku konfiguracyjnym.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s é um serviço minimalista e de código aberto do tipo \"pastebin\", em que o servidor tem zero conhecimento dos dados copiados. Os dados são cifrados e decifrados %sno navegador%s usando 256 bits AES.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s é um serviço minimalista e de código aberto do tipo \"pastebin\", em que o servidor tem zero conhecimento dos dados copiados. Os dados são cifrados e decifrados %sno navegador%s usando 256 bits AES.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Mais informações na <a href=\"https://privatebin.info/\">página do projeto</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Mais informações na <a href=\"https://privatebin.info/\">página do projeto</a>.",
|
||||||
"Because ignorance is bliss": "Porque a ignorância é uma benção",
|
"Because ignorance is bliss": "Porque a ignorância é uma benção",
|
||||||
"en": "pt",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "A cópia não existe, expirou ou já foi excluída.",
|
"Paste does not exist, has expired or has been deleted.": "A cópia não existe, expirou ou já foi excluída.",
|
||||||
"%s requires php %s or above to work. Sorry.": "%s requer php %s ou superior para funcionar. Desculpa.",
|
"%s requires php %s or above to work. Sorry.": "%s requer php %s ou superior para funcionar. Desculpa.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s requer que a seção de configuração [% s] esteja no arquivo de configuração.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s requer que a seção de configuração [% s] esteja no arquivo de configuração.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s это минималистичный Open Source проект для создания заметок, где сервер не знает ничего о сохраняемых данных. Данные шифруются/расшифровываются %sв браузере%s с использованием 256 битного шифрования AES.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s это минималистичный Open Source проект для создания заметок, где сервер не знает ничего о сохраняемых данных. Данные шифруются/расшифровываются %sв браузере%s с использованием 256 битного шифрования AES.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Подробнее можно узнать на <a href=\"https://privatebin.info/\">сайте проекта</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Подробнее можно узнать на <a href=\"https://privatebin.info/\">сайте проекта</a>.",
|
||||||
"Because ignorance is bliss": "Потому что неведение - благо",
|
"Because ignorance is bliss": "Потому что неведение - благо",
|
||||||
"en": "ru",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "Запись не существует, просрочена или была удалена.",
|
"Paste does not exist, has expired or has been deleted.": "Запись не существует, просрочена или была удалена.",
|
||||||
"%s requires php %s or above to work. Sorry.": "Для работы %s требуется php %s или выше. Извините.",
|
"%s requires php %s or above to work. Sorry.": "Для работы %s требуется php %s или выше. Извините.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s необходимо наличие секции [%s] в конфигурационном файле.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s необходимо наличие секции [%s] в конфигурационном файле.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s je minimalistický, open source online pastebin, kde server nemá žiadne znalosti o vložených údajoch. Údaje sú šifrované/dešifrované %sv prehliadači%s pomocou 256-bitového AES.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s je minimalistický, open source online pastebin, kde server nemá žiadne znalosti o vložených údajoch. Údaje sú šifrované/dešifrované %sv prehliadači%s pomocou 256-bitového AES.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Viac informácií na <a href=\"https://privatebin.info/\">stránke projektu</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Viac informácií na <a href=\"https://privatebin.info/\">stránke projektu</a>.",
|
||||||
"Because ignorance is bliss": "Pretože nevedomosť je sladká",
|
"Because ignorance is bliss": "Pretože nevedomosť je sladká",
|
||||||
"en": "sk",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "Vložený text neexistuje, jeho platnosť vypršala alebo bol vymazaný.",
|
"Paste does not exist, has expired or has been deleted.": "Vložený text neexistuje, jeho platnosť vypršala alebo bol vymazaný.",
|
||||||
"%s requires php %s or above to work. Sorry.": "%s vyžaduje php %s alebo vyššie. Prepáčte.",
|
"%s requires php %s or above to work. Sorry.": "%s vyžaduje php %s alebo vyššie. Prepáčte.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s vyžaduje, aby bola v konfiguračnom súbore prítomná sekcia [%s].",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s vyžaduje, aby bola v konfiguračnom súbore prítomná sekcia [%s].",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s je minimalističen, odprtokodni spletni 'pastebin', kjer server ne ve ničesar o prilepljenih podatkih. Podatki so zakodirani/odkodirani %sv brskalniku%s z uporabo 256 bitnega AES.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s je minimalističen, odprtokodni spletni 'pastebin', kjer server ne ve ničesar o prilepljenih podatkih. Podatki so zakodirani/odkodirani %sv brskalniku%s z uporabo 256 bitnega AES.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Več informacij na <a href=\"https://privatebin.info/\">spletni strani projekta.</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Več informacij na <a href=\"https://privatebin.info/\">spletni strani projekta.</a>.",
|
||||||
"Because ignorance is bliss": "Ker kar ne veš ne boli.",
|
"Because ignorance is bliss": "Ker kar ne veš ne boli.",
|
||||||
"en": "sl",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "Prilepek ne obstaja, mu je potekla življenjska doba, ali pa je izbrisan.",
|
"Paste does not exist, has expired or has been deleted.": "Prilepek ne obstaja, mu je potekla življenjska doba, ali pa je izbrisan.",
|
||||||
"%s requires php %s or above to work. Sorry.": "Oprosti, %s za delovanje potrebuje vsaj php %s.",
|
"%s requires php %s or above to work. Sorry.": "Oprosti, %s za delovanje potrebuje vsaj php %s.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s potrebuje sekcijo konfiguracij [%s] v konfiguracijski datoteki.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s potrebuje sekcijo konfiguracij [%s] v konfiguracijski datoteki.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "More information on the <a href=\"https://privatebin.info/\">project page</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "More information on the <a href=\"https://privatebin.info/\">project page</a>.",
|
||||||
"Because ignorance is bliss": "Because ignorance is bliss",
|
"Because ignorance is bliss": "Because ignorance is bliss",
|
||||||
"en": "sv",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "Paste does not exist, has expired or has been deleted.",
|
"Paste does not exist, has expired or has been deleted.": "Paste does not exist, has expired or has been deleted.",
|
||||||
"%s requires php %s or above to work. Sorry.": "%s requires php %s or above to work. Sorry.",
|
"%s requires php %s or above to work. Sorry.": "%s requires php %s or above to work. Sorry.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s requires configuration section [%s] to be present in configuration file.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s requires configuration section [%s] to be present in configuration file.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s เป็น pastebin ออนไลน์แบบโอเพ่นซอร์สที่มีรูปแบบการใช้งานที่เรียบง่าย เซิร์ฟเวอร์ไม่สามารถรู้ได้ว่าข้อมูลโค้ดที่มาฝากนั้นเป็นข้อมูลอะไร โดยจะถูกเข้ารหัส/ถอดรหัสด้วยกระบวนการ AES จำนวน 256 บิต%sผ่านเบราว์เซอร์%s",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s เป็น pastebin ออนไลน์แบบโอเพ่นซอร์สที่มีรูปแบบการใช้งานที่เรียบง่าย เซิร์ฟเวอร์ไม่สามารถรู้ได้ว่าข้อมูลโค้ดที่มาฝากนั้นเป็นข้อมูลอะไร โดยจะถูกเข้ารหัส/ถอดรหัสด้วยกระบวนการ AES จำนวน 256 บิต%sผ่านเบราว์เซอร์%s",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "ข้อมูลเพิ่มเติม ดูได้ที่<a href=\"https://privatebin.info/\">หน้าโครงการ</a>",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "ข้อมูลเพิ่มเติม ดูได้ที่<a href=\"https://privatebin.info/\">หน้าโครงการ</a>",
|
||||||
"Because ignorance is bliss": "ไม่รู้ไม่ชี้ดีที่สุด",
|
"Because ignorance is bliss": "ไม่รู้ไม่ชี้ดีที่สุด",
|
||||||
"en": "th",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "การฝากโค้ดไม่มีอยู่ อาจจะหมดอายุหรือถูกลบไปแล้ว",
|
"Paste does not exist, has expired or has been deleted.": "การฝากโค้ดไม่มีอยู่ อาจจะหมดอายุหรือถูกลบไปแล้ว",
|
||||||
"%s requires php %s or above to work. Sorry.": "ขออภัย %s ต้องใช้ PHP %s ขึ้นไปจึงจะใช้งานได้",
|
"%s requires php %s or above to work. Sorry.": "ขออภัย %s ต้องใช้ PHP %s ขึ้นไปจึงจะใช้งานได้",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s จำเป็นต้องตั้งค่าตัวแปร [%s] ในไฟล์กำหนดค่า",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s จำเป็นต้องตั้งค่าตัวแปร [%s] ในไฟล์กำหนดค่า",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s sunucunun burada paylaştığınız veriyi görmediği, minimal, açık kaynak bir pastebindir. Veriler tarayıcıda 256 bit AES kullanılarak şifrelenir/çözülür.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s sunucunun burada paylaştığınız veriyi görmediği, minimal, açık kaynak bir pastebindir. Veriler tarayıcıda 256 bit AES kullanılarak şifrelenir/çözülür.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Daha fazla bilgi için <a href=\"https://privatebin.info/\">proje sayfası</a>'na göz atabilirsiniz.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Daha fazla bilgi için <a href=\"https://privatebin.info/\">proje sayfası</a>'na göz atabilirsiniz.",
|
||||||
"Because ignorance is bliss": "Çünkü, cehalet mutluluktur",
|
"Because ignorance is bliss": "Çünkü, cehalet mutluluktur",
|
||||||
"en": "tr",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "Paste does not exist, has expired or has been deleted.",
|
"Paste does not exist, has expired or has been deleted.": "Paste does not exist, has expired or has been deleted.",
|
||||||
"%s requires php %s or above to work. Sorry.": "%s PHP %s veya daha üstünü gerektirir.",
|
"%s requires php %s or above to work. Sorry.": "%s PHP %s veya daha üstünü gerektirir.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s konfigürasyon bölümünün [%s] bulunmasını gerektir.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s konfigürasyon bölümünün [%s] bulunmasını gerektir.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s це мінімалістичний Open Source проєкт для створення нотаток, де сервер не знає нічого про дані, що зберігаються. Дані шифруються/розшифровуються %sу переглядачі%s з використанням 256-бітного шифрувания AES.",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s це мінімалістичний Open Source проєкт для створення нотаток, де сервер не знає нічого про дані, що зберігаються. Дані шифруються/розшифровуються %sу переглядачі%s з використанням 256-бітного шифрувания AES.",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Подробиці можна дізнатися на <a href=\"https://privatebin.info/\">сайті проєкту</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Подробиці можна дізнатися на <a href=\"https://privatebin.info/\">сайті проєкту</a>.",
|
||||||
"Because ignorance is bliss": "Бо незнання - благо",
|
"Because ignorance is bliss": "Бо незнання - благо",
|
||||||
"en": "uk",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "Допис не існує, протермінований чи був видалений.",
|
"Paste does not exist, has expired or has been deleted.": "Допис не існує, протермінований чи був видалений.",
|
||||||
"%s requires php %s or above to work. Sorry.": "Для роботи %s потрібен php %s и вище. Вибачте.",
|
"%s requires php %s or above to work. Sorry.": "Для роботи %s потрібен php %s и вище. Вибачте.",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s потрібна секція [%s] в конфігураційному файлі.",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s потрібна секція [%s] в конфігураційному файлі.",
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s 是一个极简、开源、对粘贴内容毫不知情的在线粘贴板,数据%s在浏览器内%s进行 AES-256 加密和解密。",
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s 是一个极简、开源、对粘贴内容毫不知情的在线粘贴板,数据%s在浏览器内%s进行 AES-256 加密和解密。",
|
||||||
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "更多信息请查看<a href=\"https://privatebin.info/\">项目主页</a>。",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "更多信息请查看<a href=\"https://privatebin.info/\">项目主页</a>。",
|
||||||
"Because ignorance is bliss": "因为无知是福",
|
"Because ignorance is bliss": "因为无知是福",
|
||||||
"en": "zh",
|
|
||||||
"Paste does not exist, has expired or has been deleted.": "粘贴内容不存在、已过期或已被删除。",
|
"Paste does not exist, has expired or has been deleted.": "粘贴内容不存在、已过期或已被删除。",
|
||||||
"%s requires php %s or above to work. Sorry.": "抱歉,%s 需要 PHP %s 及以上版本才能运行。",
|
"%s requires php %s or above to work. Sorry.": "抱歉,%s 需要 PHP %s 及以上版本才能运行。",
|
||||||
"%s requires configuration section [%s] to be present in configuration file.": "%s 需要设置配置文件中的 [%s] 部分。",
|
"%s requires configuration section [%s] to be present in configuration file.": "%s 需要设置配置文件中的 [%s] 部分。",
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 469 B After Width: | Height: | Size: 430 B |
Binary file not shown.
Before Width: | Height: | Size: 749 B After Width: | Height: | Size: 847 B |
BIN
img/favicon.ico
BIN
img/favicon.ico
Binary file not shown.
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 9.4 KiB |
@ -7,7 +7,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// change this, if your php files and data is outside of your webservers document root
|
// change this, if your php files and data is outside of your webservers document root
|
||||||
|
@ -12,12 +12,12 @@ global.WebCrypto = require('@peculiar/webcrypto').Crypto;
|
|||||||
// application libraries to test
|
// application libraries to test
|
||||||
global.$ = global.jQuery = require('./jquery-3.7.0');
|
global.$ = global.jQuery = require('./jquery-3.7.0');
|
||||||
global.RawDeflate = require('./rawinflate-0.3').RawDeflate;
|
global.RawDeflate = require('./rawinflate-0.3').RawDeflate;
|
||||||
global.zlib = require('./zlib-1.2.13').zlib;
|
global.zlib = require('./zlib-1.2.13-1').zlib;
|
||||||
require('./prettify');
|
require('./prettify');
|
||||||
global.prettyPrint = window.PR.prettyPrint;
|
global.prettyPrint = window.PR.prettyPrint;
|
||||||
global.prettyPrintOne = window.PR.prettyPrintOne;
|
global.prettyPrintOne = window.PR.prettyPrintOne;
|
||||||
global.showdown = require('./showdown-2.1.0');
|
global.showdown = require('./showdown-2.1.0');
|
||||||
global.DOMPurify = require('./purify-3.0.4');
|
global.DOMPurify = require('./purify-3.0.6');
|
||||||
global.baseX = require('./base-x-4.0.0').baseX;
|
global.baseX = require('./base-x-4.0.0').baseX;
|
||||||
global.Legacy = require('./legacy').Legacy;
|
global.Legacy = require('./legacy').Legacy;
|
||||||
require('./bootstrap-3.4.1');
|
require('./bootstrap-3.4.1');
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "privatebin",
|
"name": "privatebin",
|
||||||
"version": "1.6.0",
|
"version": "1.6.2",
|
||||||
"description": "PrivateBin is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted in the browser using 256 bit AES in Galois Counter mode (GCM).",
|
"description": "PrivateBin is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted in the browser using 256 bit AES in Galois Counter mode (GCM).",
|
||||||
"main": "privatebin.js",
|
"main": "privatebin.js",
|
||||||
"directories": {
|
"directories": {
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
* @see {@link https://github.com/PrivateBin/PrivateBin}
|
* @see {@link https://github.com/PrivateBin/PrivateBin}
|
||||||
* @copyright 2012 Sébastien SAUVAGE ({@link http://sebsauvage.net})
|
* @copyright 2012 Sébastien SAUVAGE ({@link http://sebsauvage.net})
|
||||||
* @license {@link https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License}
|
* @license {@link https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License}
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
* @name PrivateBin
|
* @name PrivateBin
|
||||||
* @namespace
|
* @namespace
|
||||||
*/
|
*/
|
||||||
@ -80,7 +80,7 @@ jQuery.PrivateBin = (function($, RawDeflate) {
|
|||||||
/**
|
/**
|
||||||
* CryptoData class
|
* CryptoData class
|
||||||
*
|
*
|
||||||
* bundles helper fuctions used in both paste and comment formats
|
* bundles helper functions used in both paste and comment formats
|
||||||
*
|
*
|
||||||
* @name CryptoData
|
* @name CryptoData
|
||||||
* @class
|
* @class
|
||||||
@ -95,7 +95,7 @@ jQuery.PrivateBin = (function($, RawDeflate) {
|
|||||||
/**
|
/**
|
||||||
* gets the cipher data (cipher text + adata)
|
* gets the cipher data (cipher text + adata)
|
||||||
*
|
*
|
||||||
* @name Paste.getCipherData
|
* @name CryptoData.getCipherData
|
||||||
* @function
|
* @function
|
||||||
* @return {Array}|{string}
|
* @return {Array}|{string}
|
||||||
*/
|
*/
|
||||||
@ -108,7 +108,7 @@ jQuery.PrivateBin = (function($, RawDeflate) {
|
|||||||
/**
|
/**
|
||||||
* Paste class
|
* Paste class
|
||||||
*
|
*
|
||||||
* bundles helper fuctions around the paste formats
|
* bundles helper functions around the paste formats
|
||||||
*
|
*
|
||||||
* @name Paste
|
* @name Paste
|
||||||
* @class
|
* @class
|
||||||
@ -171,7 +171,7 @@ jQuery.PrivateBin = (function($, RawDeflate) {
|
|||||||
/**
|
/**
|
||||||
* Comment class
|
* Comment class
|
||||||
*
|
*
|
||||||
* bundles helper fuctions around the comment formats
|
* bundles helper functions around the comment formats
|
||||||
*
|
*
|
||||||
* @name Comment
|
* @name Comment
|
||||||
* @class
|
* @class
|
||||||
@ -183,7 +183,7 @@ jQuery.PrivateBin = (function($, RawDeflate) {
|
|||||||
/**
|
/**
|
||||||
* gets the UNIX timestamp of the comment creation
|
* gets the UNIX timestamp of the comment creation
|
||||||
*
|
*
|
||||||
* @name Paste.getCreated
|
* @name Comment.getCreated
|
||||||
* @function
|
* @function
|
||||||
* @return {int}
|
* @return {int}
|
||||||
*/
|
*/
|
||||||
@ -195,7 +195,7 @@ jQuery.PrivateBin = (function($, RawDeflate) {
|
|||||||
/**
|
/**
|
||||||
* gets the icon of the comment submitter
|
* gets the icon of the comment submitter
|
||||||
*
|
*
|
||||||
* @name Paste.getIcon
|
* @name Comment.getIcon
|
||||||
* @function
|
* @function
|
||||||
* @return {string}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
@ -790,6 +790,18 @@ jQuery.PrivateBin = (function($, RawDeflate) {
|
|||||||
return output;
|
return output;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get currently loaded language
|
||||||
|
*
|
||||||
|
* @name I18n.getLanguage
|
||||||
|
* @function
|
||||||
|
* @return {string}
|
||||||
|
*/
|
||||||
|
me.getLanguage = function()
|
||||||
|
{
|
||||||
|
return language;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* per language functions to use to determine the plural form
|
* per language functions to use to determine the plural form
|
||||||
*
|
*
|
||||||
@ -847,7 +859,10 @@ jQuery.PrivateBin = (function($, RawDeflate) {
|
|||||||
|
|
||||||
// auto-select language based on browser settings
|
// auto-select language based on browser settings
|
||||||
if (newLanguage.length === 0) {
|
if (newLanguage.length === 0) {
|
||||||
newLanguage = (navigator.language || navigator.userLanguage || 'en').substring(0, 2);
|
newLanguage = (navigator.language || navigator.userLanguage || 'en');
|
||||||
|
if (newLanguage.indexOf('-') > 0) {
|
||||||
|
newLanguage = newLanguage.split('-')[0];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// if language is already used skip update
|
// if language is already used skip update
|
||||||
|
File diff suppressed because one or more lines are too long
2
js/purify-3.0.6.js
Normal file
2
js/purify-3.0.6.js
Normal file
File diff suppressed because one or more lines are too long
@ -193,10 +193,11 @@ describe('I18n', function () {
|
|||||||
// mock
|
// mock
|
||||||
clean = jsdom('', {cookie: ['lang=' + language]});
|
clean = jsdom('', {cookie: ['lang=' + language]});
|
||||||
$.PrivateBin.I18n.reset(language, require('../../i18n/' + language + '.json'));
|
$.PrivateBin.I18n.reset(language, require('../../i18n/' + language + '.json'));
|
||||||
var result = $.PrivateBin.I18n.translate('en'),
|
var loadedLang = $.PrivateBin.I18n.getLanguage(),
|
||||||
alias = $.PrivateBin.I18n._('en');
|
result = $.PrivateBin.I18n.translate('Never'),
|
||||||
|
alias = $.PrivateBin.I18n._('Never');
|
||||||
clean();
|
clean();
|
||||||
return language === result && language === alias;
|
return language === loadedLang && result === alias;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -216,13 +217,12 @@ describe('I18n', function () {
|
|||||||
|
|
||||||
$.PrivateBin.I18n.reset('en');
|
$.PrivateBin.I18n.reset('en');
|
||||||
$.PrivateBin.I18n.loadTranslations();
|
$.PrivateBin.I18n.loadTranslations();
|
||||||
var result = $.PrivateBin.I18n.translate('en'),
|
var result = $.PrivateBin.I18n.translate('Never'),
|
||||||
alias = $.PrivateBin.I18n._('en');
|
alias = $.PrivateBin.I18n._('Never');
|
||||||
|
|
||||||
clean();
|
clean();
|
||||||
return 'en' === result && 'en' === alias;
|
return 'Never' === result && 'Never' === alias;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
let buff;
|
let buff;
|
||||||
if (typeof fetch === 'undefined') {
|
if (typeof fs === 'object') {
|
||||||
buff = fs.readFileSync('zlib-1.2.13.wasm');
|
buff = fs.readFileSync('zlib-1.2.13.wasm');
|
||||||
} else {
|
} else {
|
||||||
const resp = await fetch('js/zlib-1.2.13.wasm');
|
const resp = await fetch('js/zlib-1.2.13.wasm');
|
@ -7,7 +7,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace PrivateBin;
|
namespace PrivateBin;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace PrivateBin;
|
namespace PrivateBin;
|
||||||
@ -28,7 +28,7 @@ class Controller
|
|||||||
*
|
*
|
||||||
* @const string
|
* @const string
|
||||||
*/
|
*/
|
||||||
const VERSION = '1.6.0';
|
const VERSION = '1.6.2';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* minimal required PHP version
|
* minimal required PHP version
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace PrivateBin\Data;
|
namespace PrivateBin\Data;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace PrivateBin\Data;
|
namespace PrivateBin\Data;
|
||||||
|
@ -7,12 +7,13 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace PrivateBin\Data;
|
namespace PrivateBin\Data;
|
||||||
|
|
||||||
use Exception;
|
use Exception;
|
||||||
|
use GlobIterator;
|
||||||
use PrivateBin\Json;
|
use PrivateBin\Json;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -96,7 +97,8 @@ class Filesystem extends AbstractData
|
|||||||
if (!is_dir($storagedir)) {
|
if (!is_dir($storagedir)) {
|
||||||
mkdir($storagedir, 0700, true);
|
mkdir($storagedir, 0700, true);
|
||||||
}
|
}
|
||||||
return $this->_store($file, $paste);
|
self::logToChapril("CREATE",$pasteid);
|
||||||
|
return self::_store($file, $paste);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -114,6 +116,7 @@ class Filesystem extends AbstractData
|
|||||||
) {
|
) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
self::logToChapril("READ",$pasteid);
|
||||||
return self::upgradePreV1Format($paste);
|
return self::upgradePreV1Format($paste);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -145,6 +148,7 @@ class Filesystem extends AbstractData
|
|||||||
$dir->close();
|
$dir->close();
|
||||||
rmdir($discdir);
|
rmdir($discdir);
|
||||||
}
|
}
|
||||||
|
self::logToChapril("DELETE",$pasteid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -199,7 +203,8 @@ class Filesystem extends AbstractData
|
|||||||
if (!is_dir($storagedir)) {
|
if (!is_dir($storagedir)) {
|
||||||
mkdir($storagedir, 0700, true);
|
mkdir($storagedir, 0700, true);
|
||||||
}
|
}
|
||||||
return $this->_store($file, $comment);
|
self::logToChapril("COMMENT",$pasteid);
|
||||||
|
return self::_store($file, $comment);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -394,7 +399,7 @@ class Filesystem extends AbstractData
|
|||||||
public function getAllPastes()
|
public function getAllPastes()
|
||||||
{
|
{
|
||||||
$pastes = array();
|
$pastes = array();
|
||||||
foreach (new \GlobIterator($this->_path . self::PASTE_FILE_PATTERN) as $file) {
|
foreach (new GlobIterator($this->_path . self::PASTE_FILE_PATTERN) as $file) {
|
||||||
if ($file->isFile()) {
|
if ($file->isFile()) {
|
||||||
$pastes[] = $file->getBasename('.php');
|
$pastes[] = $file->getBasename('.php');
|
||||||
}
|
}
|
||||||
@ -527,4 +532,17 @@ class Filesystem extends AbstractData
|
|||||||
}
|
}
|
||||||
unlink($srcFile);
|
unlink($srcFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add log
|
||||||
|
*
|
||||||
|
* @access private
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
private function logToChapril($message, $id=null)
|
||||||
|
{
|
||||||
|
$today = date('Y-m-d H:i:s');
|
||||||
|
$texte_retour="$today $message \t$id\n";
|
||||||
|
return (bool) file_put_contents("/var/www/paste.chapril.org/paste.log",$texte_retour,FILE_APPEND|LOCK_EX);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
*
|
*
|
||||||
* an S3 compatible data backend for PrivateBin with CEPH/RadosGW in mind
|
* an S3 compatible data backend for PrivateBin with CEPH/RadosGW in mind
|
||||||
* see https://docs.ceph.com/en/latest/radosgw/s3/php/
|
* see https://docs.ceph.com/en/latest/radosgw/s3/php/
|
||||||
* based on lib/Data/GoogleCloudStorage.php from PrivateBin version 1.6.0
|
* based on lib/Data/GoogleCloudStorage.php from PrivateBin version 1.6.2
|
||||||
*
|
*
|
||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2022 Felix J. Ogris (https://ogris.de/)
|
* @copyright 2022 Felix J. Ogris (https://ogris.de/)
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace PrivateBin;
|
namespace PrivateBin;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace PrivateBin;
|
namespace PrivateBin;
|
||||||
|
29
lib/I18n.php
29
lib/I18n.php
@ -7,11 +7,14 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace PrivateBin;
|
namespace PrivateBin;
|
||||||
|
|
||||||
|
use AppendIterator;
|
||||||
|
use GlobIterator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* I18n
|
* I18n
|
||||||
*
|
*
|
||||||
@ -193,10 +196,14 @@ class I18n
|
|||||||
public static function getAvailableLanguages()
|
public static function getAvailableLanguages()
|
||||||
{
|
{
|
||||||
if (count(self::$_availableLanguages) == 0) {
|
if (count(self::$_availableLanguages) == 0) {
|
||||||
$i18n = dir(self::_getPath());
|
self::$_availableLanguages[] = 'en'; // en.json is not part of the release archive
|
||||||
while (false !== ($file = $i18n->read())) {
|
$languageIterator = new AppendIterator();
|
||||||
if (preg_match('/^([a-z]{2,3}).json$/', $file, $match) === 1) {
|
$languageIterator->append(new GlobIterator(self::_getPath('??.json')));
|
||||||
self::$_availableLanguages[] = $match[1];
|
$languageIterator->append(new GlobIterator(self::_getPath('???.json'))); // for jbo
|
||||||
|
foreach ($languageIterator as $file) {
|
||||||
|
$language = $file->getBasename('.json');
|
||||||
|
if ($language != 'en') {
|
||||||
|
self::$_availableLanguages[] = $language;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -272,6 +279,18 @@ class I18n
|
|||||||
return array_intersect_key(self::$_languageLabels, array_flip($languages));
|
return array_intersect_key(self::$_languageLabels, array_flip($languages));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* determines if the current language is written right-to-left (RTL)
|
||||||
|
*
|
||||||
|
* @access public
|
||||||
|
* @static
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public static function isRtl()
|
||||||
|
{
|
||||||
|
return in_array(self::$_language, array('ar', 'he'));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* set the default language
|
* set the default language
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace PrivateBin;
|
namespace PrivateBin;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace PrivateBin;
|
namespace PrivateBin;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace PrivateBin\Model;
|
namespace PrivateBin\Model;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace PrivateBin\Model;
|
namespace PrivateBin\Model;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace PrivateBin\Model;
|
namespace PrivateBin\Model;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace PrivateBin\Persistence;
|
namespace PrivateBin\Persistence;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace PrivateBin\Persistence;
|
namespace PrivateBin\Persistence;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace PrivateBin\Persistence;
|
namespace PrivateBin\Persistence;
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace PrivateBin\Persistence;
|
namespace PrivateBin\Persistence;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace PrivateBin;
|
namespace PrivateBin;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace PrivateBin;
|
namespace PrivateBin;
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
* @link https://sebsauvage.net/wiki/doku.php?id=php:vizhash_gd
|
* @link https://sebsauvage.net/wiki/doku.php?id=php:vizhash_gd
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 0.0.5 beta PrivateBin 1.6.0
|
* @version 0.0.5 beta PrivateBin 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace PrivateBin;
|
namespace PrivateBin;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.6.0
|
* @version 1.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace PrivateBin;
|
namespace PrivateBin;
|
||||||
|
@ -4,7 +4,7 @@ $isCpct = substr($template, 9, 8) === '-compact';
|
|||||||
$isDark = substr($template, 9, 5) === '-dark';
|
$isDark = substr($template, 9, 5) === '-dark';
|
||||||
$isPage = substr($template, -5) === '-page';
|
$isPage = substr($template, -5) === '-page';
|
||||||
?><!DOCTYPE html>
|
?><!DOCTYPE html>
|
||||||
<html lang="<?php echo I18n::_('en'); ?>">
|
<html lang="<?php echo I18n::getLanguage(); ?>"<?php echo I18n::isRtl() ? ' dir="rtl"' : ''; ?>>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta http-equiv="Content-Security-Policy" content="<?php echo I18n::encode($CSPHEADER); ?>">
|
<meta http-equiv="Content-Security-Policy" content="<?php echo I18n::encode($CSPHEADER); ?>">
|
||||||
@ -55,7 +55,7 @@ if ($ZEROBINCOMPATIBILITY) :
|
|||||||
<?php
|
<?php
|
||||||
endif;
|
endif;
|
||||||
?>
|
?>
|
||||||
<script type="text/javascript" data-cfasync="false" src="js/zlib-1.2.13.js" integrity="sha512-Lv4PCbSge8B4odE2blatgggJ/mkX1Ak21e7jL8mY3vzrVHS8FGsrEoqCrizxIJB4sW3T2w5Q+RG7hhUvp7+9tw==" crossorigin="anonymous"></script>
|
<script type="text/javascript" data-cfasync="false" src="js/zlib-1.2.13-1.js" integrity="sha512-Ltu/5qZMapdRIy4B3/iuLessSK6CvAui1C8txOX0z/uAFDJXXSwjvHsiFg9peQ2Gg/ga2tneKBfS0+00ndFsjQ==" crossorigin="anonymous"></script>
|
||||||
<script type="text/javascript" data-cfasync="false" src="js/base-x-4.0.0.js" integrity="sha512-nNPg5IGCwwrveZ8cA/yMGr5HiRS5Ps2H+s0J/mKTPjCPWUgFGGw7M5nqdnPD3VsRwCVysUh3Y8OWjeSKGkEQJQ==" crossorigin="anonymous"></script>
|
<script type="text/javascript" data-cfasync="false" src="js/base-x-4.0.0.js" integrity="sha512-nNPg5IGCwwrveZ8cA/yMGr5HiRS5Ps2H+s0J/mKTPjCPWUgFGGw7M5nqdnPD3VsRwCVysUh3Y8OWjeSKGkEQJQ==" crossorigin="anonymous"></script>
|
||||||
<script type="text/javascript" data-cfasync="false" src="js/rawinflate-0.3.js" integrity="sha512-g8uelGgJW9A/Z1tB6Izxab++oj5kdD7B4qC7DHwZkB6DGMXKyzx7v5mvap2HXueI2IIn08YlRYM56jwWdm2ucQ==" crossorigin="anonymous"></script>
|
<script type="text/javascript" data-cfasync="false" src="js/rawinflate-0.3.js" integrity="sha512-g8uelGgJW9A/Z1tB6Izxab++oj5kdD7B4qC7DHwZkB6DGMXKyzx7v5mvap2HXueI2IIn08YlRYM56jwWdm2ucQ==" crossorigin="anonymous"></script>
|
||||||
<script type="text/javascript" data-cfasync="false" src="js/bootstrap-3.4.1.js" integrity="sha512-oBTprMeNEKCnqfuqKd6sbvFzmFQtlXS3e0C/RGFV0hD6QzhHV+ODfaQbAlmY6/q0ubbwlAM/nCJjkrgA3waLzg==" crossorigin="anonymous"></script>
|
<script type="text/javascript" data-cfasync="false" src="js/bootstrap-3.4.1.js" integrity="sha512-oBTprMeNEKCnqfuqKd6sbvFzmFQtlXS3e0C/RGFV0hD6QzhHV+ODfaQbAlmY6/q0ubbwlAM/nCJjkrgA3waLzg==" crossorigin="anonymous"></script>
|
||||||
@ -71,9 +71,9 @@ if ($MARKDOWN) :
|
|||||||
<?php
|
<?php
|
||||||
endif;
|
endif;
|
||||||
?>
|
?>
|
||||||
<script type="text/javascript" data-cfasync="false" src="js/purify-3.0.4.js" integrity="sha512-N7H+3ylaOUeKuTX57cZoa42hqaG5w1rchG/IP9+BHd48W/vESgPDpb5QuDqzJE1dZhrGVCQgU8peIQGHmdGFhQ==" crossorigin="anonymous"></script>
|
<script type="text/javascript" data-cfasync="false" src="js/purify-3.0.6.js" integrity="sha512-N3y6/HOk3pbsw3lFh4O8CKKEVwu1B2CF8kinhjURf8Yqa5OfSUt+/arozxFW+TUPOPw3TsDCRT/0u7BGRTEVUw==" crossorigin="anonymous"></script>
|
||||||
<script type="text/javascript" data-cfasync="false" src="js/legacy.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-LYos+qXHIRqFf5ZPNphvtTB0cgzHUizu2wwcOwcwz/VIpRv9lpcBgPYz4uq6jx0INwCAj6Fbnl5HoKiLufS2jg==" crossorigin="anonymous"></script>
|
<script type="text/javascript" data-cfasync="false" src="js/legacy.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-LYos+qXHIRqFf5ZPNphvtTB0cgzHUizu2wwcOwcwz/VIpRv9lpcBgPYz4uq6jx0INwCAj6Fbnl5HoKiLufS2jg==" crossorigin="anonymous"></script>
|
||||||
<script type="text/javascript" data-cfasync="false" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-bvLSauH52p3a1alLFQ7YYbl95KUHaf4oVPsUeIqVEBry0c30By+chwu3o5cXUPWB/+OAz0TY00P+k+lquMsAcQ==" crossorigin="anonymous"></script>
|
<script type="text/javascript" data-cfasync="false" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-wkyB+e2HinOE+hZOEfBtNVlg2lneE09dnrDjZKd77dHowLEIxrys1La7neVov1HWcAQlwhqxnZF4yr19kDuunw==" crossorigin="anonymous"></script>
|
||||||
<!-- icon -->
|
<!-- icon -->
|
||||||
<link rel="apple-touch-icon" href="<?php echo I18n::encode($BASEPATH); ?>img/apple-touch-icon.png" sizes="180x180" />
|
<link rel="apple-touch-icon" href="<?php echo I18n::encode($BASEPATH); ?>img/apple-touch-icon.png" sizes="180x180" />
|
||||||
<link rel="icon" type="image/png" href="img/favicon-32x32.png" sizes="32x32" />
|
<link rel="icon" type="image/png" href="img/favicon-32x32.png" sizes="32x32" />
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
use PrivateBin\I18n;
|
use PrivateBin\I18n;
|
||||||
?><!DOCTYPE html>
|
?><!DOCTYPE html>
|
||||||
<html lang="<?php echo I18n::_('en'); ?>">
|
<html lang="<?php echo I18n::getLanguage(); ?>"<?php echo I18n::isRtl() ? ' dir="rtl"' : ''; ?>>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta http-equiv="Content-Security-Policy" content="<?php echo I18n::encode($CSPHEADER); ?>">
|
<meta http-equiv="Content-Security-Policy" content="<?php echo I18n::encode($CSPHEADER); ?>">
|
||||||
@ -34,7 +34,7 @@ if ($ZEROBINCOMPATIBILITY):
|
|||||||
<?php
|
<?php
|
||||||
endif;
|
endif;
|
||||||
?>
|
?>
|
||||||
<script type="text/javascript" data-cfasync="false" src="js/zlib-1.2.13.js" integrity="sha512-Lv4PCbSge8B4odE2blatgggJ/mkX1Ak21e7jL8mY3vzrVHS8FGsrEoqCrizxIJB4sW3T2w5Q+RG7hhUvp7+9tw==" crossorigin="anonymous"></script>
|
<script type="text/javascript" data-cfasync="false" src="js/zlib-1.2.13-1.js" integrity="sha512-Ltu/5qZMapdRIy4B3/iuLessSK6CvAui1C8txOX0z/uAFDJXXSwjvHsiFg9peQ2Gg/ga2tneKBfS0+00ndFsjQ==" crossorigin="anonymous"></script>
|
||||||
<script type="text/javascript" data-cfasync="false" src="js/base-x-4.0.0.js" integrity="sha512-nNPg5IGCwwrveZ8cA/yMGr5HiRS5Ps2H+s0J/mKTPjCPWUgFGGw7M5nqdnPD3VsRwCVysUh3Y8OWjeSKGkEQJQ==" crossorigin="anonymous"></script>
|
<script type="text/javascript" data-cfasync="false" src="js/base-x-4.0.0.js" integrity="sha512-nNPg5IGCwwrveZ8cA/yMGr5HiRS5Ps2H+s0J/mKTPjCPWUgFGGw7M5nqdnPD3VsRwCVysUh3Y8OWjeSKGkEQJQ==" crossorigin="anonymous"></script>
|
||||||
<script type="text/javascript" data-cfasync="false" src="js/rawinflate-0.3.js" integrity="sha512-g8uelGgJW9A/Z1tB6Izxab++oj5kdD7B4qC7DHwZkB6DGMXKyzx7v5mvap2HXueI2IIn08YlRYM56jwWdm2ucQ==" crossorigin="anonymous"></script>
|
<script type="text/javascript" data-cfasync="false" src="js/rawinflate-0.3.js" integrity="sha512-g8uelGgJW9A/Z1tB6Izxab++oj5kdD7B4qC7DHwZkB6DGMXKyzx7v5mvap2HXueI2IIn08YlRYM56jwWdm2ucQ==" crossorigin="anonymous"></script>
|
||||||
<?php
|
<?php
|
||||||
@ -49,9 +49,9 @@ if ($MARKDOWN):
|
|||||||
<?php
|
<?php
|
||||||
endif;
|
endif;
|
||||||
?>
|
?>
|
||||||
<script type="text/javascript" data-cfasync="false" src="js/purify-3.0.4.js" integrity="sha512-N7H+3ylaOUeKuTX57cZoa42hqaG5w1rchG/IP9+BHd48W/vESgPDpb5QuDqzJE1dZhrGVCQgU8peIQGHmdGFhQ==" crossorigin="anonymous"></script>
|
<script type="text/javascript" data-cfasync="false" src="js/purify-3.0.6.js" integrity="sha512-N3y6/HOk3pbsw3lFh4O8CKKEVwu1B2CF8kinhjURf8Yqa5OfSUt+/arozxFW+TUPOPw3TsDCRT/0u7BGRTEVUw==" crossorigin="anonymous"></script>
|
||||||
<script type="text/javascript" data-cfasync="false" src="js/legacy.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-LYos+qXHIRqFf5ZPNphvtTB0cgzHUizu2wwcOwcwz/VIpRv9lpcBgPYz4uq6jx0INwCAj6Fbnl5HoKiLufS2jg==" crossorigin="anonymous"></script>
|
<script type="text/javascript" data-cfasync="false" src="js/legacy.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-LYos+qXHIRqFf5ZPNphvtTB0cgzHUizu2wwcOwcwz/VIpRv9lpcBgPYz4uq6jx0INwCAj6Fbnl5HoKiLufS2jg==" crossorigin="anonymous"></script>
|
||||||
<script type="text/javascript" data-cfasync="false" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-bvLSauH52p3a1alLFQ7YYbl95KUHaf4oVPsUeIqVEBry0c30By+chwu3o5cXUPWB/+OAz0TY00P+k+lquMsAcQ==" crossorigin="anonymous"></script>
|
<script type="text/javascript" data-cfasync="false" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-wkyB+e2HinOE+hZOEfBtNVlg2lneE09dnrDjZKd77dHowLEIxrys1La7neVov1HWcAQlwhqxnZF4yr19kDuunw==" crossorigin="anonymous"></script>
|
||||||
<!-- icon -->
|
<!-- icon -->
|
||||||
<link rel="apple-touch-icon" href="img/apple-touch-icon.png?<?php echo rawurlencode($VERSION); ?>" sizes="180x180" />
|
<link rel="apple-touch-icon" href="img/apple-touch-icon.png?<?php echo rawurlencode($VERSION); ?>" sizes="180x180" />
|
||||||
<link rel="icon" type="image/png" href="img/favicon-32x32.png?<?php echo rawurlencode($VERSION); ?>" sizes="32x32" />
|
<link rel="icon" type="image/png" href="img/favicon-32x32.png?<?php echo rawurlencode($VERSION); ?>" sizes="32x32" />
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
use PrivateBin\I18n;
|
use PrivateBin\I18n;
|
||||||
?><!DOCTYPE html>
|
?><!DOCTYPE html>
|
||||||
<html lang="<?php echo I18n::_('en'); ?>">
|
<html lang="<?php echo I18n::getLanguage(); ?>"<?php echo I18n::isRtl() ? ' dir="rtl"' : ''; ?>>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta http-equiv="Content-Security-Policy" content="<?php echo I18n::encode($CSPHEADER); ?>">
|
<meta http-equiv="Content-Security-Policy" content="<?php echo I18n::encode($CSPHEADER); ?>">
|
||||||
|
@ -34,7 +34,7 @@ class I18nTest extends TestCase
|
|||||||
{
|
{
|
||||||
$_COOKIE['lang'] = 'de';
|
$_COOKIE['lang'] = 'de';
|
||||||
I18n::loadTranslations();
|
I18n::loadTranslations();
|
||||||
$this->assertEquals($this->_translations['en'], I18n::_('en'), 'browser language de');
|
$this->assertEquals($_COOKIE['lang'], I18n::getLanguage(), 'browser language de');
|
||||||
$this->assertEquals('0 Stunden', I18n::_('%d hours', 0), '0 hours in German');
|
$this->assertEquals('0 Stunden', I18n::_('%d hours', 0), '0 hours in German');
|
||||||
$this->assertEquals('1 Stunde', I18n::_('%d hours', 1), '1 hour in German');
|
$this->assertEquals('1 Stunde', I18n::_('%d hours', 1), '1 hour in German');
|
||||||
$this->assertEquals('2 Stunden', I18n::_('%d hours', 2), '2 hours in German');
|
$this->assertEquals('2 Stunden', I18n::_('%d hours', 2), '2 hours in German');
|
||||||
@ -44,7 +44,7 @@ class I18nTest extends TestCase
|
|||||||
{
|
{
|
||||||
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'de-CH,de;q=0.8,en-GB;q=0.6,en-US;q=0.4,en;q=0.2,fr;q=0.0';
|
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'de-CH,de;q=0.8,en-GB;q=0.6,en-US;q=0.4,en;q=0.2,fr;q=0.0';
|
||||||
I18n::loadTranslations();
|
I18n::loadTranslations();
|
||||||
$this->assertEquals($this->_translations['en'], I18n::_('en'), 'browser language de');
|
$this->assertEquals('de', I18n::getLanguage(), 'browser language de');
|
||||||
$this->assertEquals('0 Stunden', I18n::_('%d hours', 0), '0 hours in German');
|
$this->assertEquals('0 Stunden', I18n::_('%d hours', 0), '0 hours in German');
|
||||||
$this->assertEquals('1 Stunde', I18n::_('%d hours', 1), '1 hour in German');
|
$this->assertEquals('1 Stunde', I18n::_('%d hours', 1), '1 hour in German');
|
||||||
$this->assertEquals('2 Stunden', I18n::_('%d hours', 2), '2 hours in German');
|
$this->assertEquals('2 Stunden', I18n::_('%d hours', 2), '2 hours in German');
|
||||||
@ -54,7 +54,7 @@ class I18nTest extends TestCase
|
|||||||
{
|
{
|
||||||
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'fr-CH,fr;q=0.8,en-GB;q=0.6,en-US;q=0.4,en;q=0.2,de;q=0.0';
|
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'fr-CH,fr;q=0.8,en-GB;q=0.6,en-US;q=0.4,en;q=0.2,de;q=0.0';
|
||||||
I18n::loadTranslations();
|
I18n::loadTranslations();
|
||||||
$this->assertEquals('fr', I18n::_('en'), 'browser language fr');
|
$this->assertEquals('fr', I18n::getLanguage(), 'browser language fr');
|
||||||
$this->assertEquals('0 heure', I18n::_('%d hours', 0), '0 hours in French');
|
$this->assertEquals('0 heure', I18n::_('%d hours', 0), '0 hours in French');
|
||||||
$this->assertEquals('1 heure', I18n::_('%d hours', 1), '1 hour in French');
|
$this->assertEquals('1 heure', I18n::_('%d hours', 1), '1 hour in French');
|
||||||
$this->assertEquals('2 heures', I18n::_('%d hours', 2), '2 hours in French');
|
$this->assertEquals('2 heures', I18n::_('%d hours', 2), '2 hours in French');
|
||||||
@ -64,7 +64,7 @@ class I18nTest extends TestCase
|
|||||||
{
|
{
|
||||||
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'no;q=0.8,en-GB;q=0.6,en-US;q=0.4,en;q=0.2';
|
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'no;q=0.8,en-GB;q=0.6,en-US;q=0.4,en;q=0.2';
|
||||||
I18n::loadTranslations();
|
I18n::loadTranslations();
|
||||||
$this->assertEquals('no', I18n::_('en'), 'browser language no');
|
$this->assertEquals('no', I18n::getLanguage(), 'browser language no');
|
||||||
$this->assertEquals('0 timer', I18n::_('%d hours', 0), '0 hours in Norwegian');
|
$this->assertEquals('0 timer', I18n::_('%d hours', 0), '0 hours in Norwegian');
|
||||||
$this->assertEquals('1 time', I18n::_('%d hours', 1), '1 hour in Norwegian');
|
$this->assertEquals('1 time', I18n::_('%d hours', 1), '1 hour in Norwegian');
|
||||||
$this->assertEquals('2 timer', I18n::_('%d hours', 2), '2 hours in Norwegian');
|
$this->assertEquals('2 timer', I18n::_('%d hours', 2), '2 hours in Norwegian');
|
||||||
@ -74,7 +74,7 @@ class I18nTest extends TestCase
|
|||||||
{
|
{
|
||||||
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'oc;q=0.8,en-GB;q=0.6,en-US;q=0.4,en;q=0.2';
|
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'oc;q=0.8,en-GB;q=0.6,en-US;q=0.4,en;q=0.2';
|
||||||
I18n::loadTranslations();
|
I18n::loadTranslations();
|
||||||
$this->assertEquals('oc', I18n::_('en'), 'browser language oc');
|
$this->assertEquals('oc', I18n::getLanguage(), 'browser language oc');
|
||||||
$this->assertEquals('0 ora', I18n::_('%d hours', 0), '0 hours in Occitan');
|
$this->assertEquals('0 ora', I18n::_('%d hours', 0), '0 hours in Occitan');
|
||||||
$this->assertEquals('1 ora', I18n::_('%d hours', 1), '1 hour in Occitan');
|
$this->assertEquals('1 ora', I18n::_('%d hours', 1), '1 hour in Occitan');
|
||||||
$this->assertEquals('2 oras', I18n::_('%d hours', 2), '2 hours in Occitan');
|
$this->assertEquals('2 oras', I18n::_('%d hours', 2), '2 hours in Occitan');
|
||||||
@ -84,7 +84,7 @@ class I18nTest extends TestCase
|
|||||||
{
|
{
|
||||||
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'zh;q=0.8,en-GB;q=0.6,en-US;q=0.4,en;q=0.2';
|
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'zh;q=0.8,en-GB;q=0.6,en-US;q=0.4,en;q=0.2';
|
||||||
I18n::loadTranslations();
|
I18n::loadTranslations();
|
||||||
$this->assertEquals('zh', I18n::_('en'), 'browser language zh');
|
$this->assertEquals('zh', I18n::getLanguage(), 'browser language zh');
|
||||||
$this->assertEquals('0 小时', I18n::_('%d hours', 0), '0 hours in Chinese');
|
$this->assertEquals('0 小时', I18n::_('%d hours', 0), '0 hours in Chinese');
|
||||||
$this->assertEquals('1 小时', I18n::_('%d hours', 1), '1 hour in Chinese');
|
$this->assertEquals('1 小时', I18n::_('%d hours', 1), '1 hour in Chinese');
|
||||||
$this->assertEquals('2 小时', I18n::_('%d hours', 2), '2 hours in Chinese');
|
$this->assertEquals('2 小时', I18n::_('%d hours', 2), '2 hours in Chinese');
|
||||||
@ -94,7 +94,7 @@ class I18nTest extends TestCase
|
|||||||
{
|
{
|
||||||
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'pl;q=0.8,en-GB;q=0.6,en-US;q=0.4,en;q=0.2';
|
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'pl;q=0.8,en-GB;q=0.6,en-US;q=0.4,en;q=0.2';
|
||||||
I18n::loadTranslations();
|
I18n::loadTranslations();
|
||||||
$this->assertEquals('pl', I18n::_('en'), 'browser language pl');
|
$this->assertEquals('pl', I18n::getLanguage(), 'browser language pl');
|
||||||
$this->assertEquals('1 godzina', I18n::_('%d hours', 1), '1 hour in Polish');
|
$this->assertEquals('1 godzina', I18n::_('%d hours', 1), '1 hour in Polish');
|
||||||
$this->assertEquals('2 godzina', I18n::_('%d hours', 2), '2 hours in Polish');
|
$this->assertEquals('2 godzina', I18n::_('%d hours', 2), '2 hours in Polish');
|
||||||
$this->assertEquals('12 godzinę', I18n::_('%d hours', 12), '12 hours in Polish');
|
$this->assertEquals('12 godzinę', I18n::_('%d hours', 12), '12 hours in Polish');
|
||||||
@ -109,7 +109,7 @@ class I18nTest extends TestCase
|
|||||||
{
|
{
|
||||||
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'ru;q=0.8,en-GB;q=0.6,en-US;q=0.4,en;q=0.2';
|
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'ru;q=0.8,en-GB;q=0.6,en-US;q=0.4,en;q=0.2';
|
||||||
I18n::loadTranslations();
|
I18n::loadTranslations();
|
||||||
$this->assertEquals('ru', I18n::_('en'), 'browser language ru');
|
$this->assertEquals('ru', I18n::getLanguage(), 'browser language ru');
|
||||||
$this->assertEquals('1 минуту', I18n::_('%d minutes', 1), '1 minute in Russian');
|
$this->assertEquals('1 минуту', I18n::_('%d minutes', 1), '1 minute in Russian');
|
||||||
$this->assertEquals('3 минуты', I18n::_('%d minutes', 3), '3 minutes in Russian');
|
$this->assertEquals('3 минуты', I18n::_('%d minutes', 3), '3 minutes in Russian');
|
||||||
$this->assertEquals('10 минут', I18n::_('%d minutes', 10), '10 minutes in Russian');
|
$this->assertEquals('10 минут', I18n::_('%d minutes', 10), '10 minutes in Russian');
|
||||||
@ -120,7 +120,7 @@ class I18nTest extends TestCase
|
|||||||
{
|
{
|
||||||
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'sl;q=0.8,en-GB;q=0.6,en-US;q=0.4,en;q=0.2';
|
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'sl;q=0.8,en-GB;q=0.6,en-US;q=0.4,en;q=0.2';
|
||||||
I18n::loadTranslations();
|
I18n::loadTranslations();
|
||||||
$this->assertEquals('sl', I18n::_('en'), 'browser language sl');
|
$this->assertEquals('sl', I18n::getLanguage(), 'browser language sl');
|
||||||
$this->assertEquals('0 ura', I18n::_('%d hours', 0), '0 hours in Slowene');
|
$this->assertEquals('0 ura', I18n::_('%d hours', 0), '0 hours in Slowene');
|
||||||
$this->assertEquals('1 uri', I18n::_('%d hours', 1), '1 hour in Slowene');
|
$this->assertEquals('1 uri', I18n::_('%d hours', 1), '1 hour in Slowene');
|
||||||
$this->assertEquals('2 ure', I18n::_('%d hours', 2), '2 hours in Slowene');
|
$this->assertEquals('2 ure', I18n::_('%d hours', 2), '2 hours in Slowene');
|
||||||
@ -135,7 +135,7 @@ class I18nTest extends TestCase
|
|||||||
{
|
{
|
||||||
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'cs;q=0.8,en-GB;q=0.6,en-US;q=0.4,en;q=0.2';
|
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'cs;q=0.8,en-GB;q=0.6,en-US;q=0.4,en;q=0.2';
|
||||||
I18n::loadTranslations();
|
I18n::loadTranslations();
|
||||||
$this->assertEquals('cs', I18n::_('en'), 'browser language cs');
|
$this->assertEquals('cs', I18n::getLanguage(), 'browser language cs');
|
||||||
$this->assertEquals('1 hodina', I18n::_('%d hours', 1), '1 hour in Czech');
|
$this->assertEquals('1 hodina', I18n::_('%d hours', 1), '1 hour in Czech');
|
||||||
$this->assertEquals('2 hodiny', I18n::_('%d hours', 2), '2 hours in Czech');
|
$this->assertEquals('2 hodiny', I18n::_('%d hours', 2), '2 hours in Czech');
|
||||||
$this->assertEquals('5 minut', I18n::_('%d minutes', 5), '5 minutes in Czech');
|
$this->assertEquals('5 minut', I18n::_('%d minutes', 5), '5 minutes in Czech');
|
||||||
@ -146,7 +146,7 @@ class I18nTest extends TestCase
|
|||||||
{
|
{
|
||||||
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = '*';
|
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = '*';
|
||||||
I18n::loadTranslations();
|
I18n::loadTranslations();
|
||||||
$this->assertTrue(strlen(I18n::_('en')) >= 2, 'browser language any');
|
$this->assertTrue(strlen(I18n::getLanguage()) >= 2, 'browser language any');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testVariableInjection()
|
public function testVariableInjection()
|
||||||
|
Loading…
Reference in New Issue
Block a user