Merge branch 'master' into dev
This commit is contained in:
commit
da2229a303
14 changed files with 65 additions and 24 deletions
2
README.md
vendored
2
README.md
vendored
|
@ -44,7 +44,7 @@ The overall goal is to create an easily self-hostable, decentralized alternative
|
||||||
|
|
||||||
Each lemmy server can set its own moderation policy; appointing site-wide admins, and community moderators to keep out the trolls, and foster a healthy, non-toxic environment where all can feel comfortable contributing.
|
Each lemmy server can set its own moderation policy; appointing site-wide admins, and community moderators to keep out the trolls, and foster a healthy, non-toxic environment where all can feel comfortable contributing.
|
||||||
|
|
||||||
*Note: Federation is still in active development*
|
*Note: Federation is still in active development and the WebSocket, as well as, HTTP API are currently unstable*
|
||||||
|
|
||||||
### Why's it called Lemmy?
|
### Why's it called Lemmy?
|
||||||
|
|
||||||
|
|
2
ansible/VERSION
vendored
2
ansible/VERSION
vendored
|
@ -1 +1 @@
|
||||||
v0.6.69
|
v0.6.71
|
||||||
|
|
6
docker/prod/docker-compose.yml
vendored
6
docker/prod/docker-compose.yml
vendored
|
@ -1,4 +1,4 @@
|
||||||
version: '3.3'
|
version: '2.2'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
postgres:
|
postgres:
|
||||||
|
@ -12,7 +12,7 @@ services:
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
lemmy:
|
lemmy:
|
||||||
image: dessalines/lemmy:v0.6.69
|
image: dessalines/lemmy:v0.6.71
|
||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:8536:8536"
|
- "127.0.0.1:8536:8536"
|
||||||
restart: always
|
restart: always
|
||||||
|
@ -32,6 +32,7 @@ services:
|
||||||
volumes:
|
volumes:
|
||||||
- ./volumes/pictshare:/usr/share/nginx/html/data
|
- ./volumes/pictshare:/usr/share/nginx/html/data
|
||||||
restart: always
|
restart: always
|
||||||
|
mem_limit: 100m
|
||||||
|
|
||||||
iframely:
|
iframely:
|
||||||
image: dogbin/iframely:latest
|
image: dogbin/iframely:latest
|
||||||
|
@ -40,3 +41,4 @@ services:
|
||||||
volumes:
|
volumes:
|
||||||
- ./iframely.config.local.js:/iframely/config.local.js:ro
|
- ./iframely.config.local.js:/iframely/config.local.js:ro
|
||||||
restart: always
|
restart: always
|
||||||
|
mem_limit: 100m
|
||||||
|
|
2
docs/src/contributing_websocket_http_api.md
vendored
2
docs/src/contributing_websocket_http_api.md
vendored
|
@ -1,6 +1,6 @@
|
||||||
# Lemmy API
|
# Lemmy API
|
||||||
|
|
||||||
*Note: this may lag behind the actual API endpoints [here](../server/src/api).*
|
*Note: this may lag behind the actual API endpoints [here](../server/src/api). The API should be considered unstable and may change any time.*
|
||||||
|
|
||||||
<!-- toc -->
|
<!-- toc -->
|
||||||
|
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
pub const VERSION: &str = "v0.6.69";
|
pub const VERSION: &str = "v0.6.71";
|
||||||
|
|
5
ui/src/components/sponsors.tsx
vendored
5
ui/src/components/sponsors.tsx
vendored
|
@ -10,10 +10,9 @@ interface SilverUser {
|
||||||
}
|
}
|
||||||
|
|
||||||
let general = [
|
let general = [
|
||||||
|
'Ernest Wiśniewski',
|
||||||
|
'HN',
|
||||||
'Forrest Weghorst',
|
'Forrest Weghorst',
|
||||||
'Serge Tarkovski',
|
|
||||||
'alexx henry',
|
|
||||||
'Nathan J. Goode',
|
|
||||||
'Andre Vallestero',
|
'Andre Vallestero',
|
||||||
'NotTooHighToHack',
|
'NotTooHighToHack',
|
||||||
];
|
];
|
||||||
|
|
10
ui/src/i18next.ts
vendored
10
ui/src/i18next.ts
vendored
|
@ -16,9 +16,14 @@ import { fi } from './translations/fi';
|
||||||
import { ca } from './translations/ca';
|
import { ca } from './translations/ca';
|
||||||
import { fa } from './translations/fa';
|
import { fa } from './translations/fa';
|
||||||
import { hi } from './translations/hi';
|
import { hi } from './translations/hi';
|
||||||
|
import { pl } from './translations/pl';
|
||||||
import { pt_BR } from './translations/pt_BR';
|
import { pt_BR } from './translations/pt_BR';
|
||||||
import { ja } from './translations/ja';
|
import { ja } from './translations/ja';
|
||||||
import { ka } from './translations/ka';
|
import { ka } from './translations/ka';
|
||||||
|
import { gl } from './translations/gl';
|
||||||
|
import { tr } from './translations/tr';
|
||||||
|
import { hu } from './translations/hu';
|
||||||
|
import { uk } from './translations/uk';
|
||||||
|
|
||||||
// https://github.com/nimbusec-oss/inferno-i18next/blob/master/tests/T.test.js#L66
|
// https://github.com/nimbusec-oss/inferno-i18next/blob/master/tests/T.test.js#L66
|
||||||
const resources = {
|
const resources = {
|
||||||
|
@ -39,8 +44,13 @@ const resources = {
|
||||||
fi,
|
fi,
|
||||||
ca,
|
ca,
|
||||||
fa,
|
fa,
|
||||||
|
pl,
|
||||||
pt_BR,
|
pt_BR,
|
||||||
ja,
|
ja,
|
||||||
|
gl,
|
||||||
|
tr,
|
||||||
|
hu,
|
||||||
|
uk,
|
||||||
};
|
};
|
||||||
|
|
||||||
function format(value: any, format: any, lng: any): any {
|
function format(value: any, format: any, lng: any): any {
|
||||||
|
|
42
ui/src/utils.ts
vendored
42
ui/src/utils.ts
vendored
|
@ -12,10 +12,15 @@ import 'moment/locale/it';
|
||||||
import 'moment/locale/fi';
|
import 'moment/locale/fi';
|
||||||
import 'moment/locale/ca';
|
import 'moment/locale/ca';
|
||||||
import 'moment/locale/fa';
|
import 'moment/locale/fa';
|
||||||
|
import 'moment/locale/pl';
|
||||||
import 'moment/locale/pt-br';
|
import 'moment/locale/pt-br';
|
||||||
import 'moment/locale/ja';
|
import 'moment/locale/ja';
|
||||||
import 'moment/locale/ka';
|
import 'moment/locale/ka';
|
||||||
import 'moment/locale/hi';
|
import 'moment/locale/hi';
|
||||||
|
import 'moment/locale/gl';
|
||||||
|
import 'moment/locale/tr';
|
||||||
|
import 'moment/locale/hu';
|
||||||
|
import 'moment/locale/uk';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
UserOperation,
|
UserOperation,
|
||||||
|
@ -66,15 +71,20 @@ export const languages = [
|
||||||
{ code: 'eo', name: 'Esperanto' },
|
{ code: 'eo', name: 'Esperanto' },
|
||||||
{ code: 'es', name: 'Español' },
|
{ code: 'es', name: 'Español' },
|
||||||
{ code: 'de', name: 'Deutsch' },
|
{ code: 'de', name: 'Deutsch' },
|
||||||
|
{ code: 'gl', name: 'Galego' },
|
||||||
|
{ code: 'hu', name: 'Magyar Nyelv' },
|
||||||
{ code: 'ka', name: 'ქართული ენა' },
|
{ code: 'ka', name: 'ქართული ენა' },
|
||||||
{ code: 'hi', name: 'मानक हिन्दी' },
|
{ code: 'hi', name: 'मानक हिन्दी' },
|
||||||
{ code: 'fa', name: 'فارسی' },
|
{ code: 'fa', name: 'فارسی' },
|
||||||
{ code: 'ja', name: '日本語' },
|
{ code: 'ja', name: '日本語' },
|
||||||
|
{ code: 'pl', name: 'Polski' },
|
||||||
{ code: 'pt_BR', name: 'Português Brasileiro' },
|
{ code: 'pt_BR', name: 'Português Brasileiro' },
|
||||||
{ code: 'zh', name: '中文' },
|
{ code: 'zh', name: '中文' },
|
||||||
{ code: 'fi', name: 'Suomi' },
|
{ code: 'fi', name: 'Suomi' },
|
||||||
{ code: 'fr', name: 'Français' },
|
{ code: 'fr', name: 'Français' },
|
||||||
{ code: 'sv', name: 'Svenska' },
|
{ code: 'sv', name: 'Svenska' },
|
||||||
|
{ code: 'tr', name: 'Türkçe' },
|
||||||
|
{ code: 'uk', name: 'українська мова' },
|
||||||
{ code: 'ru', name: 'Русский' },
|
{ code: 'ru', name: 'Русский' },
|
||||||
{ code: 'nl', name: 'Nederlands' },
|
{ code: 'nl', name: 'Nederlands' },
|
||||||
{ code: 'it', name: 'Italiano' },
|
{ code: 'it', name: 'Italiano' },
|
||||||
|
@ -366,6 +376,8 @@ export function getMomentLanguage(): string {
|
||||||
lang = 'ca';
|
lang = 'ca';
|
||||||
} else if (lang.startsWith('fa')) {
|
} else if (lang.startsWith('fa')) {
|
||||||
lang = 'fa';
|
lang = 'fa';
|
||||||
|
} else if (lang.startsWith('pl')) {
|
||||||
|
lang = 'pl';
|
||||||
} else if (lang.startsWith('pt')) {
|
} else if (lang.startsWith('pt')) {
|
||||||
lang = 'pt-br';
|
lang = 'pt-br';
|
||||||
} else if (lang.startsWith('ja')) {
|
} else if (lang.startsWith('ja')) {
|
||||||
|
@ -378,6 +390,14 @@ export function getMomentLanguage(): string {
|
||||||
lang = 'el';
|
lang = 'el';
|
||||||
} else if (lang.startsWith('eu')) {
|
} else if (lang.startsWith('eu')) {
|
||||||
lang = 'eu';
|
lang = 'eu';
|
||||||
|
} else if (lang.startsWith('gl')) {
|
||||||
|
lang = 'gl';
|
||||||
|
} else if (lang.startsWith('tr')) {
|
||||||
|
lang = 'tr';
|
||||||
|
} else if (lang.startsWith('hu')) {
|
||||||
|
lang = 'hu';
|
||||||
|
} else if (lang.startsWith('uk')) {
|
||||||
|
lang = 'uk';
|
||||||
} else {
|
} else {
|
||||||
lang = 'en';
|
lang = 'en';
|
||||||
}
|
}
|
||||||
|
@ -863,14 +883,18 @@ export function previewLines(text: string, lines: number = 3): string {
|
||||||
}
|
}
|
||||||
|
|
||||||
function canUseWebP() {
|
function canUseWebP() {
|
||||||
var elem = document.createElement('canvas');
|
// TODO pictshare might have a webp conversion bug, try disabling this
|
||||||
|
|
||||||
if (!!(elem.getContext && elem.getContext('2d'))) {
|
|
||||||
var testString = !(window.mozInnerScreenX == null) ? 'png' : 'webp';
|
|
||||||
// was able or not to get WebP representation
|
|
||||||
return elem.toDataURL('image/webp').startsWith('data:image/' + testString);
|
|
||||||
}
|
|
||||||
|
|
||||||
// very old browser like IE 8, canvas not supported
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
// var elem = document.createElement('canvas');
|
||||||
|
// if (!!(elem.getContext && elem.getContext('2d'))) {
|
||||||
|
// var testString = !(window.mozInnerScreenX == null) ? 'png' : 'webp';
|
||||||
|
// // was able or not to get WebP representation
|
||||||
|
// return (
|
||||||
|
// elem.toDataURL('image/webp').startsWith('data:image/' + testString)
|
||||||
|
// );
|
||||||
|
// }
|
||||||
|
|
||||||
|
// // very old browser like IE 8, canvas not supported
|
||||||
|
// return false;
|
||||||
}
|
}
|
||||||
|
|
2
ui/src/version.ts
vendored
2
ui/src/version.ts
vendored
|
@ -1 +1 @@
|
||||||
export const version: string = 'v0.6.69';
|
export const version: string = 'v0.6.71';
|
||||||
|
|
1
ui/translations/gl.json
vendored
Normal file
1
ui/translations/gl.json
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{}
|
1
ui/translations/hu.json
vendored
Normal file
1
ui/translations/hu.json
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{}
|
12
ui/translations/pl.json
vendored
12
ui/translations/pl.json
vendored
|
@ -65,14 +65,14 @@
|
||||||
"remove_as_admin": "wycofaj uprawnienia administratora",
|
"remove_as_admin": "wycofaj uprawnienia administratora",
|
||||||
"appoint_as_admin": "przyznaj uprawnienia administratora",
|
"appoint_as_admin": "przyznaj uprawnienia administratora",
|
||||||
"remove": "usuń",
|
"remove": "usuń",
|
||||||
"removed": "usunięte",
|
"removed": "usunięte przez moderatora",
|
||||||
"locked": "zablokowane",
|
"locked": "zablokowane",
|
||||||
"stickied": "przyklejone",
|
"stickied": "przyklejone",
|
||||||
"reason": "Powód",
|
"reason": "Powód",
|
||||||
"mark_as_read": "zaznacz jako przeczytane",
|
"mark_as_read": "zaznacz jako przeczytane",
|
||||||
"mark_as_unread": "zaznacz jako nieprzeczytane",
|
"mark_as_unread": "zaznacz jako nieprzeczytane",
|
||||||
"delete": "usuń",
|
"delete": "usuń",
|
||||||
"deleted": "usunięte",
|
"deleted": "usunięte przez autora",
|
||||||
"delete_account": "Usuń Konto",
|
"delete_account": "Usuń Konto",
|
||||||
"delete_account_confirm": "Ostrzeżenie: twoje dane zostaną bezpowrotnie usunięte. Wpisz swoje hasło aby potwierdzić.",
|
"delete_account_confirm": "Ostrzeżenie: twoje dane zostaną bezpowrotnie usunięte. Wpisz swoje hasło aby potwierdzić.",
|
||||||
"restore": "przywróć",
|
"restore": "przywróć",
|
||||||
|
@ -189,7 +189,7 @@
|
||||||
"theme": "Motyw",
|
"theme": "Motyw",
|
||||||
"sponsors": "Sponsorzy",
|
"sponsors": "Sponsorzy",
|
||||||
"sponsors_of_lemmy": "Sponsorzy projektu Lemmy",
|
"sponsors_of_lemmy": "Sponsorzy projektu Lemmy",
|
||||||
"sponsor_message": "Lemmy jest wolnym, <1>otwartoźródłowym</1> oprogramowaniem, co oznacza zero reklam, opłat, czy innych form kapitalizacji, od zawsze na zawsze. Twoje darowizny idą bezpośrednio na rozwój projektu w pełno-etatowym wymiarze. Specjalne wyrazy podziękowania dla następujących osób:",
|
"sponsor_message": "Lemmy jest wolnym, <1>otwartoźródłowym</1> oprogramowaniem, bez reklam, opłat, czy innych form kapitalizacji, od zawsze na zawsze. Twoje darowizny idą bezpośrednio na rozwój projektu w pełno-etatowym wymiarze. Specjalne wyrazy podziękowania dla następujących osób:",
|
||||||
"support_on_patreon": "Wspieraj w serwisie Patreon",
|
"support_on_patreon": "Wspieraj w serwisie Patreon",
|
||||||
"support_on_liberapay": "Wspieraj na Liberapay",
|
"support_on_liberapay": "Wspieraj na Liberapay",
|
||||||
"donate_to_lemmy": "Przekaż datek na Lemmiego",
|
"donate_to_lemmy": "Przekaż datek na Lemmiego",
|
||||||
|
@ -209,7 +209,7 @@
|
||||||
"are_you_sure": "na pewno?",
|
"are_you_sure": "na pewno?",
|
||||||
"no": "nie",
|
"no": "nie",
|
||||||
"powered_by": "Powered by",
|
"powered_by": "Powered by",
|
||||||
"landing": "Lemmy jest <1>agregatorem linków</1> / alternatywą dla reddita. Jest przeznaczony do działania w ramach cyfrowej przestrzeni nazywanej <2>fediverse<2>. <3></3>Opiera się na samodzielnym hostingu, posiada aktualizowane na żywo wątki z komentarzami, i zajmuje bardzo mało miejsce (<4>~80kB</4>). Federacja w ramach sieci ActivityPub jest w planach. <5></5>Ta wersja jest <6>bardzo wczesną wersją beta</6>, co oznacza, że wiele funkcji nadal nie działa tak jak powinny. <7></7><8>Pod tym adresem</8> można sugerować nową funkcjonalność i zgłaszać błędy.<9></9>Stworzono z wykorzystaniem <10>Rust</10>, <11>Actix</11>, <12>Inferno</12>, <13>Typescript</13>.",
|
"landing_0": "Lemmy jest <1>agregatorem linków</1> / alternatywą dla reddita. Jest przeznaczony do działania w ramach cyfrowej przestrzeni nazywanej <2>fediverse</2>. <3></3>Opiera się na samodzielnym hostingu, posiada aktualizowane na żywo wątki z komentarzami, i zajmuje bardzo mało miejsce (<4>~80kB</4>). Federacja w ramach sieci ActivityPub jest w planach. <5></5>Ta wersja jest <6>bardzo wczesną wersją beta</6>, co oznacza, że wiele funkcji nadal nie działa tak jak powinny. <7></7><8>Pod tym adresem</8> można sugerować nową funkcjonalność i zgłaszać błędy.<9></9>Stworzono z wykorzystaniem <10>Rust</10>, <11>Actix</11>, <12>Inferno</12>, <13>Typescript</13>.",
|
||||||
"not_logged_in": "Nie jesteś zalogowana/y.",
|
"not_logged_in": "Nie jesteś zalogowana/y.",
|
||||||
"logged_in": "Zalogowano.",
|
"logged_in": "Zalogowano.",
|
||||||
"community_ban": "Zostałaś/eś zbanowana/y z tej społeczności.",
|
"community_ban": "Zostałaś/eś zbanowana/y z tej społeczności.",
|
||||||
|
@ -260,5 +260,7 @@
|
||||||
"site_saved": "Witryna Zapisana.",
|
"site_saved": "Witryna Zapisana.",
|
||||||
"admin_settings": "Ustawienia Administratora",
|
"admin_settings": "Ustawienia Administratora",
|
||||||
"emoji_picker": "Wybór Emoji",
|
"emoji_picker": "Wybór Emoji",
|
||||||
"silver_sponsors": "Srebrni Sponsorzy to ci, którzy wpłacili co najmniej $40 na Lemmiego."
|
"silver_sponsors": "Srebrni Sponsorzy to ci, którzy wpłacili co najmniej $40 na Lemmiego.",
|
||||||
|
"select_a_community": "Wybierz społeczność",
|
||||||
|
"invalid_username": "Nieprawidłowa nazwa użytkownika."
|
||||||
}
|
}
|
||||||
|
|
1
ui/translations/tr.json
vendored
Normal file
1
ui/translations/tr.json
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{}
|
1
ui/translations/uk.json
vendored
Normal file
1
ui/translations/uk.json
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{}
|
Reference in a new issue