[frio] Add Dropzone dictionary strings to l10n

This commit is contained in:
Hypolite Petovan 2023-04-09 08:15:20 -04:00
parent 7a81fe1f69
commit 4db29565de
5 changed files with 81 additions and 31 deletions

View file

@ -243,22 +243,40 @@ class Page implements ArrayAccess
* being first
*/
$this->page['htmlhead'] = Renderer::replaceMacros($tpl, [
'$l10n' => [
'delitem' => $l10n->t('Delete this item?'),
'blockAuthor' => $l10n->t('Block this author? They won\'t be able to follow you nor see your public posts, and you won\'t be able to see their posts and their notifications.'),
'ignoreAuthor' => $l10n->t('Ignore this author? You won\'t be able to see their posts and their notifications.'),
'likeError' => $l10n->t('Like not successful'),
'dislikeError' => $l10n->t('Dislike not successful'),
'announceError' => $l10n->t('Sharing not successful'),
'attendError' => $l10n->t('Attendance unsuccessful'),
'srvError' => $l10n->t('Backend error'),
'netError' => $l10n->t('Network error'),
// Dropzone
'dictDefaultMessage' => $l10n->t('Drop files here to upload'),
'dictFallbackMessage' => $l10n->t("Your browser does not support drag and drop file uploads."),
'dictFallbackText' => $l10n->t('Please use the fallback form below to upload your files like in the olden days.'),
'dictFileTooBig' => $l10n->t('File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.'),
'dictInvalidFileType' => $l10n->t("You can't upload files of this type."),
'dictResponseError' => $l10n->t('Server responded with {{statusCode}} code.'),
'dictCancelUpload' => $l10n->t('Cancel upload'),
'dictUploadCanceled' => $l10n->t('Upload canceled.'),
'dictCancelUploadConfirmation' => $l10n->t('Are you sure you want to cancel this upload?'),
'dictRemoveFile' => $l10n->t('Remove file'),
'dictMaxFilesExceeded' => $l10n->t("You can't upload any more files."),
],
'$local_user' => $localUID,
'$generator' => 'Friendica' . ' ' . App::VERSION,
'$delitem' => $l10n->t('Delete this item?'),
'$blockAuthor' => $l10n->t('Block this author? They won\'t be able to follow you nor see your public posts, and you won\'t be able to see their posts and their notifications.'),
'$ignoreAuthor' => $l10n->t('Ignore this author? You won\'t be able to see their posts and their notifications.'),
'$update_interval' => $interval,
'$shortcut_icon' => $shortcut_icon,
'$touch_icon' => $touch_icon,
'$block_public' => intval($config->get('system', 'block_public')),
'$stylesheets' => $this->stylesheets,
'$likeError' => $l10n->t('Like not successful'),
'$dislikeError' => $l10n->t('Dislike not successful'),
'$announceError' => $l10n->t('Sharing not successful'),
'$attendError' => $l10n->t('Attendance unsuccessful'),
'$srvError' => $l10n->t('Backend error'),
'$netError' => $l10n->t('Network error'),
// Dropzone
'$max_imagesize' => round(\Friendica\Util\Strings::getBytesFromShorthand($config->get('system', 'maximagesize')) / 1000000, 1),

View file

@ -1,4 +1,5 @@
var DzFactory = function () {
Dropzone.autoDiscover = false;
var DzFactory = function (max_imagesize) {
this.createDropzone = function(dropSelector, textareaElementId) {
return new Dropzone(dropSelector, {
paramName: 'userfile', // The name that will be used to transfer the file
@ -6,6 +7,17 @@ var DzFactory = function () {
url: '/media/photo/upload?album=',
acceptedFiles: 'image/*',
clickable: true,
dictDefaultMessage: dzStrings.dictDefaultMessage,
dictFallbackMessage: dzStrings.dictFallbackMessage,
dictFallbackText: dzStrings.dictFallbackText,
dictFileTooBig: dzStrings.dictFileTooBig,
dictInvalidFileType: dzStrings.dictInvalidFileType,
dictResponseError: dzStrings.dictResponseError,
dictCancelUpload: dzStrings.dictCancelUpload,
dictUploadCanceled: dzStrings.dictUploadCanceled,
dictCancelUploadConfirmation: dzStrings.dictCancelUploadConfirmation,
dictRemoveFile: dzStrings.dictRemoveFile,
dictMaxFilesExceeded: dzStrings.dictMaxFilesExceeded,
accept: function(file, done) {
done();
},
@ -54,9 +66,10 @@ var DzFactory = function () {
};
this.setupDropzone = function(dropSelector, textareaElementId) {
const self = this;
var dropzone = this.createDropzone(dropSelector, textareaElementId);
$(dropSelector).on('paste', function(event) {
dzFactory.copyPaste(event, dropzone);
self.copyPaste(event, dropzone);
})
};
}

View file

@ -44,7 +44,12 @@
<script type="text/javascript" src="view/asset/imagesloaded/imagesloaded.pkgd.min.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
<script type="text/javascript" src="view/asset/base64/base64.min.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
<script type="text/javascript" src="view/asset/dompurify/dist/purify.min.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
<script type="text/javascript">
const updateInterval = {{$update_interval}};
const localUser = {{if $local_user}}{{$local_user}}{{else}}false{{/if}};
</script>
<script type="text/javascript" src="view/js/main.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
<script>
// Lifted from https://css-tricks.com/snippets/jquery/move-cursor-to-end-of-textarea-or-input/

View file

@ -103,6 +103,10 @@
<script type="text/javascript" src="view/asset/base64/base64.min.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
<script type="text/javascript" src="view/asset/dompurify/dist/purify.min.js?v={{$smarty.const.FRIENDICA_VERSION}}">
</script>
<script type="text/javascript">
const updateInterval = {{$update_interval}};
const localUser = {{if $local_user}}{{$local_user}}{{else}}false{{/if}};
</script>
<script type="text/javascript" src="view/js/main.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
<script type="text/javascript"
@ -139,7 +143,7 @@
<script type="text/javascript" src="view/theme/frio/js/textedit.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
<script type="text/javascript" src="vendor/enyo/dropzone/dist/min/dropzone.min.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
<script type="text/javascript" src="view/js/dropzone-factory.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
<script type="text/javascript"> max_imagesize = {{$max_imagesize}}; var dzFactory = new DzFactory(); Dropzone.autoDiscover = false; </script>
<script type="text/javascript"> const dzFactory = new DzFactory({{$max_imagesize}});</script>
{{* Include the strings which are needed for some js functions (e.g. translation)
They are loaded into the html <head> so that js functions can use them *}}

View file

@ -2,24 +2,34 @@
{{* Strings which are needed for some js functions (e.g. translation or the interval for page update)
They are loaded into the html <head> so that js functions can use them *}}
<script type="text/javascript">
var updateInterval = {{$update_interval}};
var localUser = {{if $local_user}}{{$local_user}}{{else}}false{{/if}};
var aStr = {
'delitem' : "{{$delitem|escape:'javascript' nofilter}}",
'blockAuthor' : "{{$blockAuthor|escape:'javascript' nofilter}}",
'ignoreAuthor' : "{{$ignoreAuthor|escape:'javascript' nofilter}}",
const aStr = {
delitem : "{{$l10n.delitem|escape:'javascript' nofilter}}",
blockAuthor : "{{$l10n.blockAuthor|escape:'javascript' nofilter}}",
ignoreAuthor : "{{$l10n.ignoreAuthor|escape:'javascript' nofilter}}",
};
const aActErr = {
like : "{{$l10n.likeError|escape:'javascript' nofilter}}",
dislike : "{{$l10n.dislikeError|escape:'javascript' nofilter}}",
announce : "{{$l10n.announceError|escape:'javascript' nofilter}}",
attendyes : "{{$l10n.attendError|escape:'javascript' nofilter}}",
attendno : "{{$l10n.attendError|escape:'javascript' nofilter}}",
attendmaybe: "{{$l10n.attendError|escape:'javascript' nofilter}}",
};
const aErrType = {
srvErr: "{{$l10n.srvError|escape:'javascript' nofilter}}",
netErr: "{{$l10n.netError|escape:'javascript' nofilter}}",
};
const dzStrings = {
dictDefaultMessage : "{{$l10n.dictDefaultMessage|escape:'javascript' nofilter}}",
dictFallbackMessage : "{{$l10n.dictFallbackMessage|escape:'javascript' nofilter}}",
dictFallbackText : "{{$l10n.dictFallbackText|escape:'javascript' nofilter}}",
dictFileTooBig : "{{$l10n.dictFileTooBig|escape:'javascript' nofilter}}",
dictInvalidFileType : "{{$l10n.dictInvalidFileType|escape:'javascript' nofilter}}",
dictResponseError : "{{$l10n.dictResponseError|escape:'javascript' nofilter}}",
dictCancelUpload : "{{$l10n.dictCancelUpload|escape:'javascript' nofilter}}",
dictUploadCanceled : "{{$l10n.dictUploadCanceled|escape:'javascript' nofilter}}",
dictCancelUploadConfirmation: "{{$l10n.dictCancelUploadConfirmation|escape:'javascript' nofilter}}",
dictRemoveFile : "{{$l10n.dictRemoveFile|escape:'javascript' nofilter}}",
dictMaxFilesExceeded : "{{$l10n.dictMaxFilesExceeded|escape:'javascript' nofilter}}",
};
var aActErr = {
'like' : "{{$likeError}}",
'dislike' : "{{$dislikeError}}",
'announce' : "{{$announceError}}",
'attendyes' : "{{$attendError}}",
'attendno' : "{{$attendError}}",
'attendmaybe' : "{{$attendError}}",
};
var aErrType = {
'srvErr' : "{{$srvError}}",
'netErr' : "{{$netError}}",
};
</script>