A UTF-8 and internationalisation testing utility for text rendering.

ɱéťàł

"English, but metal"

Metal is a tool that converts English text into a legible, Zalgo-like character swap for the purposes of testing localisation and UTF-8 character support in game engines, websites and other tools.

By rewriting basic ASCII characters into recognisable, accented alternatives, an English-reading programmer can immediately see where and how text is breaking in a rendering pipeline.

It should be clear, however, that Metal is not a magic bullet for all text rendering or all language support, merely an early testing tool.

Before

Alice was beginning to get very tired of sitting by her sister on the bank, and of having nothing to do: once or twice she had peeped into the book her sister was reading, but it had no pictures or conversations in it, 'and what is the use of a book,' thought Alice 'without pictures or conversation?'

After

Åľįċė ŵąś ьęɠĩńɴïŋğ ŧő ĝəʈ vėɼŷ ţîʁèď ŏf śĩŧţɨňĝ ʙŷ ĥéʁ ŝɨśŧɘŕ ɵñ ťħĕ ʙąñʞ, àɴɗ ôf ĥãvĭňğ ɲŏťħïɲɠ ťŏ ɗɵ: öɲćě óʁ ţŵĩćę şħê ɧãɗ pɘêpɘɗ ĭʼnťó ţɦě ьõõķ ɧɘŕ šíŝʈěʁ ŵáš řēáďĭňɠ, ʙûŧ íţ ĥăɗ ʼnô pīċʈūɾęš öŕ ċöɲvéʁśąťĭŏņŝ ìň ɨţ, 'áŋđ ŵħąť ɨš ʈĥĕ ūśė ɵf å ьôök,' ţĥőüğɦť Åľïçė 'ŵīţħòuʈ pĩčťūřėś òř čōʼnvěŗśăŧɨɵɲ?'

Metal was inspired by a segment on internationalisation in this GDC talk about Firewatch, given by William Armstrong and Patrick Ewing.

Standalone Usage

$ cat input.txt | metal > output.txt

or —

$ metal "some input string"

Standalone Compilation

$ go build -o metal<.exe> exec/main.go

The character table can also be modified or rebuilt from the source.txt file in util. Run —

$ go generate

— to rebuild it.

Library Usage

import "github.com/qxoko/metal"

some_output := metal.Anodize(some_input)
Owner
Harley
village idiot | they/them
Harley
Similar Resources

PipeIt is a text transformation, conversion, cleansing and extraction tool.

PipeIt is a text transformation, conversion, cleansing and extraction tool.

PipeIt PipeIt is a text transformation, conversion, cleansing and extraction tool. Features Split - split text to text array by given separator. Regex

Aug 15, 2022

ByNom is a Go package for parsing byte sequences, suitable for parsing text and binary data

ByNom is a Go package for parsing byte sequences. Its goal is to provide tools to build safe byte parsers without compromising the speed or memo

May 5, 2021

👄 The most accurate natural language detection library in the Go ecosystem, suitable for long and short text alike

👄 The most accurate natural language detection library in the Go ecosystem, suitable for long and short text alike

👄 The most accurate natural language detection library in the Go ecosystem, suitable for long and short text alike

Dec 25, 2022

Fast and secure steganography CLI for hiding text/files in images.

Fast and secure steganography CLI for hiding text/files in images.

indie CLI This complete README is hidden in the target.png file below without the original readme.png this could have also been a lie as none could ev

Mar 20, 2022

a simple and lightweight terminal text editor written in Go

Simple Text editor written in Golang build go build main.go

Oct 4, 2021

AppGo is an application that is intended to read a plain text log file and deliver an encoded polyline

AppGo AppGo is an application that is intended to read a plain text log file and deliver an encoded polyline. Installation To run AppGo it is necessar

Oct 23, 2021

A simple action that looks for multiple regex matches, in a input text, and returns the key of the first found match.

Key Match Action A simple action that looks for multiple regex matches, in a input text, and returns the key of the first found match. TO RUN Add the

Aug 4, 2022

Golang metrics for calculating string similarity and other string utility functions

strutil strutil provides string metrics for calculating string similarity as well as other string utility functions. Full documentation can be found a

Jan 3, 2023

Guess the natural language of a text in Go

guesslanguage This is a Go version of python guess-language. guesslanguage provides a simple way to detect the natural language of unicode string and

Dec 26, 2022
Stylesheet-based markdown rendering for your CLI apps 💇🏻‍♀️
Stylesheet-based markdown rendering for your CLI apps 💇🏻‍♀️

Glamour Write handsome command-line tools with Glamour. glamour lets you render markdown documents & templates on ANSI compatible terminals. You can c

Jan 1, 2023
Words - help with a word finder game, sketches a text-processing utility program

Shell-style text processing in Go I saw a word game where the puzzle gives you six letters. By means of a clever user interface, you construct words f

Jan 1, 2022
A general purpose application and library for aligning text.

align A general purpose application that aligns text The focus of this application is to provide a fast, efficient, and useful tool for aligning text.

Sep 27, 2022
Parse placeholder and wildcard text commands

allot allot is a small Golang library to match and parse commands with pre-defined strings. For example use allot to define a list of commands your CL

Nov 24, 2022
omniparser: a native Golang ETL streaming parser and transform library for CSV, JSON, XML, EDI, text, etc.
omniparser: a native Golang ETL streaming parser and transform library for CSV, JSON, XML, EDI, text, etc.

omniparser Omniparser is a native Golang ETL parser that ingests input data of various formats (CSV, txt, fixed length/width, XML, EDI/X12/EDIFACT, JS

Jan 4, 2023
Produces a set of tags from given source. Source can be either an HTML page, Markdown document or a plain text. Supports English, Russian, Chinese, Hindi, Spanish, Arabic, Japanese, German, Hebrew, French and Korean languages.
Produces a set of tags from given source. Source can be either an HTML page, Markdown document or a plain text. Supports English, Russian, Chinese, Hindi, Spanish, Arabic, Japanese, German, Hebrew, French and Korean languages.

Tagify Gets STDIN, file or HTTP address as an input and returns a list of most popular words ordered by popularity as an output. More info about what

Dec 19, 2022
Templating system for HTML and other text documents - go implementation

FAQ What is Kasia.go? Kasia.go is a Go implementation of the Kasia templating system. Kasia is primarily designed for HTML, but you can use it for any

Mar 15, 2022
Small and fast FTS (full text search)

Microfts A small full text indexing and search tool focusing on speed and space. Initial tests seem to indicate that the database takes about twice as

Jul 30, 2022
Diff, match and patch text in Go

go-diff go-diff offers algorithms to perform operations required for synchronizing plain text: Compare two texts and return their differences. Perform

Dec 25, 2022
:book: A Golang library for text processing, including tokenization, part-of-speech tagging, and named-entity extraction.

prose prose is a natural language processing library (English only, at the moment) in pure Go. It supports tokenization, segmentation, part-of-speech

Jan 4, 2023