Merge remote-tracking branch 'upstream/master' into cake-day
This commit is contained in:
commit
10a946cab3
10 changed files with 61 additions and 11 deletions
7
ui/assets/css/main.css
vendored
7
ui/assets/css/main.css
vendored
|
@ -264,3 +264,10 @@ pre {
|
||||||
width: 0px !important;
|
width: 0px !important;
|
||||||
padding: 0 !important;
|
padding: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
br.big {
|
||||||
|
display: block;
|
||||||
|
content: "";
|
||||||
|
margin-top: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
18
ui/src/components/comment-form.tsx
vendored
18
ui/src/components/comment-form.tsx
vendored
|
@ -98,7 +98,7 @@ export class CommentForm extends Component<CommentFormProps, CommentFormState> {
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
var textarea: any = document.getElementById(this.id);
|
let textarea: any = document.getElementById(this.id);
|
||||||
autosize(textarea);
|
autosize(textarea);
|
||||||
this.tribute.attach(textarea);
|
this.tribute.attach(textarea);
|
||||||
textarea.addEventListener('tribute-replaced', () => {
|
textarea.addEventListener('tribute-replaced', () => {
|
||||||
|
@ -106,6 +106,22 @@ export class CommentForm extends Component<CommentFormProps, CommentFormState> {
|
||||||
this.setState(this.state);
|
this.setState(this.state);
|
||||||
autosize.update(textarea);
|
autosize.update(textarea);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Quoting of selected text
|
||||||
|
let selectedText = window.getSelection().toString();
|
||||||
|
if (selectedText) {
|
||||||
|
let quotedText =
|
||||||
|
selectedText
|
||||||
|
.split('\n')
|
||||||
|
.map(t => `> ${t}`)
|
||||||
|
.join('\n') + '\n\n';
|
||||||
|
this.state.commentForm.content = quotedText;
|
||||||
|
this.setState(this.state);
|
||||||
|
// Not sure why this needs a delay
|
||||||
|
setTimeout(() => autosize.update(textarea), 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea.focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidUpdate() {
|
componentDidUpdate() {
|
||||||
|
|
14
ui/src/components/comment-node.tsx
vendored
14
ui/src/components/comment-node.tsx
vendored
|
@ -196,8 +196,8 @@ export class CommentNode extends Component<CommentNodeProps, CommentNodeState> {
|
||||||
</Link>
|
</Link>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
<div
|
<button
|
||||||
className="mr-lg-4 flex-grow-1 flex-lg-grow-0 unselectable pointer mx-2"
|
class="btn btn-sm text-muted"
|
||||||
onClick={linkEvent(this, this.handleCommentCollapse)}
|
onClick={linkEvent(this, this.handleCommentCollapse)}
|
||||||
>
|
>
|
||||||
{this.state.collapsed ? (
|
{this.state.collapsed ? (
|
||||||
|
@ -209,9 +209,11 @@ export class CommentNode extends Component<CommentNodeProps, CommentNodeState> {
|
||||||
<use xlinkHref="#icon-minus-square"></use>
|
<use xlinkHref="#icon-minus-square"></use>
|
||||||
</svg>
|
</svg>
|
||||||
)}
|
)}
|
||||||
</div>
|
</button>
|
||||||
<span
|
{/* This is an expanding spacer for mobile */}
|
||||||
className={`unselectable pointer ${this.scoreColor}`}
|
<div className="mr-lg-4 flex-grow-1 flex-lg-grow-0 unselectable pointer mx-2"></div>
|
||||||
|
<button
|
||||||
|
className={`btn btn-sm p-0 unselectable pointer ${this.scoreColor}`}
|
||||||
onClick={linkEvent(node, this.handleCommentUpvote)}
|
onClick={linkEvent(node, this.handleCommentUpvote)}
|
||||||
data-tippy-content={this.pointsTippy}
|
data-tippy-content={this.pointsTippy}
|
||||||
>
|
>
|
||||||
|
@ -219,7 +221,7 @@ export class CommentNode extends Component<CommentNodeProps, CommentNodeState> {
|
||||||
<use xlinkHref="#icon-zap"></use>
|
<use xlinkHref="#icon-zap"></use>
|
||||||
</svg>
|
</svg>
|
||||||
<span class="mr-1">{this.state.score}</span>
|
<span class="mr-1">{this.state.score}</span>
|
||||||
</span>
|
</button>
|
||||||
<span className="mr-1">•</span>
|
<span className="mr-1">•</span>
|
||||||
<span>
|
<span>
|
||||||
<MomentTime data={node.comment} />
|
<MomentTime data={node.comment} />
|
||||||
|
|
10
ui/src/components/main.tsx
vendored
10
ui/src/components/main.tsx
vendored
|
@ -373,17 +373,21 @@ export class Main extends Component<any, MainState> {
|
||||||
#
|
#
|
||||||
</a>
|
</a>
|
||||||
<a href="https://en.wikipedia.org/wiki/Fediverse">#</a>
|
<a href="https://en.wikipedia.org/wiki/Fediverse">#</a>
|
||||||
<br></br>
|
<br class="big"></br>
|
||||||
<code>#</code>
|
<code>#</code>
|
||||||
<br></br>
|
<br></br>
|
||||||
<b>#</b>
|
<b>#</b>
|
||||||
<br></br>
|
<br class="big"></br>
|
||||||
<a href={repoUrl}>#</a>
|
<a href={repoUrl}>#</a>
|
||||||
<br></br>
|
<br class="big"></br>
|
||||||
<a href="https://www.rust-lang.org">#</a>
|
<a href="https://www.rust-lang.org">#</a>
|
||||||
<a href="https://actix.rs/">#</a>
|
<a href="https://actix.rs/">#</a>
|
||||||
<a href="https://infernojs.org">#</a>
|
<a href="https://infernojs.org">#</a>
|
||||||
<a href="https://www.typescriptlang.org/">#</a>
|
<a href="https://www.typescriptlang.org/">#</a>
|
||||||
|
<br class="big"></br>
|
||||||
|
<a href="https://github.com/LemmyNet/lemmy/graphs/contributors?type=a">
|
||||||
|
#
|
||||||
|
</a>
|
||||||
</T>
|
</T>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
6
ui/src/i18next.ts
vendored
6
ui/src/i18next.ts
vendored
|
@ -25,6 +25,9 @@ import { tr } from './translations/tr';
|
||||||
import { hu } from './translations/hu';
|
import { hu } from './translations/hu';
|
||||||
import { uk } from './translations/uk';
|
import { uk } from './translations/uk';
|
||||||
import { sq } from './translations/sq';
|
import { sq } from './translations/sq';
|
||||||
|
import { km } from './translations/km';
|
||||||
|
import { ga } from './translations/ga';
|
||||||
|
import { sr_Latn } from './translations/sr_Latn';
|
||||||
|
|
||||||
// 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 = {
|
||||||
|
@ -53,6 +56,9 @@ const resources = {
|
||||||
hu,
|
hu,
|
||||||
uk,
|
uk,
|
||||||
sq,
|
sq,
|
||||||
|
km,
|
||||||
|
ga,
|
||||||
|
sr_Latn,
|
||||||
};
|
};
|
||||||
|
|
||||||
function format(value: any, format: any, lng: any): any {
|
function format(value: any, format: any, lng: any): any {
|
||||||
|
|
12
ui/src/utils.ts
vendored
12
ui/src/utils.ts
vendored
|
@ -22,6 +22,9 @@ import 'moment/locale/tr';
|
||||||
import 'moment/locale/hu';
|
import 'moment/locale/hu';
|
||||||
import 'moment/locale/uk';
|
import 'moment/locale/uk';
|
||||||
import 'moment/locale/sq';
|
import 'moment/locale/sq';
|
||||||
|
import 'moment/locale/km';
|
||||||
|
import 'moment/locale/ga';
|
||||||
|
import 'moment/locale/sr';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
UserOperation,
|
UserOperation,
|
||||||
|
@ -73,9 +76,11 @@ 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: 'ga', name: 'Gaeilge' },
|
||||||
{ code: 'gl', name: 'Galego' },
|
{ code: 'gl', name: 'Galego' },
|
||||||
{ code: 'hu', name: 'Magyar Nyelv' },
|
{ code: 'hu', name: 'Magyar Nyelv' },
|
||||||
{ code: 'ka', name: 'ქართული ენა' },
|
{ code: 'ka', name: 'ქართული ენა' },
|
||||||
|
{ code: 'km', name: 'ភាសាខ្មែរ' },
|
||||||
{ code: 'hi', name: 'मानक हिन्दी' },
|
{ code: 'hi', name: 'मानक हिन्दी' },
|
||||||
{ code: 'fa', name: 'فارسی' },
|
{ code: 'fa', name: 'فارسی' },
|
||||||
{ code: 'ja', name: '日本語' },
|
{ code: 'ja', name: '日本語' },
|
||||||
|
@ -86,6 +91,7 @@ export const languages = [
|
||||||
{ code: 'fr', name: 'Français' },
|
{ code: 'fr', name: 'Français' },
|
||||||
{ code: 'sv', name: 'Svenska' },
|
{ code: 'sv', name: 'Svenska' },
|
||||||
{ code: 'sq', name: 'Shqip' },
|
{ code: 'sq', name: 'Shqip' },
|
||||||
|
{ code: 'sr_Latn', name: 'srpski' },
|
||||||
{ code: 'tr', name: 'Türkçe' },
|
{ code: 'tr', name: 'Türkçe' },
|
||||||
{ code: 'uk', name: 'Українська Mова' },
|
{ code: 'uk', name: 'Українська Mова' },
|
||||||
{ code: 'ru', name: 'Русский' },
|
{ code: 'ru', name: 'Русский' },
|
||||||
|
@ -419,6 +425,12 @@ export function getMomentLanguage(): string {
|
||||||
lang = 'uk';
|
lang = 'uk';
|
||||||
} else if (lang.startsWith('sq')) {
|
} else if (lang.startsWith('sq')) {
|
||||||
lang = 'sq';
|
lang = 'sq';
|
||||||
|
} else if (lang.startsWith('km')) {
|
||||||
|
lang = 'km';
|
||||||
|
} else if (lang.startsWith('ga')) {
|
||||||
|
lang = 'ga';
|
||||||
|
} else if (lang.startsWith('sr')) {
|
||||||
|
lang = 'sr';
|
||||||
} else {
|
} else {
|
||||||
lang = 'en';
|
lang = 'en';
|
||||||
}
|
}
|
||||||
|
|
2
ui/translations/en.json
vendored
2
ui/translations/en.json
vendored
|
@ -217,7 +217,7 @@
|
||||||
"no": "no",
|
"no": "no",
|
||||||
"powered_by": "Powered by",
|
"powered_by": "Powered by",
|
||||||
"landing_0":
|
"landing_0":
|
||||||
"Lemmy is a <1>link aggregator</1> / reddit alternative, intended to work in the <2>fediverse</2>.<3></3>It's self-hostable, has live-updating comment threads, and is tiny (<4>~80kB</4>). Federation into the ActivityPub network is on the roadmap. <5></5>This is a <6>very early beta version</6>, and a lot of features are currently broken or missing. <7></7>Suggest new features or report bugs <8>here.</8><9></9>Made with <10>Rust</10>, <11>Actix</11>, <12>Inferno</12>, <13>Typescript</13>.",
|
"Lemmy is a <1>link aggregator</1> / reddit alternative, intended to work in the <2>fediverse</2>.<3></3>It's self-hostable, has live-updating comment threads, and is tiny (<4>~80kB</4>). Federation into the ActivityPub network is on the roadmap. <5></5>This is a <6>very early beta version</6>, and a lot of features are currently broken or missing. <7></7>Suggest new features or report bugs <8>here.</8><9></9>Made with <10>Rust</10>, <11>Actix</11>, <12>Inferno</12>, <13>Typescript</13>. <14></14> <15>Thank you to our contributors: </15> dessalines, Nutomic, asonix, zacanger, and iav.",
|
||||||
"not_logged_in": "Not logged in.",
|
"not_logged_in": "Not logged in.",
|
||||||
"logged_in": "Logged in.",
|
"logged_in": "Logged in.",
|
||||||
"site_saved": "Site Saved.",
|
"site_saved": "Site Saved.",
|
||||||
|
|
1
ui/translations/ga.json
vendored
Normal file
1
ui/translations/ga.json
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{}
|
1
ui/translations/km.json
vendored
Normal file
1
ui/translations/km.json
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{}
|
1
ui/translations/sr_Latn.json
vendored
Normal file
1
ui/translations/sr_Latn.json
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{}
|
Loading…
Reference in a new issue