{
  "_id": "6ad346054bc68bd0bd9bdcc3",
  "Type": "Package",
  "Package": "potools",
  "Title": "Tools for Internationalization and Portability in R Packages",
  "Version": "0.2.4",
  "Authors@R": "c(\nperson(\"Michael\", \"Chirico\", , \"MichaelChirico4@gmail.com\", role = c(\"cre\", \"aut\")),\nperson(\"Hadley\", \"Wickham\", role = \"aut\")\n)",
  "Description": "Translating messages in R packages is managed using the po\ntop-level directory and the 'gettext' program. This package\nprovides some helper functions for building this support in R\npackages, e.g. common validation & I/O tasks.",
  "License": "GPL-3",
  "URL": "https://github.com/MichaelChirico/potools,\nhttps://michaelchirico.github.io/potools/",
  "BugReports": "https://github.com/MichaelChirico/potools/issues",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "SystemRequirements": "gettext",
  "Config/roxygen2/version": "8.0.0",
  "Repository": "https://michaelchirico.r-universe.dev",
  "Date/Publication": "2026-08-18 20:42:16 UTC",
  "RemoteUrl": "https://github.com/michaelchirico/potools",
  "RemoteRef": "HEAD",
  "RemoteSha": "d9c5bfe99b32a525674468f3e4a94f56c70dec26",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-17 09:51:34 UTC",
    "User": "root"
  },
  "Author": "Michael Chirico [cre, aut],\nHadley Wickham [aut]",
  "Maintainer": "Michael Chirico <MichaelChirico4@gmail.com>",
  "_user": "michaelchirico",
  "_type": "src",
  "_file": "potools_0.2.4.tar.gz",
  "_fileid": "https://r2.ropensci.org/3b291d0fd9d59757f5afb49577ab08483079ee8f8f41dfd0efb49e78a50afcc6",
  "_filesize": 375887,
  "_sha256": "3b291d0fd9d59757f5afb49577ab08483079ee8f8f41dfd0efb49e78a50afcc6",
  "_expires": "2027-01-25T09:55:15.000Z",
  "_created": "2026-10-17T09:51:34.000Z",
  "_published": "2026-10-17T09:55:17.513Z",
  "_buildurl": "https://github.com/r-universe/michaelchirico/actions/runs/39022520408",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 117367608103,
      "time": 111,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12097212061"
    },
    {
      "job": 117367608157,
      "time": 110,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12097566825"
    },
    {
      "job": 117367608081,
      "time": 85,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12096829875"
    },
    {
      "job": 117367608144,
      "time": 90,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12097002818"
    },
    {
      "job": 117367037293,
      "time": 189,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12097526723"
    },
    {
      "job": 117367608074,
      "time": 85,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12097531840"
    },
    {
      "job": 117367608129,
      "time": 112,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12097382802"
    },
    {
      "job": 117367608097,
      "time": 118,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12096678688"
    },
    {
      "job": 117367608195,
      "time": 96,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12096899317"
    }
  ],
  "_upstream": "https://github.com/michaelchirico/potools",
  "_commit": {
    "id": "d9c5bfe99b32a525674468f3e4a94f56c70dec26",
    "author": "Michael Chirico <chiricom@google.com>",
    "committer": "GitHub <noreply@github.com>",
    "message": "Apply @rpkgoptskill to farm some better implementations (#334)\n\n* delint\n\n* Gemini: run @rpkgoptskill\n\n* Gemini: move `call` inside the table\n\n* shrink diff\n\n* avoid outer_negation_linter finding by dropping branch\n\n* Gemini: another requested refactor\n\n* drop extra branch again\n\n* Gemini: cleaner implementation\n\n* Gemini: restrict vapply() loop too\n\n* style\n\n* Gemini: pushing for interval join\n\n* style\n\n* Gemini: pushing on if() in j=\n\n* outer_negation_linter\n\n* early return\n\n* extraneous by.{x,y} made line too wide\n\n* finish delint",
    "time": 1787085736
  },
  "_maintainer": {
    "name": "Michael Chirico",
    "email": "michaelchirico4@gmail.com",
    "login": "michaelchirico",
    "mastodon": "@michaelchirico@fosstodon.org",
    "bluesky": "@michaelchirico.bsky.social",
    "twitter": "@michael_chirico",
    "description": "Economics PhD, Google Data Scientist, ex-@grab",
    "uuid": 7606389
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.0.0",
      "role": "Depends"
    },
    {
      "package": "data.table",
      "role": "Imports"
    },
    {
      "package": "glue",
      "role": "Imports"
    },
    {
      "package": "crayon",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.1.5",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    }
  ],
  "_owner": "michaelchirico",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-51",
      "n": 5
    },
    {
      "week": "2025-52",
      "n": 2
    },
    {
      "week": "2026-11",
      "n": 1
    },
    {
      "week": "2026-34",
      "n": 3
    }
  ],
  "_tags": [],
  "_topics": [
    "i18n",
    "translation"
  ],
  "_stars": 63,
  "_contributors": [
    {
      "user": "michaelchirico",
      "count": 221,
      "uuid": 7606389
    },
    {
      "user": "hadley",
      "count": 16,
      "uuid": 4196
    },
    {
      "user": "maelle",
      "count": 3,
      "uuid": 8360597
    },
    {
      "user": "leofontenelle",
      "count": 1,
      "uuid": 2314430
    },
    {
      "user": "urswilke",
      "count": 1,
      "uuid": 13970666
    }
  ],
  "_userbio": {
    "uuid": 7606389,
    "type": "user",
    "name": "Michael Chirico",
    "followers": 389,
    "description": "Economics PhD, Google Data Scientist, ex-@grab"
  },
  "_downloads": {
    "count": 428,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/potools"
  },
  "_devurl": "https://github.com/michaelchirico/potools",
  "_pkgdown": "https://michaelchirico.github.io/potools/",
  "_searchresults": 18,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/potools.html",
    "extra/readme.html",
    "extra/readme.md"
  ],
  "_homeurl": "https://github.com/michaelchirico/potools",
  "_realowner": "michaelchirico",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.2.0",
      "date": "2021-06-30"
    },
    {
      "version": "0.2.2",
      "date": "2021-07-12"
    },
    {
      "version": "0.2.4",
      "date": "2023-10-30"
    }
  ],
  "_exports": [
    "check_cracked_messages",
    "check_potools_sys_reqs",
    "check_untranslated_cat",
    "check_untranslated_src",
    "get_message_data",
    "po_compile",
    "po_create",
    "po_explain_plurals",
    "po_extract",
    "po_metadata",
    "po_update",
    "translate_package",
    "write_po_file"
  ],
  "_help": [
    {
      "page": "check_cracked_messages",
      "title": "Check for cracked messages more suitable for templating",
      "topics": [
        "check_cracked_messages"
      ]
    },
    {
      "page": "check_potools_sys_reqs",
      "title": "Check if the proper system utilities for running package translation are installed",
      "topics": [
        "check_potools_sys_reqs"
      ]
    },
    {
      "page": "check_untranslated_cat",
      "title": "Check for untranslated messages emitted by cat",
      "topics": [
        "check_untranslated_cat"
      ]
    },
    {
      "page": "check_untranslated_src",
      "title": "Check for cracked messages in C/C++ sources",
      "topics": [
        "check_untranslated_src"
      ]
    },
    {
      "page": "get_message_data",
      "title": "Extract user-visible messages from a package",
      "topics": [
        "get_message_data",
        "notranslate"
      ]
    },
    {
      "page": "po_compile",
      "title": "Compile '.po' files to '.mo'",
      "topics": [
        "po_compile"
      ]
    },
    {
      "page": "po_create",
      "title": "Create a new '.po' file",
      "topics": [
        "po_create"
      ]
    },
    {
      "page": "po_explain_plurals",
      "title": "Explain plural message criteria verbally",
      "topics": [
        "po_explain_plurals"
      ]
    },
    {
      "page": "po_extract",
      "title": "Extract messages for translation into a '.pot' file",
      "topics": [
        "po_extract"
      ]
    },
    {
      "page": "po_update",
      "title": "Update all '.po' files with changes in '.pot'",
      "topics": [
        "po_update"
      ]
    },
    {
      "page": "translate_package",
      "title": "Interactively provide translations for a package's messages",
      "topics": [
        "translate_package"
      ]
    },
    {
      "page": "write_po_file",
      "title": "Write a .po or .pot file corresponding to a message database",
      "topics": [
        "format.po_metadata",
        "po_metadata",
        "print.po_metadata",
        "write_po_file"
      ]
    }
  ],
  "_pkglogo": "https://github.com/michaelchirico/potools/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/michaelchirico/potools/raw/HEAD/README.md",
  "_rundeps": [
    "data.table",
    "glue"
  ],
  "_vignettes": [
    {
      "source": "developers.Rmd",
      "filename": "developers.html",
      "title": "Translation for package developers",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Basic process",
        "Extraction",
        "Base style",
        "Explicit style",
        "Writing good messages",
        "Write full sentences",
        "sprintf() vs glue()",
        "Un-translatable content",
        "Skipping translation",
        "Googling",
        "Plurals",
        "Collapsed lists"
      ],
      "created": "2021-11-25 16:20:00",
      "modified": "2025-12-26 20:37:28",
      "commits": 8
    },
    {
      "source": "translators.Rmd",
      "filename": "translators.html",
      "title": "Translation for package translators",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Basic process",
        "Translation basics",
        "Picking a domain for diasporic languages",
        "Message variations",
        "glue()",
        "sprintf()",
        "Multi-line messages",
        "Plurals",
        "Other issues",
        "Trying out your work",
        "Updating a package"
      ],
      "created": "2021-11-25 16:20:00",
      "modified": "2023-10-30 05:14:23",
      "commits": 4
    },
    {
      "source": "custom-diagnostic.Rmd",
      "filename": "custom-diagnostic.html",
      "title": "Writing a custom diagnostic",
      "author": "Michael Chirico",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Motivation",
        "Writing the diagnostic",
        "Running the diagnostic"
      ],
      "created": "2021-06-20 21:27:33",
      "modified": "2023-10-24 15:56:37",
      "commits": 4
    }
  ],
  "_score": 7.434824296268494,
  "_indexed": true,
  "_nocasepkg": "potools",
  "_universes": [
    "michaelchirico"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.2.4",
      "date": "2026-10-17T09:53:29.000Z",
      "distro": "resolute",
      "commit": "d9c5bfe99b32a525674468f3e4a94f56c70dec26",
      "fileid": "https://r2.ropensci.org/8f2406e8994e001c3a38617b7790f00da615b4613f05dbd4ad611cd792e7196e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/michaelchirico/actions/runs/39022520408"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.2.4",
      "date": "2026-10-17T09:53:25.000Z",
      "distro": "resolute",
      "commit": "d9c5bfe99b32a525674468f3e4a94f56c70dec26",
      "fileid": "https://r2.ropensci.org/da184a0e436327bb4639b149062f95494470685de5db96df84510e2ea70ba251",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/michaelchirico/actions/runs/39022520408"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.2.4",
      "date": "2026-10-17T09:53:14.000Z",
      "commit": "d9c5bfe99b32a525674468f3e4a94f56c70dec26",
      "fileid": "https://r2.ropensci.org/a5fa12f52a760feb49a6adddd0625122616a335b12231c6ce9ceae22bf04d5d4",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/michaelchirico/actions/runs/39022520408"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.2.4",
      "date": "2026-10-17T09:54:44.000Z",
      "commit": "d9c5bfe99b32a525674468f3e4a94f56c70dec26",
      "fileid": "https://r2.ropensci.org/d0c0f9354cadc7f87e3034d51abdb51ad43594fb137bf5f01b58c731d97bd04a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/michaelchirico/actions/runs/39022520408"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.2.4",
      "date": "2026-10-17T09:53:19.000Z",
      "commit": "d9c5bfe99b32a525674468f3e4a94f56c70dec26",
      "fileid": "https://r2.ropensci.org/c023c6cdfc814e69b54e8263c064cb038627e25cec1e1339c03061e26de92fb9",
      "status": "success",
      "buildurl": "https://github.com/r-universe/michaelchirico/actions/runs/39022520408"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.2.4",
      "date": "2026-10-17T09:52:44.000Z",
      "commit": "d9c5bfe99b32a525674468f3e4a94f56c70dec26",
      "fileid": "https://r2.ropensci.org/d9b79609225912fff1b794745e31d25c59ede7d6398e8309aa97a293c15dbf83",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/michaelchirico/actions/runs/39022520408"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.2.4",
      "date": "2026-10-17T09:53:00.000Z",
      "commit": "d9c5bfe99b32a525674468f3e4a94f56c70dec26",
      "fileid": "https://r2.ropensci.org/a09b9b23398a1346e6dafeabd8443ef6ef292f3c8fa18645d0ddb55dd99556c9",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/michaelchirico/actions/runs/39022520408"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.2.4",
      "date": "2026-10-17T09:52:40.000Z",
      "commit": "d9c5bfe99b32a525674468f3e4a94f56c70dec26",
      "fileid": "https://r2.ropensci.org/604bf7ecd245a0025cb82918c50e3fa802bdeb021c7fdb109a4dfcad234537a1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/michaelchirico/actions/runs/39022520408"
    }
  ]
}