Pour localiser Dropzone dans les pages Asp.Net Razor, j'utilise la méthode suivante pour éviter les caractères décodés :
Créer un élément HTML pour tous les messages
<!-- localization elements -->
<div class="modal" aria-hidden="true">
<span id="dictDefaultMessage">@_localizer["Drop files here or click to upload."]</span>
<span id="dictFallbackMessage">@_localizer["Your browser does not support drag'n'drop file uploads."]</span>
<span id="dictFallbackText">@_localizer["Please use the fallback form below to upload your files like in the olden days."]</span>
<span id="dictFileTooBig">@_localizer["File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB."]</span>
<span id="dictInvalidFileType">@_localizer["You can't upload files of this type."]</span>
<span id="dictResponseError">@_localizer["Server responded with {{statusCode}} code."]</span>
<span id="dictCancelUpload">@_localizer["Cancel upload"]</span>
<span id="dictCancelUploadConfirmation">@_localizer["Are you sure you want to cancel this upload?"]</span>
<span id="dictUploadCanceled">@_localizer["Upload canceled."]</span>
<span id="dictRemoveFile">@_localizer["Delete"]</span>
<span id="dictRemoveFileConfirmation">@_localizer["Are you sure you want to delete this file?"]</span>
<span id="dictMaxFilesExceeded">@_localizer["You can not upload any more files."]</span>
<span id="dictFileSizeUnits_TB">@_localizer["TB"]</span>
<span id="dictFileSizeUnits_GB">@_localizer["GB"]</span>
<span id="dictFileSizeUnits_MB">@_localizer["MB"]</span>
<span id="dictFileSizeUnits_KB">@_localizer["KB"]</span>
<span id="dictFileSizeUnits_b">@_localizer["b"]</span>
</div>
Puis lier les messages à l'élément Dropzone :
<script>
// get elements for localization
with (Dropzone.prototype.defaultOptions) {
dictDefaultMessage = document.getElementById("dictDefaultMessage").innerText;
dictFallbackMessage = document.getElementById("dictFallbackMessage").innerText;
dictFallbackText = document.getElementById("dictFallbackText").innerText;
dictFileTooBig = document.getElementById("dictFileTooBig").innerText;
dictInvalidFileType = document.getElementById("dictInvalidFileType").innerText;
dictResponseError = document.getElementById("dictResponseError").innerText;
dictCancelUpload = document.getElementById("dictCancelUpload").innerText;
dictCancelUploadConfirmation = document.getElementById("dictCancelUploadConfirmation").innerText;
dictUploadCanceled = document.getElementById("dictUploadCanceled").innerText;
dictRemoveFile = document.getElementById("dictRemoveFile").innerText;
dictRemoveFileConfirmation = document.getElementById("dictRemoveFileConfirmation").innerText; // if this is null, the user will not be prompted when deleting file.
dictMaxFilesExceeded = document.getElementById("dictMaxFilesExceeded").innerText;
dictFileSizeUnits = {
tb: document.getElementById("dictFileSizeUnits_TB").innerText,
gb: document.getElementById("dictFileSizeUnits_GB").innerText,
mb: document.getElementById("dictFileSizeUnits_MB").innerText,
kb: document.getElementById("dictFileSizeUnits_KB").innerText,
b: document.getElementById("dictFileSizeUnits_b").innerText
};
};
</script>
Pour un exemple complet de téléchargement de fichier par glisser-déposer utilisant Dropzone, voir ce dépôt GitHub : https://github.com/LazZiya/FileUpload