Multilingual CSV Sorter
Sort CSV rows by language. Check the suggested language for each row, fix mistakes and download a file for each language.
How do I sort a CSV file by language?
Open your CSV and choose its text column. Run the language check, review the suggestions and fix any mistakes. Download a ZIP with one CSV per language and a separate file of rows that still need review.
Organize a multilingual collection.
Choose a text column, inspect the likely languages and keep uncertain rows together for review. Your original columns and cell strings stay intact.
Import a CSV
6 rows loaded · 2 original columns · No automatic saving
Candidate languages and review rules
Find a language code
aarAfarabkAbkhazianaceAchineseacuAchuar-ShiwiaradaAdangmeadyAdygheafrAfrikaansagrAguarunaaiiAssyrian Neo-AramaicajgAja (Benin)alsTosk AlbanianaltSouthern AltaiamcAmahuacaameYanesha'amhAmharicamiAmisamrAmarakaeriarbStandard ArabicarlArabelaarnMapudungunastAsturianaucWaoraniayrCentral AymaraazbSouth AzerbaijaniazjNorth AzerbaijanibamBambarabanBalinesebaxBamunbbaBaatonumbciBaoulébclCentral BikolbelBelarusianbemBemba (Zambia)benBengalibfaBaribhoBhojpuribinBinibisBislamabltTai DamboaBorabodTibetanbosBosnianbreBretonbucBushibugBuginesebulBulgarianbumBulu (Cameroon)cabGarifunacakKaqchikelcatCatalancbiChachicbrCashibo-CacataibocbsCashinahuacbtChayahuitacbuCandoshi-ShapracebCebuanocesCzechcfmFalam ChinchaChamorrochjOjitlán ChinantecchkChuukesechrCherokeechvChuvashcicChickasawcjkChokwecjsShorckbCentral KurdishcmnMandarin ChinesecnhHakha ChincniAsháninkacnrMontenegrincofColoradocosCorsicancotCaquintecpuPichis AshéninkacrhCrimean TatarcriSãotomensecrsSeselwa Creole FrenchcsaChiltepec ChinanteccswSwampy CreectdTedim ChincymWelshdagDagbanidanDanishddnDendi (Benin)deuGermandgaSouthern DagaaredipNortheastern DinkadivDhivehidjeZarmaduuDrungdyoJola-FonyidyuDyuladzoDzongkhaekkStandard EstonianellModern Greek (1453-)emkEastern ManinkakanengEnglishepoEsperantoeseEse EjjaeusBasqueeveEvenevnEvenkieweEwefaoFaroesefatFantifijFijianfinFinnishfkvKven FinnishfonFonfraFrenchfryWestern FrisianfufPularfurFriulianfuvNigerian FulfuldefvrFurgaaGagagGagauzgazWest Central OromogejGengjnGonjagkpGuinea KpelleglaScottish GaelicgldNanaigleIrishglgGalicianglvManxgswSwiss GermangucWayuugugParaguayan GuaranígujGujaratigukGumuzguuYanomamögyrGuarayuhatHaitianhauHausahawHawaiianheaNorthern Qiandong MiaohebHebrewhilHiligaynonhinHindihltMatu ChinhmsSouthern Qiandong MiaohniHanihnjHmong NjuahnsCaribbean HindustanihrvCroatianhsbUpper SorbianhunHungarianhusHuastechuuMurui HuitotohyeArmenianibbIbibioiboIgboidoIdoiduIdomaiiiSichuan YiijsSoutheast IjoikeEastern Canadian InuktitutiloIlokoinaInterlingua (International Auxiliary Language Association)indIndonesianislIcelandicitaItalianjavJavanesejivShuarjpnJapanesekaaKara-KalpakkalKalaallisutkanKannadakatGeorgiankazKazakhkbdKabardiankbpKabiyèkbrKafakdeMakondekdhTemkeaKabuverdianukekKekchíkhaKhasikhkHalh MongoliankhmKhmerkinKinyarwandakirKirghizkjhKhakaskkhKhünkmbKimbundukncCentral KanurikngKoongokoiKomi-PermyakkooKonzokorKoreankqnKaondekqsNorthern KissikriKriokrlKarelianktuKituba (Democratic Republic of Congo)kwiAwa-CuaiquerladLadinolaoLaolatLatinliaWest-Central LimbalijLigurianlinLingalalitLithuanianlldLadinlnsLamnso'lobLobilotOtuholozLoziltzLuxembourgishluaLuba-LulualueLuvalelugGandalunLundalusLushailvsStandard LatvianmadMaduresemagMagahimahMarshallesemaiMaithilimalMalayalammamMammarMarathimazCentral MazahuamcdSharanahuamcfMatsésmenMende (Sierra Leone)mfqMobamicMi'kmaqminMinangkabaumiqMískitomkdMacedonianmltMaltesemnwMonmorMoromosMossimriMaorimtoTotontepec MixemxiMozarabicmxvMetlatónoc MixtecmyaBurmesemziIxcatlán MazatecnavNavajonbaNyembanblSouth NdebelendoNdongandsLow GermannhnCentral NahuatlnioNganasanniuNiueannivGilyaknjoAo NagankuBouna KulangonldDutchnnoNorwegian NynorsknobNorwegian BokmålnotNomatsiguenganpiNepali (individual language)nsoPedinyaNyanjanymNyamwezinynNyankolenziNzimaoaaOrokociOccitan (post 1500)ojbNorthwestern OjibwaokiOkiekorhOroqenossOssetianoteMezquital OtomipamPampangapanPanjabipapPapiamentopauPalauanpbbPáezpbuNorthern PashtopcdPicardpcmNigerian PidginpesIranian PersianpisPijinpiuPintupi-LuritjapltPlateau MalagasypnbWestern PanjabipolPolishponPohnpeianporPortuguesepovUpper Guinea CrioulopplPipilprsDariqucK'iche'queQuechuaqugChimborazo Highland QuichuaquhSouth Bolivian QuechuaquyAyacucho QuechuaquzCusco QuechuaqvaAmbo-Pasco QuechuaqvcCajamarca QuechuaqvhHuamalíes-Dos de Mayo Huánuco QuechuaqvmMargos-Yarowilca-Lauricocha QuechuaqvnNorth Junín QuechuaqwhHuaylas Ancash QuechuaqxnNorthern Conchucos Ancash QuechuaqxuArequipa-La Unión QuechuararRarotonganrgnRomagnolrmnBalkan RomanirohRomanshronRomanianrunRundirupMacedo-RomanianrusRussiansagSangosahYakutsanSanskritsatSantaliscoScotsseySecoyashkShillukshnShanshpShipibo-ConibosidSidamosinSinhalaskrSaraikislkSlovakslrSalarslvSloveniansmeNorthern SamismoSamoansnaShonasnkSoninkesnnSionasomSomalisotSouthern SothospaSpanishsrcLogudorese SardiniansrpSerbiansrrSerersswSwatisukSukumasunSundanesesusSususwbMaore ComoriansweSwedishswhSwahili (individual language)tahTahitiantamTamiltatTatartbzDitammaritcaTicunatdtTetun DilitelTelugutemTimnetetTetumtgkTajiktglTagalogthaThaitirTigrinyativTivtlyTalyshtobTobatoiTonga (Zambia)tojTojolabaltonTonga (Tonga Islands)topPapantla TotonactpiTok PisintsnTswanatsoTsongatszPurepechatukTurkmenturTurkishtwiTwityvTuviniantzhTzeltaltzmCentral Atlas TamazighttzoTzotziluduUdukuigUighurukrUkrainianumbUmbunduuraUrarinaurdUrduuznNorthern UzbekvaiVaivecVenetianvenVendavepVepsvieVietnamesevmwMakhuwawarWaray (Philippines)wlnWalloonwolWolofwwaWaamaxhoXhosaxsmKasemyadYaguayaoYaoyapYapeseyddEastern YiddishykgNorthern YukaghiryorYorubayrkNenetsyuaYucatecozamMiahuatlán ZapoteczdjNgazidja ComorianzghStandard Moroccan TamazightzlmMalay (individual language)zroZáparoztuGüilá ZapoteczulZuluzybYongbei Zhuang
The detector checks at most three sections of up to 2,001 characters. A score of 1 is the closest match within a section, not a probability. Mixed languages, related languages, names and short text need human review. Single-model script guesses always require review.
Three simple steps
How to use Multilingual CSV Sorter
Paste text or import a CSV, then choose the candidate languages and review rules.
Run the detector. Inspect the candidates and correct any uncertain language assignments.
Download the results or keep a project backup to continue later.
Common questions
Good to know
Understand the result.
Keep the original.
Is this tool free, and are my files uploaded?
This tool is free with no account required. The work happens in your browser. Your input and files are not sent to a processing server.
What are the limits and details?
Language labels are heuristic suggestions. Relative scores are not probabilities and the top score within a sample is normally 1. Related languages, short text, names and mixed-language documents can be misclassified. The pinned franc-all model covers 411 ISO 639-3 language codes. At most three sections of up to 2,001 UTF-16 characters are sampled; input up to 6,000 characters is split into contiguous sections, and longer text uses beginning, middle and end. Short, close-scoring, inconsistent and single-model script results require review. Processing stays in a browser worker with a 15-second deadline; nothing is automatically saved. CSV exports preserve row order within each group and prefix formula-like cells. Spreadsheet programs may reinterpret numeric-looking text; retain the JSON project for exact cell strings. Up to 1,000 rows and 30 columns. CSV headers must be unique and every row must have the same number of cells. Blank rows with explicit empty cells remain reviewable; physically empty lines are ignored. Source CSV files and project backups must be UTF-8 and at most 6 MB. Manual assignments apply to the selected text column; changing that column clears them.