{"title":"Lokalisering av format","version":"6.1","locale":"sv","docname":"topics/i18n/formatting","url":"/sv/6.1/topics/i18n/formatting/","canonical":"https://djangodocs.dev/sv/6.1/topics/i18n/formatting/","summary":"Översikt Link to this heading # Djangos formateringssystem kan visa datum, tider och siffror i mallar med hjälp av det format som anges för den aktuella locale .…","html":"<h1>Lokalisering av format<a class=\"heading-anchor\" href=\"#format-localization\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<section id=\"overview\">\n<h2>Översikt<a class=\"heading-anchor\" href=\"#overview\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Djangos formateringssystem kan visa datum, tider och siffror i mallar med hjälp av det format som anges för den aktuella <a class=\"reference internal\" href=\"/sv/6.1/topics/i18n/#term-locale-name\"><span class=\"xref std std-term\">locale</span></a>. Det hanterar också lokaliserad inmatning i formulär.</p>\n<p>Två användare som får tillgång till samma innehåll kan se datum, tider och siffror formaterade på olika sätt, beroende på formaten för deras aktuella plats.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p>För att aktivera talformatering med tusentalsavgränsare måste du ange <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-USE_THOUSAND_SEPARATOR\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_THOUSAND_SEPARATOR</span> <span class=\"pre\">=</span> <span class=\"pre\">True</span></code></a> i din inställningsfil. Alternativt kan du använda <a class=\"reference internal\" href=\"/sv/6.1/ref/contrib/humanize/#std-templatefilter-intcomma\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">intcomma</span></code></a> för att formatera siffror i din mall.</p>\n</aside>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p>Det finns en relaterad <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-USE_I18N\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_I18N</span></code></a>-inställning som styr om Django ska aktivera översättning. Se <a class=\"reference internal\" href=\"/sv/6.1/topics/i18n/translation/\"><span class=\"doc\">Översättning</span></a> för mer information.</p>\n</aside>\n</section>\n<section id=\"locale-aware-input-in-forms\">\n<h2>Lokalanpassad inmatning i formulär<a class=\"heading-anchor\" href=\"#locale-aware-input-in-forms\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>När formatering är aktiverat kan Django använda lokala format när datum, tider och siffror analyseras i formulär. Det innebär att den försöker olika format för olika lokala när den gissar det format som används av användaren när han eller hon matar in data i formulär.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p>Django använder andra format för att visa data än de som används för att analysera data. Framför allt kan formaten för att analysera datum inte använda <code class=\"docutils literal notranslate\"><span class=\"pre\">%a</span></code> (förkortat veckodagsnamn), <code class=\"docutils literal notranslate\"><span class=\"pre\">%A</span></code> (fullständigt veckodagsnamn), <code class=\"docutils literal notranslate\"><span class=\"pre\">%b</span></code> (förkortat månadsnamn), <code class=\"docutils literal notranslate\"><span class=\"pre\">%B</span></code> (fullständigt månadsnamn) eller <code class=\"docutils literal notranslate\"><span class=\"pre\">%p</span></code> (AM/PM).</p>\n</aside>\n<p>För att aktivera ett formulärfält för att lokalisera in- och utdata använder du dess <code class=\"docutils literal notranslate\"><span class=\"pre\">localize</span></code>-argument:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">CashRegisterForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n    <span class=\"n\">product</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n    <span class=\"n\">revenue</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">DecimalField</span><span class=\"p\">(</span><span class=\"n\">max_digits</span><span class=\"o\">=</span><span class=\"mi\">4</span><span class=\"p\">,</span> <span class=\"n\">decimal_places</span><span class=\"o\">=</span><span class=\"mi\">2</span><span class=\"p\">,</span> <span class=\"n\">localize</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n</code></pre></div>\n<section id=\"locale-specific-helpers\">\n<h3>Locale specific helpers<a class=\"heading-anchor\" href=\"#locale-specific-helpers\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>For country specific form fields, validation, and data formats that are not\nincluded in Django itself, consider using the <a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/django-localflavor/\">django-localflavor</a>\npackage, which provides localized form fields and utilities for many countries\nand regions (<a class=\"reference external\" href=\"https://django-localflavor.readthedocs.io/\">documentation</a>).</p>\n</section>\n</section>\n<section id=\"controlling-localization-in-templates\">\n<span id=\"topic-l10n-templates\"></span><h2>Styrning av lokalisering i mallar<a class=\"heading-anchor\" href=\"#controlling-localization-in-templates\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Django försöker använda ett lokalspecifikt format när det skriver ut ett värde i en mall.</p>\n<p>Det är dock inte alltid lämpligt att använda lokaliserade värden - om du t.ex. skriver ut JavaScript eller XML som är utformat för att vara maskinläsbart vill du alltid använda icke-lokaliserade värden. Du kanske också vill använda lokalisering i utvalda mallar i stället för att använda lokalisering överallt.</p>\n<p>För att möjliggöra en fin kontroll över användningen av lokalisering tillhandahåller Django mallbiblioteket <code class=\"docutils literal notranslate\"><span class=\"pre\">l10n</span></code> som innehåller följande taggar och filter.</p>\n<section id=\"template-tags\">\n<h3>Malltaggar<a class=\"heading-anchor\" href=\"#template-tags\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<section id=\"localize\">\n<span id=\"std-templatetag-localize\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">lokalisera</span></code><a class=\"heading-anchor\" href=\"#localize\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Aktiverar eller inaktiverar lokalisering av mallvariabler i det block som ingår.</p>\n<p>För att aktivera eller avaktivera lokalisering för ett mallblock, använd:</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"cp\">{%</span> <span class=\"k\">load</span> <span class=\"nv\">l10n</span> <span class=\"cp\">%}</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">localize</span> <span class=\"nv\">on</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{{</span> <span class=\"nv\">value</span> <span class=\"cp\">}}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endlocalize</span> <span class=\"cp\">%}</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">localize</span> <span class=\"nv\">off</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{{</span> <span class=\"nv\">value</span> <span class=\"cp\">}}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endlocalize</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>När lokalisering är inaktiverad tillämpas formaten <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#settings-l10n\"><span class=\"std std-ref\">lokaliseringsinställningar</span></a>.</p>\n<p>Se <a class=\"reference internal\" href=\"#std-templatefilter-localize\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">localize</span></code></a> och <a class=\"reference internal\" href=\"#std-templatefilter-unlocalize\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">unlocalize</span></code></a> för mallfilter som gör samma sak per variabel.</p>\n</section>\n</section>\n<section id=\"template-filters\">\n<h3>Mallfilter<a class=\"heading-anchor\" href=\"#template-filters\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<section id=\"std-templatefilter-localize\">\n<span id=\"id1\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">lokalisera</span></code><a class=\"heading-anchor\" href=\"#std-templatefilter-localize\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Tvingar fram lokalisering av ett enda värde.</p>\n<p>Till exempel:</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"cp\">{%</span> <span class=\"k\">load</span> <span class=\"nv\">l10n</span> <span class=\"cp\">%}</span>\n\n<span class=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">localize</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>För att inaktivera lokalisering för ett enskilt värde, använd <a class=\"reference internal\" href=\"#std-templatefilter-unlocalize\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">unlocalize</span></code></a>. För att kontrollera lokalisering över en stor del av en mall, använd <a class=\"reference internal\" href=\"#std-templatetag-localize\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">localize</span></code></a> malltagg.</p>\n</section>\n<section id=\"unlocalize\">\n<span id=\"std-templatefilter-unlocalize\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">avlokalisera</span></code><a class=\"heading-anchor\" href=\"#unlocalize\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Tvingar ett enskilt värde att skrivas ut utan lokalisering.</p>\n<p>Till exempel:</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"cp\">{%</span> <span class=\"k\">load</span> <span class=\"nv\">l10n</span> <span class=\"cp\">%}</span>\n\n<span class=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">unlocalize</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>För att tvinga fram lokalisering av ett enda värde, använd <a class=\"reference internal\" href=\"#std-templatefilter-localize\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">localize</span></code></a>. För att kontrollera lokalisering över en stor del av en mall, använd <a class=\"reference internal\" href=\"#std-templatetag-localize\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">localize</span></code></a> malltagg.</p>\n<p>Returnerar en strängrepresentation för tal (<code class=\"docutils literal notranslate\"><span class=\"pre\">int</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">float</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">Decimal</span></code>) med <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#settings-l10n\"><span class=\"std std-ref\">lokaliseringsinställningar</span></a>-formaten tillämpade.</p>\n</section>\n</section>\n</section>\n<section id=\"creating-custom-format-files\">\n<span id=\"custom-format-files\"></span><h2>Skapa anpassade formatfiler<a class=\"heading-anchor\" href=\"#creating-custom-format-files\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Django tillhandahåller formatdefinitioner för många lokala språk, men ibland kanske du vill skapa dina egna, eftersom det inte finns någon formatfil för ditt lokala språk, eller för att du vill skriva över några av värdena.</p>\n<p>To use custom formats, specify the path where you’ll place format files\nfirst. To do that, set your <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-FORMAT_MODULE_PATH\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FORMAT_MODULE_PATH</span></code></a> setting to the\npackage where format files will exist, for instance:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">FORMAT_MODULE_PATH</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"s2\">&quot;mysite.formats&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;some_app.formats&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Filerna placeras inte direkt i den här katalogen utan i en katalog med samma namn som den lokala, och måste ha namnet <code class=\"docutils literal notranslate\"><span class=\"pre\">formats.py</span></code>. Var försiktig så att du inte lägger känslig information i dessa filer eftersom värdena inuti kan exponeras om du skickar strängen till <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.formats.get_format()</span></code> (används av <a class=\"reference internal\" href=\"/sv/6.1/ref/templates/builtins/#std-templatefilter-date\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">date</span></code></a> mallfilter).</p>\n<p>För att anpassa de engelska formaten skulle en struktur som denna behövas:</p>\n<div class=\"code-block\" data-language=\"text\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Text</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Text code\"><code>mysite/\n    formats/\n        __init__.py\n        en/\n            __init__.py\n            formats.py\n</code></pre></div>\n<p>där <code class=\"file docutils literal notranslate\"><span class=\"pre\">formats.py</span></code> innehåller anpassade formatdefinitioner. Till exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">THOUSAND_SEPARATOR</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;</span><span class=\"se\">\\xa0</span><span class=\"s2\">&quot;</span>\n</code></pre></div>\n<p>för att använda ett obrutet mellanslag (Unicode <code class=\"docutils literal notranslate\"><span class=\"pre\">00A0</span></code>) som tusentalsavgränsare, i stället för standardkommat på engelska.</p>\n</section>\n<section id=\"limitations-of-the-provided-locale-formats\">\n<h2>Begränsningar för de lokala format som tillhandahålls<a class=\"heading-anchor\" href=\"#limitations-of-the-provided-locale-formats\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Vissa lokala språk använder kontextkänsliga format för siffror, vilket Djangos lokaliseringssystem inte kan hantera automatiskt.</p>\n<section id=\"switzerland-german-french\">\n<h3>Schweiz (Tyska, franska)<a class=\"heading-anchor\" href=\"#switzerland-german-french\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Det schweiziska talformatet varierar traditionellt beroende på sammanhanget. Till exempel kan monetära värden använda en punkt som decimalavgränsare (<code class=\"docutils literal notranslate\"><span class=\"pre\">Fr.</span> <span class=\"pre\">23,50</span></code>), medan mått ofta använder ett komma (<code class=\"docutils literal notranslate\"><span class=\"pre\">22,5</span> <span class=\"pre\">m</span></code>). Djangos lokaliseringssystem stöder inte sådana kontextspecifika variationer automatiskt.</p>\n<p>Det lokala formatet som tillhandahålls av Django använder generiska separatorer, ett komma för decimaler och ett mellanslag för tusentalsseparatorer.</p>\n</section>\n</section>","rootId":"format-localization","toc":[{"title":"Översikt","anchor":"overview","children":[]},{"title":"Lokalanpassad inmatning i formulär","anchor":"locale-aware-input-in-forms","children":[{"title":"Locale specific helpers","anchor":"locale-specific-helpers","children":[]}]},{"title":"Styrning av lokalisering i mallar","anchor":"controlling-localization-in-templates","children":[{"title":"Malltaggar","anchor":"template-tags","children":[{"title":"lokalisera","anchor":"localize","children":[]}]},{"title":"Mallfilter","anchor":"template-filters","children":[{"title":"lokalisera","anchor":"std-templatefilter-localize","children":[]},{"title":"avlokalisera","anchor":"unlocalize","children":[]}]}]},{"title":"Skapa anpassade formatfiler","anchor":"creating-custom-format-files","children":[]},{"title":"Begränsningar för de lokala format som tillhandahålls","anchor":"limitations-of-the-provided-locale-formats","children":[{"title":"Schweiz (Tyska, franska)","anchor":"switzerland-german-french","children":[]}]}],"breadcrumbs":[{"docname":"topics/index","title":"Använda Django","url":"/sv/6.1/topics/"},{"docname":"topics/i18n/index","title":"Internationalisering och lokalisering","url":"/sv/6.1/topics/i18n/"}],"prev":{"docname":"topics/i18n/translation","title":"Översättning","url":"/sv/6.1/topics/i18n/translation/"},"next":{"docname":"topics/i18n/timezones","title":"Tidszoner","url":"/sv/6.1/topics/i18n/timezones/"},"formats":{"html":"/sv/6.1/topics/i18n/formatting/","markdown":"/sv/6.1/topics/i18n/formatting.md","json":"/sv/6.1/topics/i18n/formatting.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/topics/i18n/formatting.txt","official":"https://docs.djangoproject.com/sv/6.1/topics/i18n/formatting/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}