# YAMLResume: Resumes as Code in YAML
YAMLResume allows people to create and version control resumes using YAML and generate pixel perfect PDFs with professional layout and typesetting in a breeze.
# CLI
URL: (/en/docs/cli)
YAMLResume provides a CLI tool to help you manage your resume. You can follow
the [installation guide](/docs/installation) to install it.
Please note that we have a [docker image](/docs/installation#docker-users)
for you, which has `yamlresume` CLI installed with all the necessary
dependencies.
For each sub-command in this guide, you can run it in docker by appending the
sub-command after `yamlresume/yamlresume`.
For example, to create a new resume in yamlresume CLI:
```sh
yamlresume new my-resume.yml
```
You can also run it in docker by:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
```
## Help
Show CLI help and all available commands:
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build a resume on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
Show YAMLResume CLI version:
```console
$ yamlresume -V
0.5.0
```
## New
Create a new resume. The default resume filename is `resume.yml`, but you
can specify a custom filename:
```console
$ yamlresume new --help
Usage: yamlresume new [options] [filename]
create a new resume
Arguments:
filename output filename (default: "resume.yml")
Options:
-h, --help display help for command
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
## Build
Build a resume from YAML to PDF. It will generate the latex code and PDF at the
same time, with some intermediate files `.aux`, `.log` etc, if you use
[XeTeX](/docs/installation#xetex) as the typesetting engine.
```console
$ yamlresume build --help
Usage: yamlresume build [options]
build a resume to LaTeX and PDF
Arguments:
resume-path the resume file path
Options:
--no-pdf only generate TeX file without PDF
--no-validate skip resume schema validation
-h, --help display help for command
$ yamlresume build my-resume.yml
◐ Generating resume PDF file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume PDF file successfully.
```
### `--no-pdf`
If you only want to generate the LaTeX file without PDF, you can use `--no-pdf`
option.
```console
$ yamlresume build --no-pdf my-resume.yml
```
### `--no-validate`
If you want to skip the resume schema validation, you can use `--no-validate`
option.
```console
$ yamlresume build --no-validate my-resume.yml
```
## Dev
Build a resume from YAML to PDF on file changes. It accepts the same options as
[`build`](#build) however it will automatically rebuild the resume when the YAML
file is changed (aka, watch mode). This would be very convenient for you to
preview your resume changes in real time.
```console
$ yamlresume dev --help
Usage: yamlresume dev [options]
build a resume on file changes (watch mode)
Arguments:
resume-path the resume file path
Options:
--no-pdf only generate TeX file without PDF
--no-validate skip resume schema validation
-h, --help display help for command
```
## Validate
Validate a resume against the YAMLResume [schema](/docs/compiler/schema).
```console
$ yamlresume validate --help
Usage: yamlresume validate [options]
validate a resume against the YAMLResume schema
Arguments:
resume-path the resume file path
Options:
-h, --help display help for command
```
For example, for the following resume:
```yml lineNumbers
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
---
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@pp
url: https://ppresume.com/gallery
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
region: California
city: S
country: United States
postalCode: "95814"
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
startDate: Sep 1, 2016
endDate:
courses:
- D
- Programming Language Concepts
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
layouts:
- engine: latex
typography:
fontSize: 13pt
```
`yamlresume validate` will give you a list of potential errors, with clear
positional information
```console
$ yamlresume validate my-resume.yml
invalid-resume.yml:9:12: warning: email is invalid.
email: hi@pp
^
invalid-resume.yml:19:11: warning: city should be 2 characters or more.
city: S
^
invalid-resume.yml:31:11: warning: courses should be 2 characters or more.
- D
^
invalid-resume.yml:41:17: warning: font size option is invalid, it must be one of the following: ["10pt", "11pt", "12pt"]
fontSize: 13pt
^
✖ Resume validation failed.
```
## Languages
List all available languages. The language code follows the spec in [ISO
639 specification](https://www.iso.org/iso-639-language-code). You can specify
the language code in `locale.language` in order to change the language of
your resume. Changing the language of your resume will automatically translate
all fixed terms. You can check more details in our [content -> multi
languages](/docs/locale) section.
```console
$ yamlresume languages list
| locale.language | Language Name | 1:03:48 PM
| --------------- | ------------------------------- |
| en | English |
| zh-hans | Simplified Chinese |
| zh-hant-hk | Traditional Chinese (Hong Kong) |
| zh-hant-tw | Traditional Chinese (Taiwan) |
| es | Spanish |
| fr | French |
| no | Norwegian |
| nl | Dutch |
| ja | Japanese |
| de | German |
```
## Templates
List all available templates. You can change the resume template by setting
`layouts.[].template` in your YAML resume. [PPResume
Templates](https://docs.ppresume.com/typesetting/templates) for more details.
```console
$ yamlresume templates list
| layouts.[].template | Engine | Template Name | Description |
| ------------------- | ------ | ---------------- | ------------------------------------------------- |
| moderncv-banking | latex | ModernCV Banking | ModernCV template with banking style |
| moderncv-casual | latex | ModernCV Casual | ModernCV template with casual style |
| moderncv-classic | latex | ModernCV Classic | ModernCV template with classic style |
| calm | html | Calm | Clean and minimalist design suitable for all professionals. |
| vscode | html | VS Code | Dark theme inspired by Visual Studio Code, tailored for developers. |
```
# Comparisons
URL: (/en/docs/comparisons)
## JSON Resume
[JSON Resume](https://jsonresume.org) is a pioneer in building a open standard
for a structured data format for resumes. Its first [official
release](https://jsonresume.org/blog/first-official-release) was in July 31,
2014, which is more than 10 years ago.
From its official website:
```markdown
## Origins and Conceptualization
JSON Resume was conceived as a solution to the fragmented and inconsistent
landscape of resume formats. Traditional resumes, typically created in formats
like Microsoft Word or PDF, often suffer from compatibility issues when parsed
by different systems. Recognizing this problem, Thomas Davis and Roland Sharp
initiated JSON Resume as an open-source project to create a universal,
machine-readable format for resumes.
## Development Milestones
The project began gaining momentum in the early 2010s, with significant
milestones such as the creation of the JSON Resume schema, the development of
the first CLI tools, and the establishment of the JSON Resume registry. These
milestones were driven by community contributions and the growing recognition of
the need for a standardized resume format in the tech industry.
```
JSON Resume did an excellent job in building a open standard for a structured
data format for resumes. However, it lacks some features that YAMLResume has.
YAMLResume is highly inspired by [JSON Resume](https://jsonresume.org/), and
more opinionated in some aspects. For example, JSON Resumes says nothing about
how to convert the machine readable data to a beautiful, human-readable resume.
Here are some notable differences:
| Feature | YAMLResume | JSON Resume |
| ------------------ | --------------------- | ------------------- |
| Data Format | YAML | JSON |
| Data Structure | All top-level objects | Some nested objects |
| Typesetting Engine | LaTeX | None |
| Layout Spec | Built-in | Not specified |
| Rich Text Support | Yes | No |
We are going to offer a tool to import JSON Resume to YAMLResume in the future.
# Quick Start
URL: (/en/docs)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
import { Step, Steps } from "fumadocs-ui/components/steps";
## Introduction
Creating a resume may not be difficult, but it is definitely a boring, lengthy
and tedious process.
With YAMLResume, you can create and version control your resumes with YAML and
create pixel perfect PDFs with professional layout and typesetting in a breeze.
YAMLResume is the core engine of [PPResume](https://ppresume.com), a LaTeX based
builder. It has helped [thousands of
people](https://blog.ppresume.com/posts/2024-recap) around the world create
pixel perfect, professional looking resumes and land their dream jobs. Here we
decided to open source the engine, in order to give people the right and freedom
to say [no to vendor lock-in](https://blog.ppresume.com/posts/no-vendor-lock-in)
## Getting Started
### Docker Users
If you are a docker user, you are in luck, we have a [docker
image](https://hub.docker.com/r/yamlresume/yamlresume) for you, which has
[yamlresume cli](https://www.npmjs.com/package/yamlresume) installed with all
its dependencies, such as [XeTeX](https://www.tug.org/xetex/) and some
[recommended fonts](/docs/installation#font).
You can just create a new resume with the following command:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
```
Edit `my-resume.yml` accordingly and then build the resume from yaml to pdf:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
```
### macOS Users
Let's assume that you're using macOS with [Homebrew](https://brew.sh/) as the
package manager. If you are not, please see the
[Installation](/docs/installation) guide for detailed instructions for your
operating system.
#### Install Node.js
You need to [install
Node.js](https://nodejs.org/en/download/package-manager/all#macos) 20.x or
newer.
```sh
brew install node
```
#### Install Typesetting Engine
YAMLResume needs a [typesetting
engine](/docs/installation#typesetting-engine) to generate PDF. Currently it
supports two typesetting engines:
* [XeTeX](/docs/installation#xetex)
* [Tectonic](/docs/installation#tectonic)
<>
```sh
brew install mactex
```
```sh
brew install tectonic
```
>
#### Install YAMLResume
Installing `yamlresume` is a breeze. You can install it using your favourite
Node.js package manager:
<>
```sh
npm install -g yamlresume
```
```sh
pnpm add -g yamlresume
```
```sh
yarn global add yamlresume
```
```sh
bun add -g yamlresume
```
>
You can also install [`yamlresume` via
Homebrew](http://formulae.brew.sh/formula/yamlresume):
```sh
brew install yamlresume
```
Verify `yamlresume` is installed successfully:
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build a resume on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
#### \[Optional] Install Fonts
##### Linux Libertine Font
We also recommend installing the [Linux
Libertine font](/docs/installation#linux-libertine) for the best looking PDF
output, but this is optional.
```sh
brew install font-linux-libertine
```
##### Noto Fonts
If you need to create a CJK (Chinese, Japanese, Korean) resume, we recommend
that you install the [Noto font](https://fonts.google.com/noto):
```sh
brew install font-noto-sans-cjk font-noto-serif-cjk
```
#### Create Your First YAML Resume
OK, we have everything ready, we can now create a yaml resume now with
`yamlresume new`:
```console
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
Edit `resume.yml` accordingly, then you can generate a PDF with `yamlresume
build`:
```console
$ yamlresume build my-resume.yml
◐ Generating resume PDF file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resumep PDF file successfully.
```
You can also use `yamlresume dev` to build the resume on file changes:
```console
$ yamlresume dev my-resume.yml
◐ Generating resume PDF file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume PDF file successfully.
◐ Watching file changes: my-resume.yml...
```
## Sample Resume
Here is the complete YAML code for a two-page sample resume, tailored for a
[software
engineer](https://github.com/yamlresume/yamlresume/blob/main/packages/cli/resources/resume.yml):
```yml lineNumbers
---
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@ppresume.com
url: https://ppresume.com/gallery
# All summary fields supports a limited rich text capabilities in markdown
# syntax:
#
# - bold, (e.g, `**bold**`)
# - italic, (e.g, `*italic*`)
# - ordered list, unordored list and nested sub list
# - links (e.g. `[link](https://ppresume.com)`)
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
city: Sacramento
region: California
country: United States
postalCode: "95814"
profiles:
- network: Line
url: https://line.com/PPResumeX
username: PPResumeX
- network: Twitter
url: https://twitter.com/PPResumeX
username: PPResumeX
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
# Valid degree options:
#
# - 'Middle School'
# - 'High School'
# - 'Diploma'
# - 'Associate'
# - 'Bachelor'
# - 'Master'
# - 'Doctor'
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
# Should be a valid date string that can be parsed by `new Date(dateStr)`
# in JavaScript, eg. '2020-01', '2020-02-03', 'Jul 1, 2023' etc.
#
# The date part would be removed in the final output as most of the time
# people won't really care about the exact date for your working
# experience or education background, etc.
# ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/Date
startDate: Sep 1, 2016
# Leave endDate blank to indicate "Present"
endDate: Jul 1, 2020
courses:
- Discrete Methods in Computer Science
- Programming Language Concepts
- Data Structures and Object-Oriented Design
- Operating Systems
- Computer Architecture
- Database Systems
- Computer Networking
- Introduction to the Theory of Computing
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
work:
- name: PPResume
url: https://ppresume.com
startDate: Dec 1, 2022
endDate: ""
position: Senior Software Engineer
summary: |
- Developed and implemented efficient and scalable code, ensuring high-quality and maintainable web applications
- Collaborated with cross-functional teams to gather project requirements and translate them into technical solutions
- Conducted thorough testing and debugging to identify and resolve any issues or bugs in the software
- Actively participated in code reviews, providing valuable feedback to improve code quality and adherence to best practices
- Mentored and guided junior developers, fostering a collaborative and growth-oriented team environment
keywords:
- Scalibility
- Growth
- Quality
- Mentorship
- name: PPResume
url: https://ppresume.com
startDate: Sep 1, 2020
endDate: Dec 1, 2022
position: Software Engineer
summary: |
- Created reusable React components to ensure code efficiency and maintainability
- Integrated with RESTful APIs to fetch and display dynamic data on the frontend
- Implemented client-side routing using React Router for smooth navigation between pages
- Actively participated in Agile development methodologies, attending daily stand-up meetings and sprint planning sessions
keywords:
- RESTful
- React
- Agile
languages:
# Valid language fluency options:
#
# - 'Elementary Proficiency'
# - 'Limited Working Proficiency'
# - 'Minimum Professional Proficiency'
# - 'Full Professional Proficiency'
# - 'Native or Bilingual Proficiency'
- language: English
fluency: Native or Bilingual Proficiency
keywords:
- TOEFL 110
- IELTS 7.5
- language: Chinese
fluency: Elementary Proficiency
keywords: []
skills:
# Valid skill level options:
#
# - 'Novice'
# - 'Beginner'
# - 'Intermediate'
# - 'Advanced'
# - 'Expert'
# - 'Master'
- name: Web Development
level: Expert
keywords:
- Python
- Ruby
- CSS
- React
- JavaScript
- name: DevOps
level: Intermediate
keywords:
- Python
- Kubernetes
- Docker
- Shell
- Ansible
- name: Design
level: Intermediate
keywords:
- Sketch
- Figma
- Photoshop
awards:
- title: Dean's List
awarder: University of Southern California
date: Oct 2016
summary: |
Awarded to students who achieve a high academic standing by maintaining a specified grade point average (GPA) during a semester.
certificates:
- name: AWS Certified Developer - Associate
url: https://aws.amazon.com/certification/
issuer: AWS
date: Mar 2021
publications:
- publisher: ACM Transactions on Interactive Intelligent Systems
url: https://dl.acm.org/journal/tiis
name: Enhancing Human-Computer Interaction through Augmented Reality
releaseDate: Dec 2017
summary: |
- Explores the potential of augmented reality (AR) in improving interaction between humans and computers
- Highlights benefits of AR in various areas such as gaming, education, healthcare, and design
- Discusses challenges and future directions of AR technology in enhancing user experience
references:
- name: Dr. Amanda Reynolds
phone: "(555) 123-4567"
relationship: Computer Science Professor
email: amanda.reynolds@usc.edu
summary: |
Andy Dufresne shows exceptional problem-solving skills and a solid understanding of programming concepts, he would bring immense value to any team or organization he becomes a part of.
projects:
- name: EduWeb
url: https://www.eduweb.xyz/
description: A web-based educational platform for interactive learning
startDate: Sep 2016
endDate: Dec 2016
summary: |
- Designed to enhance online learning experiences
- Facilitates students' engagement and collaboration through interactive features and user-friendly interface
- Offers a wide range of courses across various subjects
- Aims to improve the way students learn through the power of the web
keywords:
- Education
- Online Learning
- HCI
interests:
- name: Sports
keywords:
- Soccer
- Swimming
- Bicycling
- Hiking
- name: Music
keywords:
- Piano
- Guitar
volunteer:
- organization: USC Computer Science and Engineering Society
url: https://www.usccsesociety.org/
position: Tech Mentor
startDate: Sep 2015
endDate: Jul 2023
summary: |
- Volunteered as a Tech Mentor at USC Computer Science and Engineering Society
- Provided guidance and assistance to fellow students in their technical projects and coursework
- Assisted in organizing workshops, coding competitions, and networking events for the society members
- Contributed to fostering a collaborative and supportive environment within the student community
locale:
# Use `yamlresume languages list` to get the list of supported languages
language: en
layouts:
- engine: latex
page:
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
showPageNumbers: true
# Use `yamlresume templates list` to get the list of available templates
template: moderncv-banking
typography:
# LaTeX engine only supports 10pt, 11pt, and 12pt
fontSize: 11pt
- engine: markdown
- engine: html
# Use `yamlresume templates list` to get the list of available templates
template: calm
typography:
# HTML engine only supports font size in px unit, from 14px to 20px
fontSize: 16px
```
Here are the screenshots of the [generated
PDF](https://github.com/yamlresume/yamlresume/blob/main/packages/cli/resources/resume.pdf):
You can check [PPResume Gallery](https://ppresume.com/gallery) for more
examples, with support for different
[templates](https://ppresume.com/gallery/templates) and
[multi-languages](https://ppresume.com/gallery/languages).
## Learn More
# Installation
URL: (/en/docs/installation)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
YAMLResume is a Node.js tool, under the hood, it transform your resumes from the
YAML format to LaTeX code and then call a LaTeX typesetting engine to compile
the generated LaTeX code to PDF. Besides, to get optimal PDF output, we also
suggest to install some fonts. In a nutshell, you need to install the followings
to get started with YAMLResume:
* Node.js
* [yamlresume package](https://www.npmjs.com/package/yamlresume)
* a typesetting engine
* \[optional] some fonts
This sounds a bit complicated, but don't worry, we have your back.
## Docker Users
If you are a docker user, you are in luck, we have a [docker
image](https://hub.docker.com/r/yamlresume/yamlresume) for you. This image has
everything pre-packaged, including:
* [Node.js](/docs/installation#nodejs)
* [yamlresume CLI](/docs/installation#yamlresume)
* [XeTeX](/docs/installation#xetex)
* [some recommended fonts](/docs/installation#font)
You can create a new resume instantly with the following command:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
```
This command will create a new resume called `my-resume.yml` in your current
directory. Steps:
1. `docker run ... yamlresume/yamlresume` - runs a new container from the
`yamlresume/yamlresume` image, if this image is not existed in your local
machine, it will pull it from the [Docker
Hub](https://hub.docker.com/r/yamlresume/yamlresume).
2. `--rm` - automatically removes the container when it exits
3. `-v $(pwd):/home/yamlresume` - mounts the current directory (`$(pwd)`) into
the container at `/home/yamlresume`, allowing the container to access local
files
4. `new my-resume.yml` - run yamlresume CLI [new](/docs/cli#new) sub-command to
create a new resume with the filename `my-resume.yml`
Edit `my-resume.yml` accordingly and then build the resume from yaml to pdf:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
```
Basically, you can call all of the `yamlresume` [CLI sub-commands](/cli) in this
way—just append the sub-command after `yamlresume/yamlresume` and then follow
the corresponding usage guide.
The `-v` flag here is quite important here because it mounts the current
directory (`$(pwd)`) into the container at `/home/yamlresume`, allowing a two
way file sync between the local directory and the container.
If you have trouble to pull down `yamlresume/yamlresume` image from [Docker
Hub](https://hub.docker.com/r/yamlresume/yamlresume), don't worry, we have a
[github mirror](https://github.com/yamlresume/yamlresume/pkgs/container/yamlresume)
for you.
You can get the [ghcr
image](https://github.com/yamlresume/yamlresume/pkgs/container/yamlresume) by:
```sh
docker pull ghcr.io/yamlresume/yamlresume
```
### Permission Issues
Sometimes you may run into [permission
issues](https://github.com/yamlresume/yamlresume/issues/24) when running the
Docker container because the `yamlresume/yamlresume` image is built with a `USER
yamlresume` instruction, which by default runs with less privilege.
There are two ways to solve this issue:
1. Use your host username/group ID to run the container:
```sh
docker run --rm -v $(pwd):/home/yamlresume -u $(id -u):$(id -g) yamlresume/yamlresume new my-resume.yml
```
This is the recommended way to run the container. As long as your host user has
access to the current directory, you can run the container with your host
username/group ID.
2. Use `-u root` to run the container with root access:
```sh
docker run --rm -v $(pwd):/home/yamlresume -u root yamlresume/yamlresume new my-resume.yml
```
This is the least recommended way to run the container. It is not recommended
because it may cause security issues, so you should only do this if you
are sure about what you are doing.
Last but not least, if you are running the `yamlresume` Docker container in GitHub
Actions, then root access may be required as per [GitHub's
documentation](https://docs.github.com/en/actions/reference/runners/github-hosted-runners#docker-container-filesystem):
> Note: GitHub Actions must be run by the default Docker user (root). Ensure
> your Dockerfile does not set the USER instruction, otherwise you will not be
> able to access GITHUB\_WORKSPACE.
Ref: [Understanding the Docker USER Instruction](https://www.docker.com/blog/understanding-the-docker-user-instruction/)
## Non-Docker Users
If you are not a docker user, please follow the appropriate instructions below
to install yamlresume CLI and all the necessary dependencies based on your
operating system. At the time of writing, our guide covers macOS, Windows, and
some Linux distros (Ubuntu and and RHEL based distros).
### Node.js
Node.js 20.x or newer is required.
Theoretically `yamlresume` should work with Node.js 18, however it is highly
recommended to use Node.js 20 or newer because Node.js 18 LTS is scheduled to
reach End-of-Life on [30 April
2025](https://nodejs.org/en/blog/release/v18.20.8).
There may be like 100+ methods to install Node.js on different OS, you can check
the official [Node.js Download](https://nodejs.org/en/download) to get started.
We recommend using a [package
manager](https://nodejs.org/en/download/package-manager/all) to install Node.js.
For [Homebrew](https://brew.sh/) users:
```sh
brew install node
```
For [Chocolatey](https://chocolatey.org/) users:
```sh
choco install nodejs.install
```
For Ubuntu 24.10 or newer:
```sh
sudo apt install nodejs
```
For Ubuntu 24.04 or older, please take a look at
[NodeSource](https://downloads.nodesource.com/#debian) to get Node.js 20 or
newer.
For RHEL-based linux like Fedora, AlmaLinux, Rocky Linux, etc.:
```sh
sudo dnf install nodejs
```
### YAMLResume CLI
Installing `yamlresume` is a breeze. You can install it using your favourite
Node.js package manager:
<>
```console
npm install -g yamlresume
```
```console
pnpm add -g yamlresume
```
```console
yarn global add yamlresume
```
```console
bun add -g yamlresume
```
>
If you're a macOS user and you use [Homebrew](https://brew.sh/), you can also
install [yamlresume via Homebrew](http://formulae.brew.sh/formula/yamlresume):
```sh
brew install yamlresume
```
Verify that `yamlresume` is installed successfully:
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build a resume on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
If you just want to give `yamlresume` a try without installing it, you can use
`npx`, `pnpx` or other similar tools:
<>
```console
npx yamlresume help
```
```console
yarn dlx yamlresume help
```
```console
pnpx yamlresume help
```
```console
bun exec yamlresume help
```
>
### Typesetting Engine
Under the hood, `yamlresume` does the job of a compiler, parsing a YAML resume
to an
[AST](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/compiler/ast.ts)
and then [transforming the AST to LaTeX
code](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/compiler/codegen/latex.ts).
As a mini-compiler, `yamlresume` relies on a typesetting engine to compile the
generated LaTeX code to PDFs. Therefore you must first install a typesetting
engine first before you can use `yamlresume` to generate resume PDFs.
YAMLResume currently supports two typesetting engines: [XeTeX](#xetex) and
[Tectonic](#tectonic).
At the time of writing, [LaTeX](https://www.latex-project.org/) is still the
best choice of typesetting engine for producing professional looking PDFs.
[Typst](https://typst.app/) is a great alternative, but it is still in its
early stage and its CJK support is not mature and production ready yet.
Previously I wrote a post [On Typesetting
Engines](https://blog.ppresume.com/posts/on-typesetting-engines) explaining
the reasons why I chose LaTeX over other typesetting engines when I founded
[PPResume](https://ppresume.com).
#### XeTeX
[XeTeX](https://tug.org/xetex/) is a [TeX](https://en.wikipedia.org/wiki/TeX)
typesetting engine using [Unicode](https://en.wikipedia.org/wiki/Unicode) and
supporting modern font technologies such as
[OpenType](https://en.wikipedia.org/wiki/OpenType),
[Graphite](https://fonts.adobe.com/fonts/graphite) and [Apple Advanced
Typography (AAT)](https://en.wikipedia.org/wiki/Apple_Advanced_Typography).
It is a very mature, stable typesetting engine that is widely used by many
academic and scientific people.
The easiest way is to install the **MacTeX** distribution.
It includes XeTeX along with many other TeX-related programs and packages. You
can download it from the [MacTeX website](https://www.tug.org/mactex/) or
install it via homebrew:
```sh
# install the full mactex
brew install mactex
# or if you want to save some disk space
brew install mactex-no-gui
```
[MiKTeX distribution](https://miktex.org) is a popular choice for Windows and
includes XeTeX. You can download it from the [MiKTeX
website](https://miktex.org/download).
Alternatively, you can install **TeX Live** for Windows, which also includes
XeTeX. Download it from the [TeX Live
website](https://www.tug.org/texlive/acquire-netinstall.html).
Most Linux distributions offer TeX Live through their package managers. XeTeX is
typically included in the `texlive-xetex` package or a larger `texlive-full`
meta-package.
For Ubuntu, if your network is good and you have around 10GB of disk spaces, you
can install the full texlive distribution:
```sh
sudo apt install texlive-full
```
Otherwise, you can install the minimum required packages:
```sh
sudo apt install texlive-xetex texlive-fonts-extra texlive-lang-all
```
For RHEL-based linux like Fedora, AlmaLinux, Rocky Linux, you can install the
full TeX Live distribution if you have enough disk space and good network:
```sh
sudo dnf install texlive-scheme-full
```
Otherwise you can install the minimum required packages:
```sh
sudo dnf install \
texlive-scheme-medium \
texlive-moderncv \
texlive-ctex \
texlive-academicons
```
Alternatively, you can always install TeX Live directly from the [TeX Live
website](https://www.tug.org/texlive/acquire-netinstall.html) using their
installer, which works across different Linux distributions.
Verify that XeTeX is installed successfully:
```console
$ xetex -v
XeTeX 3.141592653-2.6-0.999994 (TeX Live 2022)
kpathsea version 6.3.4
Copyright 2022 SIL International, Jonathan Kew and Khaled Hosny.
There is NO warranty. Redistribution of this software is
covered by the terms of both the XeTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the XeTeX source.
Primary author of XeTeX: Jonathan Kew.
Compiled with ICU version 70.1; using 70.1
Compiled with zlib version 1.2.11; using 1.2.11
Compiled with FreeType2 version 2.11.1; using 2.11.1
Compiled with Graphite2 version 1.3.14; using 1.3.14
Compiled with HarfBuzz version 3.4.0; using 3.4.0
Compiled with libpng version 1.6.37; using 1.6.37
Compiled with pplib version v2.05 less toxic i hope
Using Mac OS X Core Text and Cocoa frameworks
```
#### Tectonic
[Tectonic](https://tectonic-typesetting.github.io) is a modernized, complete,
self-contained
[TeX](https://en.wikipedia.org/wiki/TeX)/[LaTeX](https://www.latex-project.org/)
engine, powered by [XeTeX](https://tug.org/xetex/) and
[TeXLive](https://www.tug.org/texlive/).
A full TeX Live distribution typically takes up several GB of disk space, while
tectonic's initial installation takes up only 10+ MB. It automatically downloads
support files, so you don't have to install a complete LaTeX distribution. When
you start using a new LaTeX package, Tectonic simply downloads the files it
needs and continues processing.
Tectonic provides an official [installation
guide](https://tectonic-typesetting.github.io/en-US/install.html), but this
would just put tectonic in the directory where you ran the installation command,
`yamlresume` needs a global `tectonic` command in your `$PATH`, so you need to
figure that out with some shell hacks on your own.
If you're a macOS user, you're in luck because Homebrew provides prebuilt
package:
```sh
brew install tectonic
```
In to my experience, tectonic still has some minor compatibility issues with
official XeTeX, so if you do not mind the long download tim eof a full TeX Live
distribution, XeTeX is still the recommended choice here.
### Font
#### Linux Libertine
YAMLResume adopts [Linux Libertine](https://www.dafont.com/linux-libertine.font)
as the default font for Latin characters. It is highly recommended to install it
in order to get an optimal PDF output.
For Homebrew users:
```sh
brew install font-linux-libertine
```
Otherwise you can download the latest version of [Linux
Libertine](https://www.dafont.com/linux-libertine.font) from the website and
install the font with macOS's [Font
Book](https://support.apple.com/en-gb/guide/font-book/fntbk1000/mac).
Download the latest version of [Linux
Libertine](https://www.dafont.com/linux-libertine.font) from the website and
extract the archive and install the font.
For Ubuntu users, Linux Libertine font is already included in
`texlive-fonts-extra` package, however, if you want to install it manually, you
can do so by:
```sh
sudo apt install fonts-linuxlibertine
```
For RHEL-based linux like Fedora, AlmaLinux, Rocky Linux, you can install the
Linux Libertine font by:
```sh
sudo dnf install linux-libertine-fonts
```
#### Google Noto
If you need CJK resumes, you will also need to install [Google Noto
fonts](https://fonts.google.com/noto/) for [best unicode
coverage](https://github.com/ppresume/community/issues/63).
For Homebrew users:
```sh
brew install font-noto-sans-cjk font-noto-serif-cjk
```
Download Noto fonts and follow the [official
guide](https://fonts.google.com/noto/use#use-noto-fonts) to install on
Windows.
For Ubuntu users:
```sh
sudo apt install fonts-noto-cjk fonts-noto-cjk-extra
```
For RHEL-based linux like Fedora, AlmaLinux, Rocky Linux, you can install the
Noto fonts by:
```sh
sudo dnf install google-noto-sans-cjk-fonts google-noto-serif-cjk-fonts
```
## Troubleshooting
You can [raise an issue](https://github.com/yamlresume/yamlresume/issues/new) if
you have trouble to install `yamlresume` or its dependencies.
You can enable verbose logging by passing a `--verbose` flag to `yamlresume` or
its subcommands.
### Getting Tired?
If you are getting tired of the installation process, you can try
[PPResume](https://ppresume.com), which is a hosted, commercial resume builder
solution who open sourced YAMLResume.
# Architecture
URL: (/en/docs/compiler/architecture)
Like any compiler, YAMLResume also contains a pipeline that transforms resume
data from input to output with multiple phases.
* **Input Phase**: accepts YAML and JSON resume files as input.
* **Parsing Phase**: parses and validates the resume content and layout from the
input files.
* **Transformation Phase**: transforms the resume content and layout
data with a pipeline.
* **Codegen Phase**: renders the resume content and layout data using LaTeX
templates.
* **Output Phase**: generates the final PDF document.
Here is a high-level architecture diagram of YAMLResume from 30000 feet:
## Data Processing Pipeline
The transformation pipeline is responsible for processing raw resume data from
YAML files and preparing it for LaTeX rendering. It operates in two main phases:
content transformation and layout transformation:
* The content transformation phase processes all textual data, applies
localization rules, escapes LaTeX special characters, and computes derived
values.
* The layout transformation phase merges user-provided layout settings with
defaults and applies locale-specific typography rules.
For a long data processing pipeline like this, code speaks more than words, you
can check
[transform.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/preprocess/transform.ts)
for details if you are interested in the implementation.
# Compiler
URL: (/en/docs/compiler)
## Overview
YAMLResume is a resume compiler that enables users to create resumes using YAML,
then generate professional PDF documents with precise typography.
YAMLResume adopts [Separation of
Concerns](https://en.wikipedia.org/wiki/Separation_of_concerns) as the core
design principles, which allows users to focus on resume content, without the
worry about styling/layout too much, swap templates without changing content,
and maintain consistency across different output formats.
That being said, users could and should only focus on the content of the resume,
and YAMLResume will take care of the rest like typesetting, layout,
localization, PDF generation, etc.
Key capabilities:
* Defines a [standard structured YAML format](/docs/compiler/types) that covers
both [content](/docs/compiler/types#resumecontent) and
[layout](/docs/compiler/types#resumecontent)
* Validates resume content with [zod](https://zod.dev) or [JSON
Schema](https://json-schema.org)
* Transform resume content data with a
[pipeline](/docs/compiler/architecture#data-processing-pipeline)
* Render content using [LaTeX templates](/docs/layouts/latex/templates)
* Generate PDFs via [XeTeX](/docs/installation#xetex) or
[Tectonic](/docs/installation#tectonic) compilation engines
* Support [multiple languages](/docs/locale) and localization
* Provide [CLI](/docs/cli) commands for project management and build automation
Check the following live demo to see why I call YAMLResume a **resume compiler**:
[](https://asciinema.org/a/728098)
## Learn More
# Types
URL: (/en/docs/compiler/types)
This document outlines the TypeScript types that define the structure of a
resume with YAMLResume. As a TypeScript project, YAMLResume employs static
typing to ensure data consistency. This file provides an overview of the core
data structures used to represent resume information, including personal
details, education, experience, skills and more.
You can check
[types/index.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/models/types/index.ts)
for the source of truth details.
Understanding these types is essential for contributors and developers who want
to customize or extend YAMLResume's functionality.
This document serves as a definitive reference for users seeking to create a
valid YAMLResume, clarifying the distinction between optional and mandatory
fields. To guarantee successful compilation within YAMLResume, a minimal resume
must incorporate the following essential fields:
* `content.basics.name`
* `education[number].area`
* `education[number].degree`
* `education[number].institution`
* `education[number].startDate`
So theoretically a minimum viable resumes looks like the following:
```yml lineNumbers
content:
basics:
name: Xiao Hanyu
education:
- area: Computer Science and Technology
degree: Bachelor
institution: Zhejiang University
startDate: Sep, 2007
```
## Resume
Defines the overall resume structure, including content and layout.
| Prop | Type | Required | Description |
| ---------- | --------------------- | -------- | ---------------------------------------------------- |
| `content` | [`Content`](#content) | ✅ | Defines the structure for the entire resume content. |
| `layouts?` | [`Layouts`](#layouts) | ⬜ | Defines the overall layout configuration. |
| `locale?` | [`Locale`](#locale) | ⬜ | Defines the overall locale configuration. |
Here is a high-level diagram of the resume structure:
### Content
Defines the structure for the entire resume content.
| Prop | Type | Required | Description |
| --------------- | --------------------------------------- | -------- | -------------------------------------------------------------------- |
| `basics` | [`BasicsItem`](#basicsitem) | ✅ | Represents the core personal and contact information. |
| `education` | [`EducationItem[]`](#educationitem) | ✅ | Contains a collection of educational experiences. |
| `awards?` | [`AwardItem[]`](#awarditem) | ⬜ | Contains a collection of awards and recognitions. |
| `certificates?` | [`CertificateItem[]`](#certificateitem) | ⬜ | Contains a collection of certifications and credentials. |
| `interests?` | [`InterestItem[]`](#interestitem) | ⬜ | Contains a collection of interests, hobbies, or personal activities. |
| `languages?` | [`LanguageItem[]`](#languageitem) | ⬜ | Contains a collection of language proficiencies. |
| `location?` | [`LocationItem`](#locationitem) | ⬜ | Contains location information. |
| `projects?` | [`ProjectItem[]`](#projectitem) | ⬜ | Contains a collection of projects. |
| `profiles?` | [`ProfileItem[]`](#profileitem) | ⬜ | Contains a collection of online profiles. |
| `publications?` | [`PublicationItem[]`](#publicationitem) | ⬜ | Contains a collection of publications. |
| `references?` | [`ReferenceItem[]`](#referenceitem) | ⬜ | Contains a collection of references. |
| `skills?` | [`SkillItem[]`](#skillitem) | ⬜ | Contains a collection of skills. |
| `volunteer?` | [`VolunteerItem[]`](#volunteeritem) | ⬜ | Contains a collection of volunteer experiences. |
| `work?` | [`WorkItem[]`](#workitem) | ⬜ | Contains a collection of work experiences and employment history. |
#### AwardItem
Represents a single award, honor, or recognition received.
| Prop | Type | Required | Description |
| ---------- | -------- | -------- | ----------------------------------------------------------- |
| `awarder` | `string` | ✅ | The organization or entity that gave the award. |
| `title` | `string` | ✅ | The name or title of the award. |
| `date?` | `string` | ⬜ | The date the award was received (e.g., "2020", "Oct 2020"). |
| `summary?` | `string` | ⬜ | A short description or details about the award. |
#### BasicsItem
Represents the core personal and contact information.
| Prop | Type | Required | Description |
| ----------- | -------- | -------- | ------------------------------------------------------------------- |
| `name` | `string` | ✅ | Full name. |
| `email?` | `string` | ⬜ | Email address. |
| `headline?` | `string` | ⬜ | A brief professional headline or title (e.g., "Software Engineer"). |
| `phone?` | `string` | ⬜ | Phone number. |
| `summary?` | `string` | ⬜ | A professional summary or objective statement. |
| `url?` | `string` | ⬜ | Personal website or portfolio URL. |
#### CertificateItem
Represents a single certification, credential, or professional qualification.
| Prop | Type | Required | Description |
| -------- | -------- | -------- | ----------------------------------------------------------------- |
| `issuer` | `string` | ✅ | The organization that issued the certificate. |
| `name` | `string` | ✅ | The name of the certificate. |
| `date?` | `string` | ⬜ | The date the certificate was obtained (e.g., "2021", "Nov 2021"). |
| `url?` | `string` | ⬜ | URL related to the certificate (e.g., verification link). |
#### EducationItem
Represents a single educational experience or degree program.
| Prop | Type | Required | Description |
| ------------- | ------------------- | -------- | ---------------------------------------------------------------------- |
| `area` | `string` | ✅ | Area of study (e.g., "Computer Science"). |
| `degree` | [`Degree`](#degree) | ✅ | The type of degree obtained. |
| `institution` | `string` | ✅ | Name of the institution. |
| `startDate` | `string` | ✅ | Start date of study (e.g., "2016", "Sep 2016"). |
| `courses?` | `string[]` | ⬜ | List of courses taken. |
| `endDate?` | `string` | ⬜ | End date of study (e.g., "2020", "May 2020"), empty implies "Present". |
| `summary?` | `string` | ⬜ | Description of accomplishments or details. |
| `score?` | `string` | ⬜ | GPA or academic score. |
| `url?` | `string` | ⬜ | URL related to the institution or degree. |
#### InterestItem
Represents a single interest, hobby, or personal activity.
| Prop | Type | Required | Description |
| ----------- | ---------- | -------- | --------------------------------------------------------------- |
| `name` | `string` | ✅ | Name of the interest category (e.g., "Reading", "Photography"). |
| `keywords?` | `string[]` | ⬜ | Keywords related to the interest. |
#### LanguageItem
Represents a single language proficiency item.
| Prop | Type | Required | Description |
| ----------- | ----------------------- | -------- | ------------------------------------------------------------------- |
| `fluency` | [`Fluency`](#fluency) | ✅ | The level of proficiency of the language. |
| `language` | [`Language`](#language) | ✅ | The language. |
| `keywords?` | `string[]` | ⬜ | Specific keywords related to language skills (e.g., "Translation"). |
#### LocationItem
Represents location and address information.
| Prop | Type | Required | Description |
| ------------- | --------------------- | -------- | --------------------------- |
| `city` | `string` | ✅ | City name. |
| `address?` | `string` | ⬜ | Street address. |
| `country?` | [`Country`](#country) | ⬜ | Country code or name. |
| `postalCode?` | `string` | ⬜ | Postal or ZIP code. |
| `region?` | `string` | ⬜ | State, province, or region. |
#### ProfileItem
Represents a single online profile or social media presence.
| Prop | Type | Required | Description |
| ---------- | --------------------- | -------- | ------------------------------------ |
| `network` | [`Network`](#network) | ✅ | The name of the network or platform. |
| `username` | `string` | ✅ | The username on the platform. |
| `url?` | `string` | ⬜ | The URL of the profile. |
#### ProjectItem
Represents a single project, portfolio piece, or technical work.
| Prop | Type | Required | Description |
| -------------- | ---------- | -------- | --------------------------------------------------------- |
| `name` | `string` | ✅ | Name of the project. |
| `startDate` | `string` | ✅ | Start date of the project (e.g., "2021", "Jan 2021"). |
| `summary` | `string` | ✅ | Detailed accomplishments for the project. |
| `description?` | `string` | ⬜ | Description of the project. |
| `endDate?` | `string` | ⬜ | End date of the project (e.g., "2022", "Jul 2022"). |
| `keywords?` | `string[]` | ⬜ | Keywords or technologies used in the project. |
| `url?` | `string` | ⬜ | URL related to the project (e.g., repository, live demo). |
#### PublicationItem
Represents a single publication, research work, or academic paper.
| Prop | Type | Required | Description |
| -------------- | -------- | -------- | ------------------------------------------------- |
| `name` | `string` | ✅ | Name or title of the publication. |
| `publisher` | `string` | ✅ | Publisher of the work. |
| `releaseDate?` | `string` | ⬜ | Date of publication (e.g., "2023", "Mar 2023"). |
| `summary?` | `string` | ⬜ | Summary or abstract of the publication. |
| `url?` | `string` | ⬜ | URL related to the publication (e.g., DOI, link). |
#### ReferenceItem
Represents a single professional reference or recommendation.
| Prop | Type | Required | Description |
| --------------- | -------- | -------- | ------------------------------------------------------- |
| `name` | `string` | ✅ | Name of the reference. |
| `summary` | `string` | ✅ | A brief note about the reference. |
| `email?` | `string` | ⬜ | Email address of the reference. |
| `phone?` | `string` | ⬜ | Phone number of the reference. |
| `relationship?` | `string` | ⬜ | Relationship to the reference (e.g., "Former Manager"). |
#### SkillItem
Represents a single skill, competency, or technical ability.
| Prop | Type | Required | Description |
| ----------- | ----------------- | -------- | ------------------------------------------------------- |
| `level` | [`Level`](#level) | ✅ | Proficiency level in the skill. |
| `name` | `string` | ✅ | Name of the skill. |
| `keywords?` | `string[]` | ⬜ | Specific keywords or technologies related to the skill. |
#### VolunteerItem
Represents a single volunteer experience or community service.
| Prop | Type | Required | Description |
| -------------- | -------- | -------- | ------------------------------------------------------------ |
| `organization` | `string` | ✅ | Name of the organization. |
| `position` | `string` | ✅ | Role or position held. |
| `startDate` | `string` | ✅ | Start date of the volunteer work (e.g., "2019", "Jun 2019"). |
| `summary` | `string` | ✅ | Summary of responsibilities or achievements. |
| `endDate?` | `string` | ⬜ | End date of the volunteer work (e.g., "2020", "Dec 2020"). |
| `url?` | `string` | ⬜ | URL related to the organization or work. |
#### WorkItem
Represents a single work experience or employment position.
| Prop | Type | Required | Description |
| ----------- | ---------- | -------- | ---------------------------------------------------- |
| `name` | `string` | ✅ | Name of the company or employer. |
| `position` | `string` | ✅ | Job title or position held. |
| `startDate` | `string` | ✅ | Start date of employment (e.g., "2021", "Apr 2021"). |
| `summary` | `string` | ✅ | Summary of responsibilities and accomplishments. |
| `endDate?` | `string` | ⬜ | End date of employment (e.g., "2023", "Aug 2023"). |
| `keywords?` | `string[]` | ⬜ | Keywords related to the role or technologies used. |
| `url?` | `string` | ⬜ | URL related to the company or work. |
### Locale
Defines locale settings for internationalization and localization.
| Prop | Type | Required | Description |
| ----------- | ----------------------------------- | -------- | ---------------------------------------------------------------- |
| `language?` | [`LocaleLanguage`](#localelanguage) | ⬜ | The selected language for the resume content and template terms. |
### Layouts
Array of layout items supporting multiple output formats.
| Prop | Type | Required | Description |
| ----------- | -------------------------------------------------------------------- | -------- | -------------------------------------- |
| `layouts[]` | [`LatexLayout`](#latexlayout) \| [`MarkdownLayout`](#markdownlayout) | ⬜ | Multiple output layout configurations. |
#### Common Layout Types
##### Margins
Defines page margin settings for document layout.
| Prop | Type | Required | Description |
| --------- | -------- | -------- | ------------------------------------ |
| `top?` | `string` | ⬜ | Top margin value (e.g., "2.5cm"). |
| `bottom?` | `string` | ⬜ | Bottom margin value (e.g., "2.5cm"). |
| `left?` | `string` | ⬜ | Left margin value (e.g., "1.5cm"). |
| `right?` | `string` | ⬜ | Right margin value (e.g., "1.5cm"). |
##### Sections
Defines section alias settings for customizing section names.
| Prop | Type | Required | Description |
| ---------- | --------------------------- | -------- | ------------------------------------------------------------------ |
| `aliases?` | `Record` | ⬜ | Custom aliases for section names, overriding default translations. |
| `order?` | `OrderableSectionID[]` | ⬜ | Custom order for sections in the final output. |
#### HtmlLayout
HTML layout configuration.
| Prop | Type | Required | Description |
| ------------- | ----------------------------------- | -------- | ---------------------------------------------------- |
| `engine` | `'html'` | ✅ | The engine to generate the resume. |
| `advanced?` | [`HtmlAdvanced`](#htmladvanced) | ⬜ | Defines advanced configuration options. |
| `sections?` | [`Sections`](#sections) | ⬜ | Defines section customization settings. |
| `template?` | [`HtmlTemplate`](#htmltemplate) | ⬜ | Defines the selected template. |
| `typography?` | [`HtmlTypography`](#htmltypography) | ⬜ | Defines typography settings for document formatting. |
##### HtmlAdvanced
Defines advanced HTML configuration options.
| Prop | Type | Required | Description |
| -------------- | --------- | -------- | ------------------------------------------------ |
| `showIcons?` | `boolean` | ⬜ | Whether to display icons for links and profiles. |
| `title?` | `string` | ⬜ | Custom title for the HTML document. |
| `footer?` | `string` | ⬜ | Custom footer for the HTML document. |
| `description?` | `string` | ⬜ | Meta description for the HTML document. |
| `keywords?` | `string` | ⬜ | Meta keywords for the HTML document. |
##### HtmlTypography
Defines HTML typography settings for document formatting.
| Prop | Type | Required | Description |
| ------------- | ------------------------------- | -------- | ----------------------------------------------- |
| `fontSize?` | [`HtmlFontSize`](#htmlfontsize) | ⬜ | Base font size for the document. |
| `fontFamily?` | `string` | ⬜ | A comma-separated list of font families to use. |
#### LatexLayout
LaTeX layout configuration.
| Prop | Type | Required | Description |
| ------------- | ------------------------------------- | -------- | ------------------------------------------------------ |
| `engine` | `'latex'` | ✅ | The engine to generate the resume. |
| `advanced?` | [`LatexAdvanced`](#latexadvanced) | ⬜ | Defines advanced configuration options. |
| `page?` | [`LatexPage`](#latexpage) | ⬜ | Defines page-level settings for document presentation. |
| `sections?` | [`Sections`](#sections) | ⬜ | Defines section customization settings. |
| `template?` | [`LatexTemplate`](#latextemplate) | ⬜ | Defines the selected template. |
| `typography?` | [`LatexTypography`](#latextypography) | ⬜ | Defines typography settings for document formatting. |
##### LatexAdvanced
Defines advanced latex configuration options.
| Prop | Type | Required | Description |
| ------------ | ------------------------------------ | -------- | ------------------------------------------------ |
| `fontspec?` | `{ numbers?: LatexFontspecNumbers }` | ⬜ | LaTeX fontspec package configurations. |
| `showIcons?` | `boolean` | ⬜ | Whether to display icons for links and profiles. |
##### LatexPage
Defines latex page-level settings for document presentation.
| Prop | Type | Required | Description |
| ------------------ | ------------------------- | -------- | -------------------------------- |
| `margins?` | [`Margins`](#margins) | ⬜ | Defines page margin settings. |
| `paperSize?` | [`PaperSize`](#papersize) | ⬜ | Defines the paper size. |
| `showPageNumbers?` | `boolean` | ⬜ | Whether to display page numbers. |
##### LatexTypography
Defines latex typography settings for document formatting.
| Prop | Type | Required | Description |
| ------------- | --------------------------------- | -------- | ----------------------------------------------- |
| `fontSize?` | [`LatexFontSize`](#latexfontsize) | ⬜ | Base font size for the document. |
| `fontFamily?` | `string` | ⬜ | A comma-separated list of font families to use. |
| `links?` | `{ underline?: boolean }` | ⬜ | Link styling settings. |
#### MarkdownLayout
Markdown layout configuration.
| Prop | Type | Required | Description |
| ----------- | ----------------------- | -------- | --------------------------------------- |
| `engine` | `'markdown'` | ✅ | The engine to generate the resume. |
| `sections?` | [`Sections`](#sections) | ⬜ | Defines section customization settings. |
## Enum Types
### Content Enums
#### Country
A union type for all possible countries and regions in the world.
#### Degree
A union type for all possible degrees.
* `Associate`
* `Bachelor`
* `Diploma`
* `Doctor`
* `High School`
* `Master`
* `Middle School`
#### Fluency
A union type for all possible language fluency levels.
* `Elementary Proficiency`
* `Full Professional Proficiency`
* `Limited Working Proficiency`
* `Minimum Professional Proficiency`
* `Native or Bilingual Proficiency`
#### Language
A union type for all supported languages.
#### Level
A union type for all possible skill proficiency levels.
* `Advanced`
* `Beginner`
* `Expert`
* `Intermediate`
* `Master`
* `Novice`
#### Network
A union type for all possible social network options.
### Layout Enums
#### HtmlFontSize
A union type for all possible HTML font size options.
HTML engine supports font sizes from 14px to 20px:
* `14px`, `15px`, `16px` (default), `17px`, `18px`, `19px`, `20px`
#### HtmlTemplate
A union type for all possible HTML template options.
See also: [templates](/docs/layouts/html/templates)
* `calm`
#### LatexFontSize
A union type for all possible LaTeX font size options.
For now only 3 options are supported:
* `10pt` - 10pt font size (default)
* `11pt` - 11pt font size
* `12pt` - 12pt font size
#### LatexFontspecNumbers
A union type for all possible latex fontspec numbers options.
* `Auto` - allowing the style to be automatically determined based on the
selected `LocaleLanguage` (default)
* `Lining` - standard lining figures (default for CJK languages)
* `OldStyle` - old style figures with varying heights (default for Latin
languages)
#### LatexTemplate
A union type for all possible LaTeX template options.
See also: [templates](/docs/layouts/latex/templates)
* `moderncv-banking`
* `moderncv-casual`
* `moderncv-classic`
#### PaperSize
A union type for all possible LaTeX paper size options.
* `a4` (default)
* `letter`
### Locale Enums
#### LocaleLanguage
A union type for all possible locale languages.
See also: [multi-languages](/docs/locale)
* `en`
* `es`
* `zh-hans`
* `zh-hant-hk`
* `zh-hant-tw`
# Content
URL: (/en/docs/content)
This chapter delves into the heart of your resume: the content.
Content is the core of your resume. It's what makes your resume stand out from
the rest, with [layouts](/docs/layouts) and design being the icing on the cake.
We'll cover two key aspects of content creation in YAMLResume:
* **Rich Text**: How to use Markdown to add formatting like bold, italics,
links, and lists to your descriptions.
* **Multi-Language Support**: How to create resumes in different languages,
taking into account linguistic and cultural nuances.
Explore the guides below to master your resume's content.
# Rich Text
URL: (/en/docs/content/rich-text)
In YAMLResume, you're not limited to plain text. The `summary` fields across
different sections (like `work`, `education`, `projects`, etc.), support a
limited set of [Markdown](https://en.wikipedia.org/wiki/Markdown) syntax to
allow for rich text formatting. This enables you to create more expressive and
readable resume content.
## Supported Syntax
Here's a quick rundown of the Markdown features you can use:
### Bold and Italic
You can emphasize text using bold or italic styling.
* **Bold:** `**your bold text**`
* **Italic:** `*your italic text*`
* **Both:** `***your bold and italic text***`
### Links
You can embed hyperlinks within your text.
* **Syntax:** `[link text](https://example.com)`
### Lists
Both ordered and unordered lists are supported, including nesting.
The `|` (pipe) character in YAML is used to create a "literal block scalar,"
which is a way to write [multi-line
strings](https://stackoverflow.com/a/21699210/2310396) while preserving
newlines. This is particularly useful for fields like `summary` where you
might want to include lists or paragraphs. Everything indented under the `|`
will be treated as a single string, with line breaks maintained.
#### Unordered Lists
Use a hyphen (`-`) or an asterisk (`*`) for each list item.
```yml lineNumbers
summary: |
- First item
- Second item
- Third item
```
#### Ordered Lists
Use numbers followed by a period for ordered lists.
```yml lineNumbers
summary: |
1. First item
2. Second item
3. Third item
```
#### Nested Lists
You can indent lists to create nested structures.
```yml lineNumbers
summary: |
- Team player with a detail-oriented mindset.
- Experienced in databases (SQL, NoSQL).
- Proficient in PostgreSQL and MongoDB.
- Familiar with Redis for caching.
- Strong foundation in data structures and algorithms.
```
## A Complete Example
Here is a `summary` field from a `work` entry that combines several of the
supported syntax features:
```yml lineNumbers
---
content:
basics:
# ...
summary: |
This is a sample YAML resume that support limited set of markdown rich text syntax (bold, italics, links, lists):
- Computer Science major with **strong foundation** in data structures, *algorithms*, and software development
1. Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
2. Experiened in databases (SQL, NoSQL), familiar with server-side technologies ([Node.js](https://nodejs.org/en), Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
```
Here is the generated PDF:
## What's Not Supported?
YAMLResume only supports the syntax listed above. Other common Markdown features
such as headings, blockquotes, images, horizontal rules, and tables are **not
supported and will be ignored during processing**.
# create-yamlresume
URL: (/en/docs/ecosystem/create-yamlresume)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
[create-yamlresume](https://yamlresume.dev/docs/ecosystem/create-yamlresume)
helps you create a new [YAMLResume](https://yamlresume.dev) project with a
one-liner command.
## Usage
<>
```console
npx create-yamlresume my-resume
# or
npm init yamlresume my-resume
```
```console
pnpm create yamlresume my-resume
```
```console
yarn create yamlresume my-resume
```
```console
bun create yamlresume my-resume
```
>
## What it does
This tool will:
1. Create a new directory with your project name
2. Create a basic Node.js project structure with:
* `package.json` with YAMLResume dependency and useful scripts
* `.gitignore` file with appropriate excludes
* `README.md` with basic usage instructions
3. Install all necessary dependencies
4. Create a new sample resume file using `yamlresume new`
5. Show available commands and next steps
## Sample Session
```
$ pnpm create yamlresume
✔ What is your project name? … yamlresume
ℹ Using pnpm.
✔ What should your resume file be called? (without .yml extension) … resume
◐ Creating YAMLResume project in /private/tmp/yamlresume...
◐ Installing dependencies with pnpm...
Packages: +59
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 59, reused 59, downloaded 0, added 59, done
dependencies:
+ yamlresume 0.7.5
Done in 4s using pnpm v10.6.3
✔ Dependencies installed successfully!
◐ Creating resume file resume.yml...
✔ Created resume.yml successfully.
◐ Initializing git repository...
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m
Initialized empty Git repository in /tmp/yamlresume/.git/
✔ Git repository initialized!
[master (root-commit) 53c6210] init a new YAMLResume project
4 files changed, 421 insertions(+)
create mode 100644 .gitignore
create mode 100644 README.md
create mode 100644 package.json
create mode 100644 resume.yml
✔ Initial commit created!
ℹ
✨ Project created successfully!
ℹ
Next steps:
ℹ 1. cd yamlresume
ℹ 2. Edit your resume: resume.yml
ℹ 3. Build your resume: pnpm run build
ℹ 4. Watch for changes: pnpm run dev
ℹ 5. Show all commands: pnpm run yamlresume help
ℹ
Learn more:
ℹ 🏠 Homepage: https://yamlresume.dev
ℹ 📖 Documentation: https://yamlresume.dev/docs/
ℹ 🎨 Templates: https://yamlresume.dev/docs/layouts/latex/templates
ℹ 📝 Schema: https://yamlresume.dev/docs/compiler/schema
```
## Project Structure
The generated project looks like this:
```
my-resume/
├── package.json # Project configuration with yamlresume dependency
├── .gitignore # Git ignore rules
├── README.md # Project documentation
└── resume.yml # Your YAML resume (filename you choose)
```
## Available Commands
In the generated project, you can run:
* `npm run build` - Build your resume to PDF
* `npm run dev` - Watch for changes and rebuild automatically
* `npm run validate` - Validate your resume against the schema
* `npm run yamlresume` - Run the YAMLResume CLI
# Ecosystem
URL: (/en/docs/ecosystem)
YAMLResume provides a set of tools to help you create, convert and manage your
resumes more efficiently. Here are some of the key utilities available:
## create-yamlresume
[create-yamlresume](./ecosystem/create-yamlresume) makes it easy to start a new
YAMLResume project with a one-liner command. It will scaffold your project
directory, installs necessary dependencies, and generates a sample resume file
so you can get started right away.
* Scaffold a new project with `npx create-yamlresume my-resume` or similar
commands for `npm`, `yarn`, or `pnpm`.
* Includes a ready-to-use project structure, scripts for building and validating
resumes, and a sample YAML resume file.
## json2yamlresume
[json2yamlresume](./ecosystem/json2yamlresume) is a CLI tool for converting
[JSON Resume](https://jsonresume.org/) files to the YAMLResume format.
* Converts JSON Resume files to YAMLResume, transforming fields and structure as
needed.
* Ensures your data is validated against the YAMLResume schema.
These tools help you migrate from other formats, automate project setup, and
streamline your workflow with YAMLResume.
## Learn More
# json2yamlresume
URL: (/en/docs/ecosystem/json2yamlresume)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
[json2yamlresume](https://yamlresume.dev/docs/ecosystem/json2yamlresume) is a
[command-line tool](https://npmjs.com/package/json2yamlresume) to convert [JSON
Resume](https://jsonresume.org/) to [YAMLResume](https://yamlresume.dev/)
format.
## Features
* **Format Conversion**: seamlessly convert JSON Resume to YAMLResume format
* **[Structure Transformation](#conversion-rules)**
* **CLI Interface**: simple command-line interface for easy conversion
* **Validation**: built on top of YAMLResume's robust [schema
validation](/docs/compiler/schema)
## Installation
<>
```console
npm install -g json2yamlresume
```
```console
pnpm add -g json2yamlresume
```
```console
yarn global add json2yamlresume
```
```console
bun add -g json2yamlresume
```
>
## Usage
### Convert a JSON Resume to YAMLResume
```bash
$ json2yamlresume input.json output.yaml
# or call the command without the optional output path, in which case the
# output will be written to the same directory as the input file with the same
# name but with a .yml extension
$ json2yamlresume input.json
```
### Show help
```bash
$ json2yamlresume --help
Usage: json2yamlresume [options] [output-file]
Convert JSON Resume to YAMLResume format
Arguments:
input-file Input JSON Resume file path
output-file Output YAMLResume file path
Options:
-V, --version output the version number
-h, --help display help for command
```
### Show version
```bash
$ json2yamlresume --version
0.7.4
```
## Example
Here is an example resume in JSON Resume format:
```json lineNumbers title="json-resume.json"
{
"basics": {
"name": "John Doe",
"label": "Software Engineer",
"email": "john@example.com",
"location": {
"city": "San Francisco",
"countryCode": "US"
},
"profiles": [
{
"network": "GitHub",
"username": "johndoe",
"url": "https://github.com/johndoe"
}
]
},
"work": [
{
"name": "Tech Corp",
"position": "Senior Developer",
"startDate": "2020-01",
"summary": "Led development of web applications.",
"highlights": [
"Increased performance by 40%",
"Mentored 5 junior developers"
]
}
],
"education": [
{
"institution": "University of California",
"area": "Computer Science",
"studyType": "Bachelor of Science",
"startDate": "2018"
}
]
}
```
You can call the following command to convert the JSON Resume to YAMLResume:
```bash
$ json2yamlresume json-resume.json yamlresume.yml
```
Here is the output in YAMLResume format:
```yaml lineNumbers title="yamlresume.yml"
---
content:
basics:
name: John Doe
headline: Software Engineer
email: john@example.com
education:
- institution: University of California
area: Computer Science
degree: Bachelor of Science
startDate: "2018"
location:
city: San Francisco
country: US
profiles:
- network: GitHub
username: johndoe
url: https://github.com/johndoe
work:
- name: Tech Corp
position: Senior Developer
startDate: 2020-01
summary: |-
- Increased performance by 40%
- Mentored 5 junior developers
```
## Conversion Rules
### 1. Location and Profiles Movement
* `basics.location` → top-level `location`
* `basics.profiles` → top-level `profiles`
* `basics.label` → `basics.headline`
### 2. Education Field Mapping
* `education[].studyType` → `education[].degree`
### 3. Highlights Integration
The converter merges `highlights` arrays into `summary` fields as markdown
unordered lists for these sections:
* `work[]`
* `volunteer[]`
* `projects[]`
Example:
```json
{
"summary": "Led development team.",
"highlights": ["Increased performance", "Mentored developers"]
}
```
Becomes:
```yaml
summary: |-
Led development team.
- Increased performance
- Mentored developers
```
Remember that YAMLResume's summary field supports [rich
text](/docs/content/rich-text)!
### 4. References
* `references[].reference` → `references[].summary`
## Supported JSON Resume Sections
The converter supports all standard JSON Resume sections:
* ✅ `basics`
* ✅ `work`
* ✅ `volunteer`
* ✅ `education`
* ✅ `awards`
* ✅ `certificates`
* ✅ `publications`
* ✅ `skills`
* ✅ `languages`
* ✅ `interests`
* ✅ `references`
* ✅ `projects`
# Font
URL: (/en/docs/guide/font)
If text is the vehicle for the transmission of information, then the visual
characteristics of the text itself—that is, the font—influence the quality of
the message.
In principle, the typesetting of a resume should be concise and clear. As for
font, first you should never use fonts that are too fancy, second the types of
fonts should not be too many—best limited in three. Here we will discuss some
basics of fonts and main points in typesetting.
## Font classification
### Serif vs. sans-serif
In terms of serifs, fonts for Latin alphabet are divided into two families:
serif and sans-serif[^1].
A serif is a tiny line attached to the end of a stroke in a letter. A font with
serifs is called serif font, or serifed font. In contrast, a font without serifs
is called sans-serif font, where *sans* is the French word for "without".
### Proportional vs. monospaced
According to whether or not the widths of letters are the same, fonts can be
divided into monospaced and proportional. As the name suggests, all letters in a
monospaced font occupy the same amount of horizontal space, while in a
proportional font they don't.
In traditional printing, proportional fonts can improve the legibility of words.
Due to technical limitations, the early computers and typewriters can not adjust
the widths of letters . So all characters are made into the same width, thus
monospaced fonts come into being. With the improvement of computer technology,
the GUI (Graphical User Interface) has become the mainstream and been developing
continuously, technical limitations no longer exist, so proportional fonts have
become quite popular, since they are more naturally legible for human.
### CJK Font
Font styles in [CJK](https://en.wikipedia.org/wiki/CJK_characters) is a bit
complicated. Generally speaking, there're also serif and sans-serif fonts in CJK
languages.
#### Song
**[Song](https://en.wikipedia.org/wiki/Ming_typefaces)**: known as 宋体/明体 in
Simplified Chinese, 宋體/明體 in Traditional Chinese, みんちょうたい/明朝体 in Japanese,
명조체/明朝體 in Korean, is the serif font in CJK.
Song is usually used for body text, headings and notes. When used for headings,
the weight of the characters is often increased to differentiate them from the
body text. Currently it is the most common used font in printing.
#### Bold
**[Bold](https://en.wikipedia.org/wiki/Sans-serif)**, known as 黑体 in Simplified
Chinese, 黑體 in Traditional Chinese, is the sans-serif font in CJK.
Bold is often used for headlines, introductions, logos, etc. Bold is also used
in body text to emphasize specific words. Due to the large number of strokes in
Chinese characters and the poor clarity of bold in small characters, traditional
printing rarely uses bold as the body text; however, with the refinement of
character creation technology, coupled with the development of the Internet and
digital publishing, many bold fonts have been developed for body text, and a
small number of books have begun to use bold as the body text font.
Besides Song and Bold, *Chinese also has two additional font styles that are
widely used*.
#### Regular
**[Regular](https://en.wikipedia.org/wiki/Regular_script)**: known as 楷体 in
Simplified Chinese, 楷體 in Traditional Chinese, is the most common style used in
modern Chinese writings.
Regular are mainly used for headings, introductions, dialogues, summaries and
other paragraphs that are different from the main text. However, regular are
less frequently used for emphasis because of their proximity to Song.
#### Fangsong
**[Fangsong](https://en.wikipedia.org/wiki/Fangsong)**, known as 仿宋体 in
Simplified Chinese, 仿宋體 in Traditional Chinese, is a type of regular script
typeface. It is mostly used in the introduction, summary and other paragraphs
that are different from the main text. Meanwhile, it is also the standard font
used in official documents produced by the Chinese government.
## Font design and usage
Digital publishing has been developing for many years, and western lanauges has
a very small character set, so there are many kinds of fonts designed by
different people with various demands.
For a monospaced font, the main focus is on the design of each single letter,
other than that, in a proportional font, the space between letters should also
be seriously considered.
### Letter composition
Letters in every font have a consistent structure, font users are supposed to
know these basic concepts:
* baseline: the invisible line on which "H" or "n" stands
* cap height: the distance from baseline to the top of a linear uppercase letter
like "H" or "E"
* x-height: the distance from the bottom to the top of lowercase "x"
* ascender: the ascending parts of lowercase letters like "b", "d", "f", "h",
"k", "l" over the top of "x" , its height is called the ascender height, the top
line which ascenders align is called the ascender line
* descender: the descending parts of lowercase letters like "g", "j", "p", "q",
"y" below the baseline, its height is called the descender height, the bottom
line which descenders align is called the descender line
### Letter-spacing
Letter-spacing, or tracking, refers to the space between letters.
Letter-spacing adjustment is divided into font designers' side and font users'
side; it affects the density in a line or block of text.
For font designers, the adjustment of letter-spacing is an important procedure
in designing. In a proportional font, the spacing on the left side of a single
letter is not necessarily the same as on the right side. The purpose is to
ensure legibility when the letter is next to whatever other letters on both
sides.
For font users, the adjustment of letter-spacing means manually rearranging the
space between letters by software after the original typesetting, in order to
obtain special alignment[^2], or a better layout effect[^3].
### Kerning
Kerning refers to the process of increasing or decreasing the space between
specific letter pairs in a proportional font. These pairs of letters are called
kerning pairs. Kerning is more concerned about the visual spacing rather than
the actual spacing.
Designers of many fonts will pay attention to kerning pairs while designing, and
store kerning adjustment values in the font file. In this way, typesetting
software can automatically adjust spacing for kerning pairs according to the
values, thus produce a better layout effect.
Every letter has a unique shape, so during the design and implementation of a
font, letters in all kerning pairs must cooperate to produce the best visual
effect. In fact, this is where the key procedure and difficulties lie[^4].
### Ligature
A ligature is a glyph that joins two or more letters together.
Ligatures in print originate from hyphenated characters in handwriting. After
the birth of movable-type printing, many ligatures were directly made into type.
However, after the widespread use of sans-serif fonts in the 1950s and
phototypesetting in the 1970s, the use of block letters became rare. The
earliest digital typesetting software that could use ligatures for digital
typesetting is TeX created by [Donald
Knuth](https://en.wikipedia.org/wiki/Donald_Knuth). This trend also affected the
desktop publishing after 1985. In early times, software could not replace
letters with ligatures (but TeX could), and most of the newly made fonts for
computers did not include ligatures. Furthermore, in the early days of personal
computers, most of the computers were in English, and there was no practical
need for the use of ligature, as it was not mandatory to use it in the English
language. With the development of digital typesetting technology such as
[OpenType](https://en.wikipedia.org/wiki/OpenType), ligatures have
gradually returned to practice[^5].
In normal day-to-day business documents, the lack of ligatures is not treated as
spelling error, but for professional typesetting in advertising, book publishing
and other fields, ligatures are essentially required.
### Italics
Italic is a font style achieved by tilting the font on top of the normal font
style; it can refer to italic type or oblique type[^6].
There are two types of tilted fonts in western font: oblique type and italic
type. The one that is tilted with a change in the shape of the characters is
"Italic Type", while the one that simply tilts the original font to the right
without a change in the shape of the characters is known as oblique type. Since
oblique italics, which are simply tilted and distorted by software algorithms,
have loose strokes, more and more designs have recently favored the use of newly
designed, specialized italic types.
Theoretically, italics include italic type and oblique type, but it should be
noticed that actually not all italic type are slanted .
In practice, italics are usually applied to one piece of text to emphasize or
distinguish it from the main body that is in serif fonts.
### Old style numbers
Old style numbers, also known as [text
figures](https://en.wikipedia.org/wiki/Text_figures), designed with varying
heights for latin script languages in a fashion that resembles a typical line of
running text, hence the name.
In contrast, lining style numbers (also called lining, titling or modern
figures), have the same height as upper-case characters.
YAMLResume defaults to old style numbers for latin script language resumes and
lining style numbers for others.
> High-quality typesetting generally prefers text figures in body text: they
> integrate better with lowercase letters and small capitals, unlike runs of
> lining figures. Lining figures are called for in all-capitals settings (hence
> the alternative name titling figures), and may work better in tables and
> spreadsheets.
>
> — [Text figures](https://en.wikipedia.org/wiki/Text_figures#Design)
### Recommended Western Font
There are tons of fonts out there nowadays, so recommending a universal western
font scheme for your resume is not an easy task.
* RECOMMEND, using serif fonts for the main body text
* RECOMMEND, using sans-serif fonts for titles, but serif fonts can be used as
well
* RECOMMEND, using italic font style to emphasize text in main body,
corresponding bold style can be used as well
Here is a list of commonly used serif fonts:
* [Garamond](https://en.wikipedia.org/wiki/Garamond)
* [Palatino](https://en.wikipedia.org/wiki/Palatino)
* [Geogria](https://en.wikipedia.org/wiki/Georgia_\(typeface\))
* [Baskerville](https://en.wikipedia.org/wiki/Baskerville)
* [Minion](https://en.wikipedia.org/wiki/Minion_\(typeface\))
* [Hoefler Text](https://en.wikipedia.org/wiki/Hoefler_Text)
* [Linux Libertine](https://en.wikipedia.org/wiki/Linux_Libertine)
A list of commonly used sans-serif fonts:
* [Helvetica](https://en.wikipedia.org/wiki/Helvetica)
* [Gill Sans](https://en.wikipedia.org/wiki/Gill_Sans)
* [Optima](https://en.wikipedia.org/wiki/Optima)
***
[^1]: [Serif vs Sans: The Final Battle](http://designreviver.com/inspiration/serif-vs-sans-the-final-battle/)
[^2]: When the width of layout is small, usually it's not suitable to
use justified alignment, because applying justified alignment will
force most software to adjust the letter-spacing, and often, the
final layout effect will be very bad.
[^3]: For example, the innovation of TeX typesetting system lies in its
excellent
[justification](https://en.wikipedia.org/wiki/TeX#Hyphenation_and_justification)
algorithm, the principle of which is to adjust the letter-spacing to
make the layout more
[justified](https://en.wikipedia.org/wiki/Typographic_alignment#Justified).
[^4]: A Beginner's [Guide](https://designschool.canva.com/blog/kerning/) to Kerning Like a Designer
[^5]: [Ligature](https://en.wikipedia.org/wiki/Ligature)
[^6]: [Italic Type](https://en.wikipedia.org/wiki/Italic_type)
# Grammar
URL: (/en/docs/guide/grammar)
## Content
Being concise is the most important for a resume. Basic objective information is
the core of a resume:
* personal information
* important contact information such as telephone, e-mail must be clear
* education backgrounds
* if you are a fresh graduate, you can add education background of high school
* professional skills
* awards
* work (internship) experiences
Be cautious to add subjective information:
* self-evaluation
* personal hobbies
* social activities, volunteer experiences, etc., which have no clear
relations with the applied position
Be cautious to add objective information that are unrelated with the applied
position:
* photos
* birthday
* home address
* nationality
* political identity
* marital and family status
Prohibited contents:
* "My Resume" as the title
* watermarks of logos on resume templates from different sources
## Spelling
Spelling errors in a resume are a big no-no in a job search. Too many elementary
spelling errors can affect an employer's first impression of an applicant. Most
software have a spell checker, so use it appropriately to avoid many primary
spelling errors. Of course, don't rely too much on the software's spelling
check, it's better to find a trusted friend for a proof-reading.
### Proper nouns
In addition to common spelling errors, there are highly frequent spelling errors
in proper nouns, because they are more case sensitive. The same combination of
letters with different capitalization may have completely different meanings in
various fields, so job seekers must be very cautious. For example,
[iOS](http://www.apple.com/ios/) with lowercase "i" represents the mobile
operating system on an Apple iPhone, while
[IOS](https://en.wikipedia.org/wiki/Cisco_IOS) with uppercase "I" is the
dedicated system on Cisco routers.
Limited to our background, this guide summarizes some common spelling errors of
proper nouns within the IT field.
| Typos | Fix |
| ------------------------------ | -------------- |
| ajax | Ajax AJAX |
| android | Android |
| android studio | Android Studio |
| APP | App |
| AppStore, app store | App Store |
| Css, css | CSS |
| eclipse | Eclipse |
| git, GIT | Git |
| Html, html | HTML |
| Http, http | HTTP |
| json, Json | JSON |
| JAVA, java | Java |
| Javascript, javascript, JS, js | JavaScript |
| linux, LINUX | Linux |
| mysql | MySQL |
| node, Node, NodeJS, nodejs | Node.js |
| OC, oc, objective-c | Objective-C |
| python | Python |
| ruby | Ruby |
| sqlite | SQLite |
| xml, Xml | XML |
| xcode, XCODE, XCode | Xcode |
| ios, IOS | iOS |
| iphone, IPHONE | iPhone |
| jquery, JQuery | jQuery |
## Syntax
Compared with ordinary writing, there are some special grammar requirements for
resume writing.
* generally use the past tense, but If you are describing the present work or
education experience, use the present tense
* generally begin an item with a verb in the past tense, omitting the subject
* try to use simple and short sentences that are easy to understand, instead of
long and complex clauses
* list education backgrounds and work experiences in flashbacks, and the time
format should be accurate to month
* use the standard time format like "2015.05", or format that can be definitely
interpreted, such as "June, 2016", instead of year abbreviations like "05/06",
which can be interpreted differently in different countries
Here a list of 100 commonly used words in past tense in resume writing:
| | | | | |
| ------------- | ------------ | ------------ | ------------ | ------------ |
| Accelerated | Accomplished | Accounted | Accumulated | Achieved |
| Administrated | Arbitrated | Articulated | Boosted | Briefed |
| Broadened | Budgeted | Campaigned | Chaired | Championed |
| Clarified | Coached | Collaborated | Coordinated | Corroborated |
| Cultivated | Customized | Decided | Decreased | Delegated |
| Demonstrated | Designated | Developed | Devised | Diagnosed |
| Documented | Doubled | Economized | Edited | Educated |
| Empowered | Enabled | Encouraged | Endorsed | Enhanced |
| Facilitated | Focused | Forecasted | Generated | Harmonized |
| Harnessed | Identified | Illustrated | Impressed | Improved |
| Increased | Justified | Launched | Led | Magnified |
| Managed | Marketed | Mastered | Navigated | Negotiated |
| Observed | Obtained | Organized | Orchestrated | Participated |
| Pinpointed | Performed | Publicized | Published | Realigned |
| Recognized | Recommended | Selected | Separated | Spearheaded |
| Stimulated | Succeeded | Surpassed | Synchronized | Synergized |
| Tabulated | Targeted | Tested | Traded | Translated |
| Triggered | Triumphed | Troubleshot | Uncovered | Underwrote |
| Unearthed | Unified | Upgraded | Urged | Utilized |
| Validated | Verbalized | Verified | Vitalized | Yielded |
# Guide
URL: (/en/docs/guide)
## A Guide for Resume Writing and Typesetting
A resume gives people a first impression of your career.
On an A4 sheet paper (210 mm \* 297 mm), a resume ends the previous stage of
your life and begins the next.
> A nine-storey tower arises from a pile of earth.
>
> — [Laozi](https://en.wikipedia.org/wiki/Laozi), Chapter 64
A pretty-print resume is based on details such as font, punctuation, layout
and grammar.
This guide systematically explains the essentials of resume writing and
typesetting with special emphasis on typography, helping you to make a resume
beautiful in form and spirit. For each topic, it first explains WHAT it is, then
WHY it is so, and finally HOW to do it.
The guide tries to be as concise and clear as possible, there are four priority
levels for the different explanations:
* **MUST**, mandatory in typesetting, serious mistake if violated
* **RECOMMEND**, conform to general typesetting standards, highly recommended
* **SHOULD NOT**, require advanced knowledge or features in typesetting, or diverse
in different languages and cultures, or vary with regulations in companies,
dangerous to use if not informed
* **MUST NOT**, conflict with general typesetting standards, forbidden to apply
# Publishing
URL: (/en/docs/guide/publishing)
## File format
Common file formats for resumes include:
* PDF
* Microsoft Word (doc, docx)
* Plain Text
* HTML
Here we recommend PDF most:
* PDF has excellent cross-platform output quality, ensuring nearly 100%
consistent printing and display
* PDF can be embedded with fonts, allowing great freedom in font selection
* default PDF reader available on most platforms
* Windows 8 and above have a built-in PDF reader
* macOS has
[Preview](https://en.wikipedia.org/wiki/Preview_\(Mac_OS\)), iOS
has [iBooks](http://www.apple.com/ibooks/)
* many browsers (such as Chrome) have built-in
[pdf.js](http://mozilla.github.io/pdf.js/), which can also open PDF by default
It's easier to learn MS Word, but delivering a resume with Word format has great
disadvantages:
* Word documents must be opened with additional office software
installed
* Microsoft Word, [WPS Office](https://wps.com) for Windows
* [iWork](https://en.wikipedia.org/wiki/IWork) for macOS
* [WPS Office](https://wps.com), [LibreOffice](https://www.libreoffice.org/)
for Linux
* many online document editing systems such as [Google
Docs](https://docs.google.com/) can also open and edit Word documents
* Word documents may display quite differently in different software on
different platforms
* in reality not everyone has installed [Microsoft
Word](https://products.office.com/en-us/word) on his computer
* another fact is that a genuine license for Microsoft Word may cost hundreds
of dollars
* in order to try to ensure consistent display and output, Word documents are
best used with only a few fonts that are common to the major operating systems,
which results in Word documents with very little freedom in font selection.
Of course, different HR managers in various companies can have different
requirements and preferences. We recommend that you export the resume to PDF as
an alternative if making it by Word
## Email etiquette
Aside from the company's proprietary recruiting system, the primary method of
submitting resumes for job applications should be email. Some basic e-mail
etiquette is as follows.
* set the correct email nickname, don't use informal overly fancy nicknames, it
will give the employer an impression of being very unprofessional
* use a uniform format in the email header, keep it clear and concise to convey
the most important information
* recommended format: `Apply-Company Position-Name-[University/Education]-[Work Experience]`
* the body of the email should be concise, it is not recommended to write a long
cover letter with a lot of personal subjective evaluation
* best to add the title and a greeting at the beginning of text
* contents in body
* basic personal information, such as work status (in-service or not),
position, education and work experiences, etc.
* applying position
* applying approach, whether recommended by others
* add an inscriber containing name and contact information (telephone/email)
* attach the resume file named with the same format of the header
# Punctuations
URL: (/en/docs/guide/punctuations)
Punctuation is the most inconspicuous but also most error-prone part in resume
writing. Whether or not you can use punctuation correctly and standardized
reflects the job seeker's attitude to apply for the job.
The correct and standardized use of punctuation may look easy, but it is not as
simple as it seems. The main reason is that different language environments
either do not have a clear specification for the use of punctuation, or have a
specification but many places are not clearly defined, or there are several sets
of [style guides](https://en.wikipedia.org/wiki/Style_guide) but they are
incompatible or even conflicting with each other; and secondly, the actual
typesetting often encounters the situation of multi-language mixing, and then
the problem will become even more complicated. This guide tries to summarize
some general rules for the use of punctuation for your reference.
* MUST, adding one space after commas, periods, semicolons, colons, exclamation
marks and question marks
* MUST, adding one space before an open bracket and after a closed bracket, same
as a word, but no space after a closed bracket followed by a comma
* RECOMMEND, adding one space between a number and its unit
* RECOMMEND, not adding spaces around a hyphen, sometimes necessary to fine-tune
the letter-spacing
* RECOMMEND, not adding spaces around a slash which locates two parallel things
like "A or B"
* RECOMMEND, using quotation marks (`‘`、`’`、`“`、`”`), instead of
[apostrophes](https://en.wikipedia.org/wiki/Apostrophe)
* SHOULD NOT, adding any punctuation mark at the end of items in a [Bullet
list](https://en.wikipedia.org/wiki/Bullet_\(typography\))
* MUST NOT, hanging a punctuation mark at the start of a line, which can be
avoided by software's automatic settings or manual adjustment
## Connective mark
Hyphen (-), en-dash (–), and em-dash (—) are three punctuation marks that can be
easily confused and lead to errors. The usage of them is described below.
> for a hyphen, type a hyphen (-);
>
> for an en-dash, type two hyphens (--);
>
> for an em-dash, type three hyphens (---);
>
> for a minus sign, type a hyphen in mathematics mode ($-$).
>
> — Donald Knuth, [The TeXBook](https://en.wikipedia.org/wiki/Computers_and_Typesetting)
### Hyphen (-)
The hyphen is used primarily for:
* compound words such as "upper-case letter"
* separating numbers or characters, such as telephone numbers, "1-888-777-666"
* hyphenating the word at the end of a line to keep the whole layout neat
There are a few rules about hyphenation at the end of a line:
* try not to hyphenate the last word in more than three continuous lines
* avoid dividing proper nouns, personal names, etc.
* avoid cross-page hyphenation
* segment words according to syllables in principle, however the position to
hyphenate varies with words, so it's better to check dictionaries if
necessary[^7]
### En-dash (–)
The length of an en-dash equals the width of uppercase "N", and is half of the
length of an em-dash. It's mainly used for:
* indicating a range of numbers, date time, etc. such as dates in a year, "July–August 1968"
* indicating the start and end points of the navigation path, such as
"Boston–Hartford route"
When using an en-dash, it is generally not necessary to add spaces around it.
### Em-dash (—)
The length of an em-dash equals the width of uppercase "M", and its usage is the
most flexible and complex. It is usually used for:
* explaining something in details, equivalent to parentheses or colons
* segmenting declarative clauses
* indicating that the conversation is interrupted, in which case an
ellipsis may also be used
In addition, there are situations where two or three em-dashes are joined
together, but I won't go into details here.[^8].
***
[^7]: Professional typesetting software generally have automatic
hyphenating function, to some extents it can locate the position for
hyphenation if turned on, but it's best to artificially check
again.
[^8]: [Wikipedia/Dash](https://en.wikipedia.org/wiki/Dash) demonstrates detailed
usage of this symbol and the input methods of it on different operating
systems.
# Typesetting
URL: (/en/docs/guide/typesetting)
Typesetting is "architecture in two dimensions."
If text and its fonts are the materials of the building, then typesetting is
the drawings of the building. Before discussing typesetting, we need to clarify
some basic concepts, especially the system of dimensional units commonly used in
typesetting.
## Font size
Font size is the standard measurement for characters' size. The international
universal unit of font size is the point.
The [point](https://en.wikipedia.org/wiki/Point_\(typography\)) is usually
abbreviated as pt, it's the smallest unit of measure in typesetting. In fact,
the size of the point has varied throughout the history of printing. Since the
18th century, the point's size has varied from 0.18 to 0.4 mm. Following the
advent of [desktop publishing](https://en.wikipedia.org/wiki/Desktop_publishing)
in the 1980s and 1990s, [digital
printing](https://en.wikipedia.org/wiki/Digital_printing) has largely supplanted
the [letterpress printing](https://en.wikipedia.org/wiki/Printing_press) and
gradually established the DTP point as the facto standard.
The DTP point is defined as 1/72 of an
[inch](https://en.wikipedia.org/wiki/Inch).
Most fonts will make the best effects when set to 10-12 pt. In other words, both
the strokes and structure of characters themselves and the spacing between
letters will present relatively good visual effects in such size. The larger the
font size, the looser the text appears, so you need to manually decrease the
letter spacing; on the other hand, the smaller the font size, the more compact
the text appears, so you need to manually increase the letter spacing.
| pt | mm | cm | pica | inch |
| -- | ------ | ------- | ---- | ---- |
| 1 | 0.3528 | 0.03528 | 1/12 | 1/72 |
## Leading
Leading or line-spacing refers to the distance between the baselines of two
consecutive lines.
The ideal leading is at least 120% of the text's font size, generally 1.2-1.5
times are recommended. Different fonts have different x-height, in principle,
the larger the x-height of the font applied, the larger the leading should be,
conversely, the smaller the x-height, the smaller the leading.
## Page layout
Layout is the outline of typesetting, it's like the head-rope of a fishing net,
once the head-rope is raised up, all the meshes spread naturally. In addition to
general typesetting rules for font size and leading, there are some unique
requirements in resume layout design. In principle, it's best to control the
resume in one page.
* Making the language clear and concise
* Adjusting the font size and leading within a reasonable range
* Keeping page margins in 10-25 mm and making the left and right margins
symmetrical
* Using lists rather than parallel sentences to list information
* Using flush left alignment, taking caution to use justified alignment as
justified alignment may cause problems in hyphenation and letter-spacing
because the lengths of words are different
# CLI
URL: (/en/docs/contributing/cli)
YAMLResume adopts a mono-repo structure, which means all packages are contained
within a single repository. Thanks to [pnpm
workspace](https://pnpm.io/workspaces), this approach simplifies dependency
management and versioning across packages.
At the time of writing, YAMLResume repo has two packages:
* [yamlresume/cli](https://github.com/yamlresume/yamlresume/tree/main/packages/cli):
the CLI interface for YAMLResume.
* [yamlresume/core](https://github.com/yamlresume/yamlresume/tree/main/packages/core):
contains the core engine for YAMLResume. It handles parsing, validating, and
rendering resumes based on the official [schema](/docs/compiler/schema).
## yamlresume/core build
`yamlresume/cli` depends on `yamlresume/core` to function properly. So when you
want to test `yamlresume/cli`, you need to ensure that `yamlresume/core` is also
built and available.
You can do this with the following commands:
```bash
# build for dev purpose
pnpm core build
# build for production, which will minify the output and generate TypeScript
# DTS files `.d.ts`
pnpm core build:prod
# watch for file changes and build automatically
pnpm core build:watch
```
## yamlresume/cli build
Once `yamlresume/core` is built, you can run the CLI commands in two ways:
1. build `yamlresume/cli` local and run node.js with `dist/cli.js`:
```bash
pnpm cli build
node packages/cli/dist/cli.js [options]
```
2. run `yamlresume/cli` directly with the help of [tsx](https://tsx.is/):
```bash
pnpm cli dev [options]
# this command will translate to
# tsx src/cli.ts
```
## Demo
`yamlresume/core` build:
```console
$ pnpm core build
> @yamlresume/yamlresume@0.7.1 core /Users/hanyu/work/yamlresume/yamlresume
> pnpm --filter @yamlresume/core build
> @yamlresume/core@0.7.1 build /Users/hanyu/work/yamlresume/yamlresume/packages/core
> tsup
CLI Building entry: src/index.ts
CLI Using tsconfig: tsconfig.json
CLI tsup v8.4.0
CLI Using tsup config: /Users/hanyu/work/yamlresume/yamlresume/packages/core/tsup.config.ts
CLI Target: esnext
CLI Cleaning output folder
ESM Build start
ESM dist/index.js 160.91 KB
ESM ⚡️ Build success in 111ms
```
`yamlresume/cli` build:
```console
$ pnpm cli build
> @yamlresume/yamlresume@0.7.1 cli /Users/hanyu/work/yamlresume/yamlresume
> pnpm --filter yamlresume build
> yamlresume@0.7.1 build /Users/hanyu/work/yamlresume/yamlresume/packages/cli
> tsup
CLI Building entry: src/cli.ts
CLI Using tsconfig: tsconfig.json
CLI tsup v8.4.0
CLI Using tsup config: /Users/hanyu/work/yamlresume/yamlresume/packages/cli/tsup.config.ts
CLI Target: esnext
CLI Cleaning output folder
ESM Build start
ESM dist/cli.js 11.36 KB
ESM ⚡️ Build success in 42ms
```
Test `yamlresume/cli` with tsx by `pnpm cli dev`:
```console
$ pnpm cli dev help
> @yamlresume/yamlresume@0.7.1 cli /Users/hanyu/work/yamlresume/yamlresume
> pnpm --filter yamlresume dev help
> yamlresume@0.7.1 dev /Users/hanyu/work/yamlresume/yamlresume/packages/cli
> tsx src/cli.ts help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
Test `yamlresume/cli` with Node.js:
```console
$ node packages/cli/dist/cli.js -V
0.7.1
```
# Docker
URL: (/en/docs/contributing/docker)
Besides the [CLI package](https://www.npmjs.com/package/yamlresume), YAMLResume
also provides a [docker image](https://hub.docker.com/r/yamlresume/yamlresume)
for easy onboarding.
As we've [documented](/docs/installation#docker-users), you can run yamlresume
docker container with the following command:
```bash
docker run --rm -v $(pwd):/app -w /app yamlresume/yamlresume
```
However if you are interested, you can customize the Docker image to suit your
needs.
## Build Docker Image
YAMLResume's Docker image is defined and generated in two phases:
### Dockerfile.base
[Dockerfile.base](https://github.com/yamlresume/yamlresume/blob/main/Dockerfile.base)
contains the base environment for running YAMLResume, including all
necessary dependencies like [XeTeX](/docs/installation#xetex) from [TeX
Live](https://www.tug.org/texlive/) and [Google Noto
Font](/docs/installation#google-noto).
This is a base image mostly used for accelerating the build process on Github
Actions—installing texlive by `apt install texlive-xetex` thing takes about [30
minutes](https://github.com/yamlresume/yamlresume/actions/runs/15438395862),
which is too long to run for every docker build, so that we decided to build and
[publish this base image
once](https://hub.docker.com/r/yamlresume/yamlresume-base) and re-use this for
every further build.
Generally you don't need to build this image yourself, you can just reuse
the published image on dockerhub.
### Dockerfile
[Dockerfile](https://github.com/yamlresume/yamlresume/blob/main/Dockerfile)
defined how `yamlresume/yamlresume` image is built, it is very simple and
straightforward, just installed `yamlresume` from npmjs by `npm install -g
yamlresume@latest` and create necessary users and groups as per Docker's
[security best
practices](https://www.docker.com/blog/understanding-the-docker-user-instruction/).
Building the yamlresume image locally is a trivial task. You just need to run
```bash
docker build -t yamlresume/yamlresume .
```
You may need to take a look at [docker multi-platform
build](https://docs.docker.com/build/building/multi-platform/) if you, for example, run
into issues building docker images for different architectures.
I wrote [some tips on
X](https://x.com/xiaohanyu1988/status/1931178628785778722), you can take a look
if you are interested.
# Contributing
URL: (/en/docs/contributing)
First off, thank you for considering contributing to YAMLResume! It's people
like you that make open source great. We welcome any type of contribution, not
only code. You can help with:
* Reporting a bug
* Discussing the current state of the code
* Submitting a fix
* Proposing new features
* Improving documentation
Here are some shortcuts for some specific jobs:
## Getting Started
### Prerequisites
* [Node.js](https://nodejs.org/) (version >= 20, check `.nvmrc` or
`package.json` engines field)
* [pnpm](https://pnpm.io/) (version >= 10, check `package.json` packageManager
field)
* Git
### Setup
1. **Fork the repository:** Click the "Fork" button on the [YAMLResume GitHub
page](https://github.com/yamlresume/yamlresume). This creates your own copy
of the project.
2. **Clone your fork:**
```bash
git clone https://github.com//yamlresume.git
cd yamlresume
```
3. **Install dependencies:**
```bash
pnpm install
```
This command installs all necessary dependencies for the entire workspace.
## Development Workflow
### Building Packages
* Build all packages once:
```bash
pnpm build
```
* Build all packages and watch for changes:
```bash
pnpm build:watch
```
* Build for production (including type definitions, minification):
```bash
pnpm build:prod
```
### Running Tests
* Run tests for all packages:
```bash
pnpm test
```
* Run tests in watch mode:
```bash
pnpm test:watch
```
* Run tests with coverage report:
```bash
pnpm test:cov
```
Check [Test](./contributing/test) for more details and use cases.
### Code Formatting and Linting
We use [Biome](https://biomejs.dev/) for code formatting and linting. Ensure
your code adheres to the project's style guides before committing.
* Check and automatically fix issues:
```bash
pnpm check
```
* Run checks without applying fixes (useful for CI):
```bash
pnpm check:ci
```
We also use [addlicense](https://github.com/google/addlicense) to ensure source
files have the correct license header. You need to install it in order to run
the following commands.
* Add missing license headers:
```bash
pnpm license:add
```
* Check for missing license headers:
```bash
pnpm license:check
```
## Submitting Contributions
### Reporting Issues
If you find a bug or have a feature request, please
[open an issue](https://github.com/yamlresume/yamlresume/issues) on GitHub.
Provide as much detail as possible, including:
* A clear and descriptive title.
* Steps to reproduce the bug (if applicable).
* Expected behavior and actual behavior.
* Screenshots or code snippets (if helpful).
* Your environment details (OS, Node version, pnpm version).
### Pull Requests (PRs)
We love pull requests! Here's a quick guide:
1. **Create a branch:** Start from the `main` branch and create a descriptive
branch name (e.g., `fix/login-bug`, `feat/new-template-option`).
```bash
git checkout main
git pull origin main
git checkout -b your-branch-name
```
2. **Make your changes:** Write your code or documentation improvements.
3. **Test your changes:** Ensure all tests pass:
```bash
pnpm test
```
4. **Check code quality:** Ensure formatting and linting checks pass:
```bash
pnpm check
```
5. **Commit your changes:** We use
[Conventional Commits](https://www.conventionalcommits.org/) for commit
messages, enforced by `commitlint`. This helps automate changelogs and
versioning. A typical commit message looks like
`feat: add new command` or `fix: resolve issue with parsing`. You can use
`pnpm commitlint` to help format your message if needed, or use tools like
[git cz](https://github.com/commitizen/cz-cli) if you have it installed.
```bash
git add .
git commit -m "feat: your descriptive commit message"
```
6. **Push your branch:**
```bash
git push origin your-branch-name
```
7. **Open a Pull Request:** Go to the YAMLResume repository on GitHub and click
the "New pull request" button. Compare your branch with the `main` branch.
8. **Describe your PR:** Provide a clear description of the changes you've made.
Link any relevant issues (e.g., "Closes #123").
9. **Review:** A maintainer will review your PR. Address any feedback or
requested changes.
10. **Merge:** Once approved, your PR will be merged. Thank you for your
contribution!
## License
By contributing to YAMLResume, you agree that your contributions will be
licensed under its [MIT License](LICENSE).
# New Language
URL: (/en/docs/contributing/new-language)
import { Step, Steps } from "fumadocs-ui/components/steps";
YAMLResume is designed to support [multi
languages](/docs/locale) bottom up, allowing users to create
resumes in their preferred language.
At the time of writing, YAMLResume supports the following languages:
* [English](/docs/locale/english)
* [Chinese](/docs/locale/chinese)
* [Norwegian](/docs/locale/norwegian)
* [Spanish](/docs/locale/spanish)
If your preferred language is not listed, you can contribute by following the
steps below to add support for a new language.
## Register Your Language
To add a new `locale.language` option to YAMLResume, first register your
language in
[models/resume.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/models/resume.ts)
by adding a new entry to `LOCALE_LANGUAGE_OPTIONS`.
**Checklist:**
* [ ] Add your language to `LOCALE_LANGUAGE_OPTIONS`.
* [ ] Build and test the new CLI]\(/docs/contributing/cli#yamlresumecli-build)
with `pnpm cli dev languages list`, making sure your language appears in
the list.
## Add Translations
Provide translations for all relevant
[options](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/translations/options.ts),
[punctuations and
terms](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/translations/template.ts)
used in YAMLResume. This ensures users can generate resumes in the new language
with accurate labels, options, terms translations, and section names. Here is
a reference [PR](https://github.com/yamlresume/yamlresume/pull/44) for adding
translations for the Norwegian language.
**Checklist:**
* [ ] Add translations to [country
names](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/models/country.ts)
* [ ] Add option translations for `degrees`, `fluency`, `languages`, `sections`,
and `skills`
* [ ] Add punctuation translations for `comma`, `colon`, and `separator`
* [ ] Add terms translations for `courses`, `keywords`, and `score`
## Update Babel Configuration
YAMLResume uses LaTeX for PDF generation, and to get best typesetting results,
we need to set proper [babel package
configuration](https://latex3.github.io/babel/). Here is a reference
[commit](https://github.com/yamlresume/yamlresume/commit/b72a4441ad2542873f449bc35a265e7208eafbe7)
for norwegian language.
**Checklist:**
* [ ] Update `renderBabelConfig()` function in
[preamble.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/renderer/preamble.ts)
to include the babel package for your new language.
## Test with New Language
[Build](/docs/contributing/cli#yamlresumecore-build) `yamlresume/core` and `yamlresume/cli` packages, then:
* [ ] Create a new resume `pnpm cli dev new my-resume.yml`
* [ ] Set `locale.language` to the new language you've just added
* [ ] Test your changes by generating a resume in the new language
by `pnpm cli dev build my-resume.yml`
* [ ] Make sure both PDF outputs work as expected.
## Submitting Your PR
Once you have completed the above steps, submit your pull request with a clear
description of the changes and the language you are adding. The maintainers will
review your PR and may request changes or clarifications.
Thank you for helping make YAMLResume accessible to more people around the world!
# Test
URL: (/en/docs/contributing/test)
To have a smooth development experience, it is important to have a
solid testing strategy in place. This includes unit tests, integration tests,
and end-to-end tests to ensure that all aspects of the application are
functioning as expected.
## Unit Test
You can run unit tests using the following command:
```bash
# run tests for yamlresume/cli package
pnpm cli test
# run tests for yamlresume/core package
pnpm core test
# run tests for all packages
pnpm test
```
If you're working on a new feature, you can run tests on file changes:
```bash
# watch and test for changes in yamlresume/cli package
pnpm cli test:watch
# watch and test for changes in yamlresume/core package
pnpm core test:watch
# watch and test for changes in all packages
pnpm test:watch
```
Don't forget to [build](./contributing/cli#yamlresumecore-build)
`yamlresume/core` package if you are working on a CLI feature that depends on
`yamlresume/core` package.
## Test Coverage
YAMLResume keeps a **[100% unit test
coverage](https://app.codecov.io/gh/yamlresume/yamlresume)** in order to pursue
high code quality and prevent regressions. You can check the test coverage
report by running:
```bash
# check test coverage for yamlresume/cli package
pnpm cli test:cov
# check test coverage for yamlresume/core package
pnpm core test:cov
# check test coverage for all packages
pnpm test:cov
```
# Layouts
URL: (/en/docs/layouts)
The core of a resume is the content, but the layout is also important. Lots of
JSON/YAML based resume generators only focus on the content, leaving the
layout untouched, which leaves a big problem for the user.
Unlike other resume generators, YAMLResume provides an opinionated layout
solution out of the box , which allows users to focus on the content of the
resume while generate professional looking resumes with pixel perfect layout and
typesetting.
Starting from v0.8.0, YAMLResume supports multiple layouts and multiple output
engines (LaTeX and Markdown) via the `layouts` array.
Here is an example of layout configuration in a `resume.yml` file:
```yml lineNumbers title="resume.yml"
---
content:
# ...
locale:
language: en
layouts:
- engine: latex
template: moderncv-banking
page:
showPageNumbers: true
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
typography:
fontSize: 11pt
- engine: markdown
- engine: html
template: calm
typography:
fontSize: 16px
```
## Engines
YAMLResume currently supports three engines:
* [HTML](./layouts/html): Generates web-native HTML resumes.
* [LaTeX](./layouts/latex): Generates high-quality PDF resumes.
* [Markdown](./layouts/markdown): Generates plain Markdown resumes.
## Learn More
# Chinese
URL: (/en/docs/locale/chinese)
The [Chinese](https://en.wikipedia.org/wiki/Chinese_language) language belongs
to the [Sino-Tibetan language
family](https://en.wikipedia.org/wiki/Sino-Tibetan_language_family), which is
very much different from the Latin script languages. About 1.4 billion
people, or 17% of the world's population, speak a variety of Chinese as their
first language.
## Linguistics
### Character Set
The [Chinese characters](https://en.wikipedia.org/wiki/Chinese_characters) and
the [Latin
characters](https://en.wikipedia.org/wiki/Western_Latin_character_sets_\(computing\))
represent two fundamentally different approaches to written language.
The Latin characters has a limited character set, where relatively few
characters are needed to represent a large vocabulary, each character represents
a specific sound or [phoneme](https://en.wikipedia.org/wiki/Phoneme), and words
are formed by combining these characters in specific sequences. Chinese, on the
other hand, has tens of thousands of characters in order to express the full
range of the Chinese language, each character represents a
[morpheme](https://en.wikipedia.org/wiki/Morpheme) or word, often conveying
meaning directly, and words are formed by combining individual characters, each
with its own meaning and pronunciation.
This fundamental difference in writing systems has significant implications for
language learning, text processing, and cultural exchange. While the Latin
characters are relatively easy to learn and use, the Chinese characters
requires significant memorization and practice.
### Variants
While there are many regional variations of the Chinese language, the two
primary written forms are Simplified Chinese and Traditional Chinese.
Here's a breakdown:
**Simplified Chinese**
* Primarily used in mainland China and Singapore.
* Developed in the mid-20th century to increase literacy rates.
* Uses [simplified
characters](https://en.wikipedia.org/wiki/Simplified_Chinese_characters), often
with fewer strokes than traditional characters.
**Traditional Chinese**
* Primarily used in Hong Kong, Macau, Taiwan, and many overseas Chinese communities.
* The older form of written Chinese.
* Uses [traditional
characters](https://en.wikipedia.org/wiki/Traditional_Chinese_characters), with
more and complex strokes.
It's important to note that both Simplified and Traditional Chinese can be used
to write various dialects of Chinese, such as
[Mandarin](https://en.wikipedia.org/wiki/Mandarin_Chinese),
[Cantonese](https://en.wikipedia.org/wiki/Cantonese), and
[Hokkien](https://en.wikipedia.org/wiki/Hokkien).
Meanwhile, Traditional Chinese has at least two variants, namely, the Hong Kong
variant [zh-HK](https://simplelocalize.io/data/locale-code/zh-HK/) and the
Taiwan variant [zh-TW](https://simplelocalize.io/data/locale-code/zh-TW/). Most
of the scripts in zh-HK and zh-TW are identical, with only a few minor
differences.
For example, the word "software", when translated to zh-HK, it is "軟件", while in
zh-TW, it is "軟體". There are about tens of words in English that are translated
differently in zh-HK and zh-TW, details
[here](https://zh.wikipedia.org/wiki/%E7%B9%81%E4%BD%93%E5%AD%97#%E7%94%A8%E8%AA%9E%E5%B7%AE%E7%95%B0).
In general, YAMLResume can't do too much for the difference between zh-HK and
zh-TW, as users have to decide which variant to use when writing resumes and
make sure that the content conforms to the idioms and convensions of zh-HK or
zh-TW. However, there is one thing that YAMLResume needs to handle properly for
zh-HK and zh-TW, as some countries and regions have different names in zh-HK and
zh-TW. [Saudi Arabia](https://en.wikipedia.org/wiki/Saudi_Arabia), for example,
is translated as "沙特阿拉伯" in zh-HK and "沙烏地阿拉伯" in zh-TW. There are also a few
other countries. YAMLResume takes [care](#location-countries-and-regions) of all
countries and regions that has different translations in zh-HK and zh-TW.
## Idioms
### Date
Dates are presented differently in English and Chinese, e.g. "Jun 2018 –
Present" in English should be translated as "2018 年 6 月至今" in Chinese,the
position of the year and month should be reversed, and the en-dash "–" should be
replaced by "至".
Meanwhile, Chinese do not use dedicated words for months, instead, it uses a
combination of an Arabic number and a character "月", making it as simple as a
game of counting.
| English | Chinese |
| --------------- | ------- |
| January (Jan) | 1 月 |
| February (Feb) | 2 月 |
| March (Mar) | 3 月 |
| April (Apr) | 4 月 |
| May (May) | 5 月 |
| June (Jun) | 6 月 |
| July (Jul) | 7 月 |
| August (Aug) | 8 月 |
| September (Sep) | 9 月 |
| October (Oct) | 10 月 |
| November (Nov) | 11 月 |
| December (Dec) | 12 月 |
### Location
Address formats differ between
[English](/locale/english#location) and Chinese conventions.
Unlike English, when presenting a location with address, city, and country, the
general part (country, state, etc.) usually comes first in Chinese, while the
most specific part (town, address, etc.) comes last.
## Typesetting
### Font
Just like Latin script languages, Chinese has its serif font
[Song](/docs/guide/font#song) and sans-serif font [Bold](/docs/guide/font#bold). Besides,
it also has two additional font styles, [Regular](/docs/guide/font#regular) and
[Fangsong](/docs/guide/font#fangsong). You can check [Guide -> Font -> CJK
Font](/docs/guide/font#cjk-font) for more details.
YAMLResume uses Song as the main font for Chinese resumes.
### Punctuations
Chinese punctuations, like the language itself, has its own unique
characteristics. One important distinction to note is the difference between
[half-width and
full-width](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms)
punctuations.
The primary difference between half-width and full-width punctuations in Chinese
lies in their visual width and their intended use.
**Half-width punctuations**
* **Narrower**: these punctuations are typically used in conjunction with Latin
characters or numbers, such as in URLs, email addresses, or code snippets.
* **Less common**: they are less commonly used in standard Chinese text, often
used in a small portion of Latin script language phrases or paragraphs.
**Full-width punctuations**
* **Wider**: these punctuations are designed to match the width of Chinese
characters, ensuring a visually balanced and consistent appearance in Chinese
text.
* **More common**: they are the standard punctuation marks used in Chinese text.
Using the correct type of punctuations is crucial for proper formatting and
readability in Chinese text. Mismatched punctuations can lead to visual
inconsistencies and potential confusion.
By understanding the difference between half-width and full-width punctuations,
you can ensure that your Chinese text is correctly formatted and visually
appealing. Here is a table of punctuations in both half-width and full-width
forms, used in Latin script and Chinese languages respectively.
| | English | Simplified Chinese |
| ---------------------- | ------- | ------------------ |
| Full Stop/Period (句号) | . | 。 |
| Question Mark (问号) | ? | ? |
| Exclamation Mark (感叹号) | ! | ! |
| Comma (逗点) | , | , |
| Colon (冒号) | : | : |
| Semicolon (分号) | ; | ; |
| Parenthesis (小括号) | () | () |
| Bracket (中括号) | \[] | [] |
| Brace (花括号) | \{} | {} |
For resumes, it's the author's duty to use correct punctuations when composing
the content, but YAMLResume can guarantee that our resume templates will always
use the correct punctuations. We have two cases right now:
#### Comma
English uses the comma `,` as a separator to separate parts of a sentence and
items in a list, while Chinese uses a Chinese comma `,` to separate sensences,
and a dedicated enumeration comma
([顿号](https://en.wikipedia.org/wiki/Comma#East_Asia), `、`) to separate items in
a list (e.g. keyword list).
#### Colon
English and Chinese also have
[different](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) colons.
The [English colon](https://www.compart.com/en/unicode/U+003A) is `:`, with
Unicode `U+003A`, while the [Chinese
colon](https://www.compart.com/en/unicode/U+FF1A) is `:`, with Unicode `U+FF1A`.
As you can always trust, YAMLResume also takes care of this. We use correct
colon for various fixed terms like "Keywords:" ("关键字:" in Simplified
Chinese, "關鍵字:" in Traditional Chinese) and "Courses:" ( `课程:` in
Simplified Chinese, `課程:` in Traditional Chinese) in our resume template.
### Old Style Numbers
By default, **YAMLResume do not use [old style
numbers](/docs/guide/font#old-style-numbers) for Chinese resumes**. Why? Because
Chinese characters all have the same height and width (that is why Chinese
characters are also called "方块字", which means square characters), basically all
Chinese characters are titled and monospaced by nature. By adopting numbers in
the lining style, the number style is adapted more closely to the Chinese
characters.
### Italics
By default, **YAMLResume do not use italics in Chinese resumes** because italics
in Chinese is considered as a [bad
practice](https://drwhispers.com/2021/11/16/italics-in-chinese/), why?
In Latin script languages, italics are usually distinguished from body serifs
and are used to emphasise or differentiate parts of the text, however,
italicizing Chinese characters can disrupt the natural flow and readability of
the text.
Unlike Latin characters, Chinese characters are square characters that are not
traditionally written in italics, and many Chinese fonts do not have specific
italic glyphs for each character. When italicizing Chinese text, software often
simply slants the characters, which can result in a visually unpleasant and
unprofessional appearance.
## Translations
YAMLResume adopts the following translations for various options and terms used
in Chinese resumes.
### Education Degrees
| English | Chinese (Simplified) | Chinese (Traditional, Hong Kong) | Chinese (Traditional, Taiwan) |
| ------------- | -------------------- | -------------------------------- | ----------------------------- |
| Middle School | 初中 | 初中 | 初中 |
| High School | 高中 | 高中 | 高中 |
| Diploma | 专科 | 專科 | 專科 |
| Associate | 副学士 | 副學士 | 副學士 |
| Bachelor | 学士 | 學士 | 學士 |
| Master | 硕士 | 碩士 | 碩士 |
| Doctor | 博士 | 博士 | 博士 |
### Languages
| English | Chinese (Simplified) | Chinese (Traditional, Hong Kong) | Chinese (Traditional, Taiwan) |
| ----------- | -------------------- | -------------------------------- | ----------------------------- |
| Afrikaans | 南非荷兰语 | 南非荷蘭語 | 南非荷蘭語 |
| Albanian | 阿尔巴尼亚语 | 阿爾巴尼亞語 | 阿爾巴尼亞語 |
| Amharic | 阿姆哈拉语 | 阿姆哈拉語 | 阿姆哈拉語 |
| Arabic | 阿拉伯语 | 阿拉伯語 | 阿拉伯語 |
| Azerbaijani | 阿塞拜疆语 | 阿塞拜疆語 | 亞塞拜然語 |
| Belarusian | 白俄罗斯语 | 白俄羅斯語 | 白俄羅斯語 |
| Bengali | 孟加拉语 | 孟加拉語 | 孟加拉語 |
| Bhojpuri | 博杰普尔语 | 博傑普爾語 | 博傑普爾語 |
| Bulgarian | 保加利亚语 | 保加利亞語 | 保加利亞語 |
| Burmese | 缅甸语 | 緬甸語 | 緬甸語 |
| Cantonese | 粤语 | 粵語 | 粵語 |
| Catalan | 加泰罗尼亚语 | 加泰羅尼亞語 | 加泰隆尼亞語 |
| Chinese | 中文 | 中文 | 中文 |
| Croatian | 克罗地亚语 | 克羅地亞語 | 克羅埃西亞語 |
| Czech | 捷克语 | 捷克語 | 捷克語 |
| Danish | 丹麦语 | 丹麥語 | 丹麥語 |
| Dutch | 荷兰语 | 荷蘭語 | 荷蘭語 |
| English | 英语 | 英語 | 英語 |
| Estonian | 爱沙尼亚语 | 愛沙尼亞語 | 愛沙尼亞語 |
| Farsi | 波斯语 | 波斯語 | 波斯語 |
| Filipino | 菲律宾语 | 菲律賓語 | 菲律賓語 |
| Finnish | 芬兰语 | 芬蘭語 | 芬蘭語 |
| French | 法语 | 法語 | 法語 |
| German | 德语 | 德語 | 德語 |
| Greek | 希腊语 | 希臘語 | 希臘語 |
| Gujarati | 古吉拉特语 | 古吉拉特語 | 古吉拉特語 |
| Hausa | 豪萨语 | 豪薩語 | 豪薩語 |
| Hebrew | 希伯来语 | 希伯來語 | 希伯來語 |
| Hindi | 印地语 | 印地語 | 印地語 |
| Hungarian | 匈牙利语 | 匈牙利語 | 匈牙利語 |
| Icelandic | 冰岛语 | 冰島語 | 冰島語 |
| Igbo | 伊博语 | 伊博語 | 伊博語 |
| Indonesian | 印度尼西亚语 | 印度尼西亞語 | 印度尼西亞語 |
| Irish | 爱尔兰语 | 愛爾蘭語 | 愛爾蘭語 |
| Italian | 意大利语 | 意大利語 | 意大利語 |
| Japanese | 日语 | 日語 | 日語 |
| Javanese | 爪哇语 | 爪哇語 | 爪哇語 |
| Kazakh | 哈萨克语 | 哈薩克語 | 哈薩克語 |
| Khmer | 高棉语 | 高棉語 | 高棉語 |
| Korean | 韩语 | 韓語 | 韓語 |
| Lahnda | 拉亨达语 | 拉亨達語 | 拉亨達語 |
| Latvian | 拉脱维亚语 | 拉脫維亞語 | 拉脫維亞語 |
| Lithuanian | 立陶宛语 | 立陶宛語 | 立陶宛語 |
| Malay | 马来语 | 馬來語 | 馬來語 |
| Mandarin | 普通话 | 普通話 | 普通話 |
| Marathi | 马拉地语 | 馬拉地語 | 馬拉地語 |
| Nepali | 尼泊尔语 | 尼泊爾語 | 尼泊爾語 |
| Norwegian | 挪威语 | 挪威語 | 挪威語 |
| Oromo | 奥罗莫语 | 奧羅莫語 | 奧羅莫語 |
| Pashto | 普什图语 | 普什圖語 | 普什圖語 |
| Polish | 波兰语 | 波蘭語 | 波蘭語 |
| Portuguese | 葡萄牙语 | 葡萄牙語 | 葡萄牙語 |
| Romanian | 罗马尼亚语 | 羅馬尼亞語 | 羅馬尼亞語 |
| Russian | 俄语 | 俄語 | 俄語 |
| Serbian | 塞尔维亚语 | 塞爾維亞語 | 塞爾維亞語 |
| Shona | 绍纳语 | 紹納語 | 紹納語 |
| Sinhala | 僧伽罗语 | 僧伽羅語 | 僧伽羅語 |
| Slovak | 斯洛伐克语 | 斯洛伐克語 | 斯洛伐克語 |
| Slovene | 斯洛文尼亚语 | 斯洛文尼亞語 | 斯洛文尼亞語 |
| Somali | 索马里语 | 索馬里語 | 索馬里語 |
| Spanish | 西班牙语 | 西班牙語 | 西班牙語 |
| Sundanese | 巽他语 | 巽他語 | 巽他語 |
| Swahili | 斯瓦希里语 | 斯瓦希里語 | 斯瓦希里語 |
| Swedish | 瑞典语 | 瑞典語 | 瑞典語 |
| Tagalog | 他加禄语 | 他加祿語 | 他加祿語 |
| Tamil | 泰米尔语 | 泰米爾語 | 泰米爾語 |
| Telugu | 泰卢固语 | 泰盧固語 | 泰盧固語 |
| Thai | 泰语 | 泰語 | 泰語 |
| Turkish | 土耳其语 | 土耳其語 | 土耳其語 |
| Ukrainian | 乌克兰语 | 烏克蘭語 | 烏克蘭語 |
| Urdu | 乌尔都语 | 烏爾都語 | 烏爾都語 |
| Uzbek | 乌兹别克语 | 烏茲別克語 | 烏茲別克語 |
| Vietnamese | 越南语 | 越南語 | 越南語 |
| Yoruba | 约鲁巴语 | 約魯巴語 | 約魯巴語 |
| Zulu | 祖鲁语 | 祖魯語 | 祖魯語 |
### Language Fluencies
| English | Chinese (Simplified) | Chinese (Traditional, Hong Kong) | Chinese (Traditional, Taiwan) |
| -------------------------------- | -------------------- | -------------------------------- | ----------------------------- |
| Elementary Proficiency | 初级水平 | 初級水平 | 初級水平 |
| Limited Working Proficiency | 有限工作水平 | 有限工作水平 | 有限工作水平 |
| Minimum Professional Proficiency | 最低专业水平 | 最低專業水平 | 最低專業水平 |
| Full Professional Proficiency | 完全专业水平 | 完全專業水平 | 完全專業水平 |
| Native or Bilingual Proficiency | 母语或双语水平 | 母語或雙語水平 | 母語或雙語水平 |
### Location (Countries and Regions)
| English | Chinese (Simplified) | Chinese (Traditional, Hong Kong) | Chinese (Traditional, Taiwan) |
| ------------------------------------ | -------------------- | -------------------------------- | ----------------------------- |
| Afghanistan | 阿富汗 | 阿富汗 | 阿富汗 |
| Aland Islands | 奥兰群岛 | 奧蘭羣島 | 奧蘭群島 |
| Albania | 阿尔巴尼亚 | 阿爾巴尼亞 | 阿爾巴尼亞 |
| Algeria | 阿尔及利亚 | 阿爾及利亞 | 阿爾及利亞 |
| American Samoa | 美属萨摩亚 | 美屬薩摩亞 | 美屬薩摩亞 |
| Andorra | 安道尔 | 安道爾 | 安道爾 |
| Angola | 安哥拉 | 安哥拉 | 安哥拉 |
| Anguilla | 安圭拉 | 安圭拉 | 安圭拉 |
| Antarctica | 南极洲 | 南極洲 | 南極洲 |
| Antigua And Barbuda | 安提瓜和巴布达 | 安提瓜和巴布達 | 安地卡及巴布達 |
| Argentina | 阿根廷 | 阿根廷 | 阿根廷 |
| Armenia | 亚美尼亚 | 亞美尼亞 | 亞美尼亞 |
| Aruba | 阿鲁巴 | 阿魯巴 | 阿魯巴 |
| Australia | 澳大利亚 | 澳大利亞 | 澳大利亞 |
| Austria | 奥地利 | 奧地利 | 奧地利 |
| Azerbaijan | 阿塞拜疆 | 阿塞拜疆 | 亞塞拜然 |
| Bahrain | 巴林 | 巴林 | 巴林 |
| Bangladesh | 孟加拉 | 孟加拉 | 孟加拉 |
| Barbados | 巴巴多斯 | 巴巴多斯 | 巴貝多 |
| Belarus | 白俄罗斯 | 白俄羅斯 | 白俄羅斯 |
| Belgium | 比利时 | 比利時 | 比利時 |
| Belize | 伯利兹 | 伯利茲 | 貝里斯 |
| Benin | 贝宁 | 貝寧 | 貝南 |
| Bermuda | 百慕大 | 百慕大 | 百慕大 |
| Bhutan | 不丹 | 不丹 | 不丹 |
| Bolivia | 玻利维亚 | 玻利維亞 | 玻利維亞 |
| Bonaire, Sint Eustatius and Saba | 博内尔岛、圣尤斯特歇斯和萨巴岛 | 博內爾島、聖尤斯特歇斯和薩巴島 | 博內爾島、聖尤斯特歇斯和薩巴島 |
| Bosnia and Herzegovina | 波斯尼亚和黑塞哥维那 | 波斯尼亞和黑塞哥維那 | 波斯尼亞和黑塞哥維那 |
| Botswana | 博茨瓦纳 | 博茨瓦納 | 波札那 |
| Bouvet Island | 布维岛 | 布維島 | 布維島 |
| Brazil | 巴西 | 巴西 | 巴西 |
| British Indian Ocean Territory | 英属印度洋领地 | 英屬印度洋領地 | 英屬印度洋領地 |
| Brunei | 文莱 | 文萊 | 汶萊 |
| Bulgaria | 保加利亚 | 保加利亞 | 保加利亞 |
| Burkina Faso | 布基纳法索 | 布基納法索 | 布吉納法索 |
| Burundi | 布隆迪 | 布隆迪 | 蒲隆地 |
| Cambodia | 柬埔寨 | 柬埔寨 | 柬埔寨 |
| Cameroon | 喀麦隆 | 喀麥隆 | 喀麥隆 |
| Canada | 加拿大 | 加拿大 | 加拿大 |
| Cape Verde | 佛得角 | 佛得角 | 維德角 |
| Cayman Islands | 开曼群岛 | 開曼羣島 | 開曼群島 |
| Central African Republic | 中非 | 中非 | 中非 |
| Chad | 乍得 | 乍得 | 查德 |
| Chile | 智利 | 智利 | 智利 |
| China | 中国 | 中國 | 中國 |
| Christmas Island | 圣诞岛 | 聖誕島 | 聖誕島 |
| Cocos (Keeling) Islands | 科科斯(基林)群岛 | 科科斯(基林)羣島 | 科科斯(基林)群島 |
| Colombia | 哥伦比亚 | 哥倫比亞 | 哥倫比亞 |
| Comoros | 科摩罗 | 科摩羅 | 葛摩 |
| Congo | 刚果 | 剛果 | 剛果 |
| Cook Islands | 库克群岛 | 庫克羣島 | 庫克群島 |
| Costa Rica | 哥斯达黎加 | 哥斯達黎加 | 哥斯大黎加 |
| Cote D'Ivoire (Ivory Coast) | 科特迪瓦 | 科特迪瓦 | 象牙海岸 |
| Croatia | 克罗地亚 | 克羅地亞 | 克羅埃西亞 |
| Cuba | 古巴 | 古巴 | 古巴 |
| Curaçao | 库拉索 | 庫拉索 | 庫拉索 |
| Cyprus | 塞浦路斯 | 塞浦路斯 | 塞普勒斯 |
| Czech Republic | 捷克 | 捷克 | 捷克 |
| Democratic Republic of the Congo | 刚果(金) | 剛果(金) | 剛果(金) |
| Denmark | 丹麦 | 丹麥 | 丹麥 |
| Djibouti | 吉布提 | 吉布提 | 吉布提 |
| Dominica | 多米尼加 | 多米尼加 | 多明尼加 |
| Dominican Republic | 多明尼加共和国 | 多明尼加共和國 | 多明尼加共和國 |
| East Timor | 东帝汶 | 東帝汶 | 東帝汶 |
| Ecuador | 厄瓜多尔 | 厄瓜多爾 | 厄瓜多 |
| Egypt | 埃及 | 埃及 | 埃及 |
| El Salvador | 萨尔瓦多 | 薩爾瓦多 | 薩爾瓦多 |
| Equatorial Guinea | 赤道几内亚 | 赤道幾內亞 | 赤道幾內亞 |
| Eritrea | 厄立特里亚 | 厄立特里亞 | 厄利垂亞 |
| Estonia | 爱沙尼亚 | 愛沙尼亞 | 愛沙尼亞 |
| Ethiopia | 埃塞俄比亚 | 埃塞俄比亞 | 衣索比亞 |
| Falkland Islands | 福克兰群岛 | 福克蘭羣島 | 福克蘭群島 |
| Faroe Islands | 法罗群岛 | 法羅羣島 | 法羅群島 |
| Fiji Islands | 斐济 | 斐濟 | 斐濟 |
| Finland | 芬兰 | 芬蘭 | 芬蘭 |
| France | 法国 | 法國 | 法國 |
| French Guiana | 法属圭亚那 | 法屬圭亞那 | 法屬蓋亞那 |
| French Polynesia | 法属波利尼西亚 | 法屬波利尼西亞 | 法屬波利尼西亞 |
| French Southern Territories | 法属南部领地 | 法屬南部領地 | 法屬南部領地 |
| Gabon | 加蓬 | 加蓬 | 加彭 |
| Gambia The | 冈比亚 | 岡比亞 | 甘比亞 |
| Georgia | 格鲁吉亚 | 格魯吉亞 | 喬治亞 |
| Germany | 德国 | 德國 | 德國 |
| Ghana | 加纳 | 加納 | 迦納 |
| Gibraltar | 直布罗陀 | 直布羅陀 | 直布羅陀 |
| Greece | 希腊 | 希臘 | 希臘 |
| Greenland | 格陵兰岛 | 格陵蘭島 | 格陵蘭島 |
| Grenada | 格林纳达 | 格林納達 | 格瑞那達 |
| Guadeloupe | 瓜德罗普岛 | 瓜德羅普島 | 瓜德羅普島 |
| Guam | 关岛 | 關島 | 關島 |
| Guatemala | 危地马拉 | 危地馬拉 | 瓜地馬拉 |
| Guernsey and Alderney | 根西岛 | 根西島 | 根西島 |
| Guinea | 几内亚 | 幾內亞 | 幾內亞 |
| Guinea-Bissau | 几内亚比绍 | 幾內亞比紹 | 幾內亞比索 |
| Guyana | 圭亚那 | 圭亞那 | 蓋亞那 |
| Haiti | 海地 | 海地 | 海地 |
| Heard Island and McDonald Islands | 赫德·唐纳岛及麦唐纳岛 | 赫德·唐納島及麥唐納島 | 赫德·唐納島及麥唐納島 |
| Honduras | 洪都拉斯 | 洪都拉斯 | 宏都拉斯 |
| Hong Kong S.A.R. | 中国香港 | 中國香港 | 中國香港 |
| Hungary | 匈牙利 | 匈牙利 | 匈牙利 |
| Iceland | 冰岛 | 冰島 | 冰島 |
| India | 印度 | 印度 | 印度 |
| Indonesia | 印度尼西亚 | 印度尼西亞 | 印度尼西亞 |
| Iran | 伊朗 | 伊朗 | 伊朗 |
| Iraq | 伊拉克 | 伊拉克 | 伊拉克 |
| Ireland | 爱尔兰 | 愛爾蘭 | 愛爾蘭 |
| Israel | 以色列 | 以色列 | 以色列 |
| Italy | 意大利 | 意大利 | 義大利 |
| Jamaica | 牙买加 | 牙買加 | 牙買加 |
| Japan | 日本 | 日本 | 日本 |
| Jersey | 泽西岛 | 澤西島 | 澤西島 |
| Jordan | 约旦 | 約旦 | 約旦 |
| Kazakhstan | 哈萨克斯坦 | 哈薩克斯坦 | 哈薩克 |
| Kenya | 肯尼亚 | 肯尼亞 | 肯亞 |
| Kiribati | 基里巴斯 | 基里巴斯 | 吉里巴斯 |
| Kosovo | 科索沃 | 科索沃 | 科索沃 |
| Kuwait | 科威特 | 科威特 | 科威特 |
| Kyrgyzstan | 吉尔吉斯斯坦 | 吉爾吉斯斯坦 | 吉爾吉斯斯坦 |
| Laos | 寮人民民主共和国 | 寮人民民主共和國 | 寮人民民主共和國 |
| Latvia | 拉脱维亚 | 拉脫維亞 | 拉脫維亞 |
| Lebanon | 黎巴嫩 | 黎巴嫩 | 黎巴嫩 |
| Lesotho | 莱索托 | 萊索托 | 賴索托 |
| Liberia | 利比里亚 | 利比里亞 | 賴比瑞亞 |
| Libya | 利比亚 | 利比亞 | 利比亞 |
| Liechtenstein | 列支敦士登 | 列支敦士登 | 列支敦斯登 |
| Lithuania | 立陶宛 | 立陶宛 | 立陶宛 |
| Luxembourg | 卢森堡 | 盧森堡 | 盧森堡 |
| Macau S.A.R. | 中国澳门 | 中國澳門 | 中國澳門 |
| Madagascar | 马达加斯加 | 馬達加斯加 | 馬達加斯加 |
| Malawi | 马拉维 | 馬拉維 | 馬拉維 |
| Malaysia | 马来西亚 | 馬來西亞 | 馬來西亞 |
| Maldives | 马尔代夫 | 馬爾代夫 | 馬爾地夫 |
| Mali | 马里 | 馬裏 | 馬裡 |
| Malta | 马耳他 | 馬耳他 | 馬耳他 |
| Man (Isle of) | 马恩岛 | 馬恩島 | 馬恩島 |
| Marshall Islands | 马绍尔群岛 | 馬紹爾羣島 | 馬紹爾群島 |
| Martinique | 马提尼克岛 | 馬提尼克島 | 馬提尼克島 |
| Mauritania | 毛里塔尼亚 | 毛里塔尼亞 | 茅利塔尼亞 |
| Mauritius | 毛里求斯 | 毛里求斯 | 模里西斯 |
| Mayotte | 马约特 | 馬約特 | 馬約特 |
| Mexico | 墨西哥 | 墨西哥 | 墨西哥 |
| Micronesia | 密克罗尼西亚 | 密克羅尼西亞 | 密克羅尼西亞 |
| Moldova | 摩尔多瓦 | 摩爾多瓦 | 摩爾多瓦 |
| Monaco | 摩纳哥 | 摩納哥 | 摩納哥 |
| Mongolia | 蒙古 | 蒙古 | 蒙古 |
| Montenegro | 黑山 | 黑山 | 黑山 |
| Montserrat | 蒙特塞拉特 | 蒙特塞拉特 | 蒙特塞拉特 |
| Morocco | 摩洛哥 | 摩洛哥 | 摩洛哥 |
| Mozambique | 莫桑比克 | 莫桑比克 | 莫三比克 |
| Myanmar | 缅甸 | 緬甸 | 緬甸 |
| Namibia | 纳米比亚 | 納米比亞 | 奈米比亞 |
| Nauru | 瑙鲁 | 瑙魯 | 諾魯 |
| Nepal | 尼泊尔 | 尼泊爾 | 尼泊爾 |
| Netherlands | 荷兰 | 荷蘭 | 荷蘭 |
| New Caledonia | 新喀里多尼亚 | 新喀里多尼亞 | 新喀里多尼亞 |
| New Zealand | 新西兰 | 新西蘭 | 紐西蘭 |
| Nicaragua | 尼加拉瓜 | 尼加拉瓜 | 尼加拉瓜 |
| Niger | 尼日尔 | 尼日爾 | 尼日 |
| Nigeria | 尼日利亚 | 尼日利亞 | 奈及利亞 |
| Niue | 纽埃 | 紐埃 | 紐埃 |
| Norfolk Island | 诺福克岛 | 諾福克島 | 諾福克島 |
| North Korea | 朝鲜 | 朝鮮 | 朝鮮 |
| North Macedonia | 北馬其頓 | 北馬其頓 | 北馬其頓 |
| Northern Mariana Islands | 北马里亚纳群岛 | 北马里亞納羣島 | 北马里亞納群島 |
| Norway | 挪威 | 挪威 | 挪威 |
| Oman | 阿曼 | 阿曼 | 阿曼 |
| Pakistan | 巴基斯坦 | 巴基斯坦 | 巴基斯坦 |
| Palau | 帕劳 | 帕勞 | 帛琉 |
| Palestinian Territory Occupied | 巴勒斯坦 | 巴勒斯坦 | 巴勒斯坦 |
| Panama | 巴拿马 | 巴拿馬 | 巴拿馬 |
| Papua new Guinea | 巴布亚新几内亚 | 巴布亞新幾內亞 | 巴布亞紐幾內亞 |
| Paraguay | 巴拉圭 | 巴拉圭 | 巴拉圭 |
| Peru | 秘鲁 | 祕魯 | 秘魯 |
| Philippines | 菲律宾 | 菲律賓 | 菲律賓 |
| Pitcairn Island | 皮特凯恩群岛 | 皮特凱恩羣島 | 皮特凱恩群島 |
| Poland | 波兰 | 波蘭 | 波蘭 |
| Portugal | 葡萄牙 | 葡萄牙 | 葡萄牙 |
| Puerto Rico | 波多黎各 | 波多黎各 | 波多黎各 |
| Qatar | 卡塔尔 | 卡塔爾 | 卡達 |
| Reunion | 留尼汪岛 | 留尼汪島 | 留尼汪島 |
| Romania | 罗马尼亚 | 羅馬尼亞 | 羅馬尼亞 |
| Russia | 俄罗斯联邦 | 俄羅斯聯邦 | 俄羅斯聯邦 |
| Rwanda | 卢旺达 | 盧旺達 | 盧安達 |
| Saint Helena | 圣赫勒拿 | 聖赫勒拿 | 聖赫勒拿 |
| Saint Kitts And Nevis | 圣基茨和尼维斯 | 聖基茨和尼維斯 | 聖克里斯多福及尼維斯 |
| Saint Lucia | 圣卢西亚 | 聖盧西亞 | 聖露西亞 |
| Saint Pierre and Miquelon | 圣皮埃尔和密克隆 | 聖皮埃爾和密克隆 | 聖皮埃爾和密克隆 |
| Saint Vincent And The Grenadines | 圣文森特和格林纳丁斯 | 聖文森特和格林納丁斯 | 聖文森及格瑞那丁 |
| Saint-Barthelemy | 圣巴泰勒米 | 聖巴泰勒米 | 聖巴泰勒米 |
| Saint-Martin (French part) | 密克罗尼西亚 | 密克羅尼西亞 | 密克羅尼西亞 |
| Samoa | 萨摩亚 | 薩摩亞 | 薩摩亞 |
| San Marino | 圣马力诺 | 聖馬力諾 | 聖馬利諾 |
| Sao Tome and Principe | 圣多美和普林西比 | 聖多美和普林西比 | 聖多美和普林西比 |
| Saudi Arabia | 沙特阿拉伯 | 沙特阿拉伯 | 沙烏地阿拉伯 |
| Senegal | 塞内加尔 | 塞內加爾 | 塞內加爾 |
| Serbia | 塞尔维亚 | 塞爾維亞 | 塞爾維亞 |
| Seychelles | 塞舌尔 | 塞舌爾 | 塞席爾 |
| Sierra Leone | 塞拉利昂 | 塞拉利昂 | 獅子山 |
| Singapore | 新加坡 | 新加坡 | 新加坡 |
| Sint Maarten (Dutch part) | 圣马丁岛(荷兰部分) | 聖馬丁島(荷蘭部分) | 聖馬丁島(荷蘭部分) |
| Slovakia | 斯洛伐克 | 斯洛伐克 | 斯洛伐克 |
| Slovenia | 斯洛文尼亚 | 斯洛文尼亞 | 斯洛維尼亞 |
| Solomon Islands | 所罗门群岛 | 所羅門羣島 | 索羅門群島 |
| Somalia | 索马里 | 索馬里 | 索馬利亞 |
| South Africa | 南非 | 南非 | 南非 |
| South Georgia | 南乔治亚 | 南喬治亞 | 南喬治亞 |
| South Korea | 韩国 | 韓國 | 韓國 |
| South Sudan | 南苏丹 | 南蘇丹 | 南蘇丹 |
| Spain | 西班牙 | 西班牙 | 西班牙 |
| Sri Lanka | 斯里兰卡 | 斯里蘭卡 | 斯里蘭卡 |
| Sudan | 苏丹 | 蘇丹 | 蘇丹 |
| Suriname | 苏里南 | 蘇里南 | 蘇利南 |
| Svalbard And Jan Mayen Islands | 斯瓦尔巴和扬马延群岛 | 斯瓦爾巴和揚馬延羣島 | 斯瓦爾巴和揚馬延群島 |
| Swaziland | 斯威士兰 | 斯威士蘭 | 史瓦濟蘭 |
| Sweden | 瑞典 | 瑞典 | 瑞典 |
| Switzerland | 瑞士 | 瑞士 | 瑞士 |
| Syria | 叙利亚 | 敘利亞 | 敘利亞 |
| Taiwan | 中国台湾 | 中國臺灣 | 中國臺灣 |
| Tajikistan | 塔吉克斯坦 | 塔吉克斯坦 | 塔吉克 |
| Tanzania | 坦桑尼亚 | 坦桑尼亞 | 坦尚尼亞 |
| Thailand | 泰国 | 泰國 | 泰國 |
| The Bahamas | 巴哈马 | 巴哈馬 | 巴哈馬 |
| Togo | 多哥 | 多哥 | 多哥 |
| Tokelau | 托克劳 | 托克勞 | 托克勞 |
| Tonga | 汤加 | 湯加 | 湯加 |
| Trinidad And Tobago | 特立尼达和多巴哥 | 特立尼達和多巴哥 | 千里達及托巴哥 |
| Tunisia | 突尼斯 | 突尼斯 | 突尼西亞 |
| Türkiye | 土耳其 | 土耳其 | 土耳其 |
| Turkmenistan | 土库曼斯坦 | 土庫曼斯坦 | 土庫曼 |
| Turks And Caicos Islands | 特克斯和凯科斯群岛 | 特克斯和凱科斯羣島 | 特克斯和凱科斯群島 |
| Tuvalu | 图瓦卢 | 圖瓦盧 | 吐瓦魯 |
| Uganda | 乌干达 | 烏干達 | 烏干達 |
| Ukraine | 乌克兰 | 烏克蘭 | 烏克蘭 |
| United Arab Emirates | 阿拉伯联合酋长国 | 阿拉伯聯合酋長國 | 阿拉伯聯合大公國 |
| United Kingdom | 英国 | 英國 | 英國 |
| United States | 美国 | 美國 | 美國 |
| United States Minor Outlying Islands | 美国本土外小岛屿 | 美國本土外小島嶼 | 美國本土外小島嶼 |
| Uruguay | 乌拉圭 | 烏拉圭 | 烏拉圭 |
| Uzbekistan | 乌兹别克斯坦 | 烏茲別克斯坦 | 烏茲別克 |
| Vanuatu | 瓦努阿图 | 瓦努阿圖 | 萬那杜 |
| Vatican City State (Holy See) | 梵蒂冈 | 梵蒂岡 | 梵蒂岡 |
| Venezuela | 委内瑞拉 | 委內瑞拉 | 委內瑞拉 |
| Vietnam | 越南 | 越南 | 越南 |
| Virgin Islands (British) | 圣文森特和格林纳丁斯 | 聖文森特和格林納丁斯 | 聖文森及格瑞那丁 |
| Virgin Islands (US) | 维尔京群岛(美国) | 維爾京羣島(美國) | 維爾京群島(美國) |
| Wallis And Futuna Islands | 瓦利斯群岛和富图纳群岛 | 瓦利斯羣島和富圖納羣島 | 瓦利斯群島和富圖納群島 |
| Western Sahara | 西撒哈拉 | 西撒哈拉 | 西撒哈拉 |
| Yemen | 也门 | 也門 | 葉門 |
| Zambia | 赞比亚 | 贊比亞 | 尚比亞 |
| Zimbabwe | 津巴布韦 | 津巴布韋 | 辛巴威 |
### Section Names
| English | Chinese (Simplified) | Chinese (Traditional, Hong Kong) | Chinese (Traditional, Taiwan) |
| ------------ | -------------------- | -------------------------------- | ----------------------------- |
| Awards | 荣誉 | 榮譽 | 榮譽 |
| Basics | 简介 | 簡介 | 簡介 |
| Certificates | 证书 | 證書 | 證書 |
| Education | 教育背景 | 教育背景 | 教育背景 |
| Interests | 兴趣爱好 | 興趣愛好 | 興趣愛好 |
| Languages | 语言 | 語言 | 語言 |
| Location | 地址 | 地址 | 地址 |
| Profiles | 社交信息 | 社交信息 | 社交信息 |
| Projects | 项目 | 項目 | 項目 |
| Publications | 出版刊物 | 出版刊物 | 出版刊物 |
| References | 引荐 | 引薦 | 引薦 |
| Skills | 专业技能 | 專業技能 | 專業技能 |
| Volunteer | 志愿服务 | 志願服務 | 志願服務 |
| Work | 工作经历 | 工作經歷 | 工作經歷 |
### Skill Levels
| English | Chinese (Simplified) | Chinese (Traditional, Hong Kong) | Chinese (Traditional, Taiwan) |
| ------------ | -------------------- | -------------------------------- | ----------------------------- |
| Novice | 新手 | 新手 | 新手 |
| Beginner | 初级 | 初級 | 初級 |
| Intermediate | 中级 | 中級 | 中級 |
| Advanced | 高级 | 高級 | 高級 |
| Expert | 专家 | 專家 | 專家 |
| Master | 大师 | 大師 | 大師 |
### Terms
| English | Chinese (Simplified) | Chinese (Traditional, Hong Kong) | Chinese (Traditional, Taiwan) |
| -------- | -------------------- | -------------------------------- | ----------------------------- |
| Courses | 课程 | 課程 | 課程 |
| Keywords | 关键字 | 關鍵字 | 關鍵字 |
| Score | 成绩 | 成績 | 成績 |
# Dutch
URL: (/en/docs/locale/dutch)
English and Dutch are both
[Germanic languages](https://en.wikipedia.org/wiki/Germanic_languages), with
Dutch being part of the West Germanic branch. While both languages share some
common foundations, Dutch has distinct characteristics that require specific
considerations for YAMLResume.
## Linguistics
### Character Set
The character sets of English and Dutch are similar—both languages primarily use
the [Latin alphabet](https://en.wikipedia.org/wiki/Latin_alphabet). However,
Dutch has additional features. Here's a detailed comparison:
| Feature | English Character Set | Dutch Character Set |
| :--------------------- | :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------- |
| **Alphabet** | 26 letters (`a-z`) | 26 letters (`a-z`). The digraph `ij` is sometimes treated as a single letter. |
| **Diacritics** | None | Uses diacritics such as the trema (`ë`, `ï`) to separate vowels (e.g., *coöperatie*) and acute accents (`é`) for emphasis. |
| **Special Characters** | Limited to basic Latin characters | Includes standard characters but treats `ij` specially in capitalization (e.g., *IJsselmeer*). |
The main differences between the English and Dutch writing systems:
* **Digraph `ij`**: In Dutch, `ij` combined is often treated as a single letter.
When capitalized at the start of a sentence or proper noun, both I and J are
capitalized (e.g., *IJmuiden*).
* **Diacritics**: The trema (diaeresis) is used to indicate that two vowels are
pronounced separately (hiatus), rather than as a diphthong.
## Idioms
### Date
Days of the week and months are not capitalized in Dutch (unlike English),
unless they appear at the beginning of a sentence. For example, "Sep 2021" is
translated as "sep. 2021" or "sept. 2021" in Dutch, with a lowercase month.
### Capitalization
Dutch capitalization rules are generally similar to English but with exceptions:
* **Days/Months**: Written in lowercase (*maandag*, *januari*).
* **Languages/Nationalities**: Capitalized (*Nederlands*, *Engels*).
* **Pronoun "I"**: The Dutch "ik" is written in lowercase, unless at the start
of a sentence.
YAMLResume internally adopts a fixed set of options and terms for all resume
templates. For example, languages in YAMLResume resume templates adopt
[LinkedIn's language fluency options](https://www.linkedin.com/pulse/language-proficiency-linkedin-duaa-ali/):
* Elementary Proficiency
* Limited Working Proficiency
* Minimum Professional Proficiency
* Full Professional Proficiency
* Native or Bilingual Proficiency
These are translated to Dutch as follows:
* Elementaire vaardigheid
* Beperkte werkvaardigheid
* Minimale professionele vaardigheid
* Volledige professionele vaardigheid
* Moedertaal of tweetalige vaardigheid
Only the first word is capitalized, following Dutch capitalization conventions.
## Typesetting
### Punctuations
Dutch has several notable differences in punctuation from English:
* **Decimal separator**: Dutch uses a comma as a decimal separator (e.g., 3,14)
instead of a period like in English (3.14).
* **Thousand separator**: Dutch uses a period or space as a thousand separator
(e.g., 1.000 or 1 000) rather than a comma.
* **Quotation marks**: Dutch officially uses double quotes (often low-high
`„...”` or high-high `"..."`) or single quotes (`'...'`).
## Translations
YAMLResume adopts the following translations for various options and terms used
in Dutch resumes.
### Education Degrees
| English | Dutch |
| :------------ | :--------- |
| Middle School | Middelbaar |
| High School | Hogeschool |
| Diploma | Diploma |
| Associate | Graduaat |
| Bachelor | Bachelor |
| Master | Master |
| Doctor | Doctoraat |
### Languages
| English | Dutch |
| :---------- | :------------- |
| Afrikaans | Afrikaans |
| Albanian | Albanees |
| Amharic | Amhaars |
| Arabic | Arabisch |
| Azerbaijani | Azerbeidzjaans |
| Belarusian | Wit-Russisch |
| Bengali | Bengaals |
| Bhojpuri | Bhojpuri |
| Bulgarian | Bulgaars |
| Burmese | Birmees |
| Cantonese | Kantonees |
| Catalan | Catalaans |
| Chinese | Chinees |
| Croatian | Kroatisch |
| Czech | Tsjechisch |
| Danish | Deens |
| Dutch | Nederlands |
| English | Engels |
| Estonian | Ests |
| Farsi | Persan |
| Filipino | Filipijns |
| Finnish | Fins |
| French | Frans |
| German | Duits |
| Greek | Grieks |
| Gujarati | Gujarati |
| Hausa | Haoussa |
| Hebrew | Hebreeuws |
| Hindi | Hindi |
| Hungarian | Hongaars |
| Icelandic | IJslands |
| Igbo | Igbo |
| Indonesian | Indonesisch |
| Irish | Iers |
| Italian | Italiaans |
| Japanese | Japans |
| Javanese | Javaans |
| Kazakh | Kazachs |
| Khmer | Khmer |
| Korean | Koreaans |
| Lahnda | Lahnda |
| Latvian | Lets |
| Lithuanian | Litouws |
| Malay | Maleis |
| Mandarin | Mandarijn |
| Marathi | Marathi |
| Nepali | Nepalees |
| Norwegian | Noors |
| Oromo | Oromo |
| Pashto | Pasjto |
| Polish | Pools |
| Portuguese | Portugees |
| Romanian | Roemeense |
| Russian | Russisch |
| Serbian | Servisch |
| Shona | Shona |
| Sinhala | Singalees |
| Slovak | Slowaaks |
| Slovene | Sloveens |
| Somali | Somalisch |
| Spanish | Spaans |
| Sundanese | Soendanees |
| Swahili | Swahili |
| Swedish | Zweeds |
| Tagalog | Tagalog |
| Tamil | Tamoul |
| Telugu | Telugu |
| Thai | Thais |
| Turkish | Turks |
| Ukrainian | Oekraïens |
| Urdu | Urdu |
| Uzbek | Oezbeeks |
| Vietnamese | Vietnamees |
| Yoruba | Joruba |
| Zulu | Zoeloe |
### Language Fluencies
| English | Dutch |
| :------------------------------- | :----------------------------------- |
| Elementary Proficiency | Elementaire vaardigheid |
| Limited Working Proficiency | Beperkte werkvaardigheid |
| Minimum Professional Proficiency | Minimale professionele vaardigheid |
| Full Professional Proficiency | Volledige professionele vaardigheid |
| Native or Bilingual Proficiency | Moedertaal of tweetalige vaardigheid |
### Location (Countries and Regions)
| English | Dutch |
| :----------------------------------- | :------------------------------------------------ |
| Afghanistan | Afghanistan |
| Aland Islands | Åland eilanden |
| Albania | Albanië |
| Algeria | Algerije |
| American Samoa | Amerikaans-Samoa |
| Andorra | Andorra |
| Angola | Angola |
| Anguilla | Anguilla |
| Antarctica | Antarctica |
| Antigua And Barbuda | Antigua en Barbuda |
| Argentina | Argentinië |
| Armenia | Armenië |
| Aruba | Aruba |
| Australia | Australië |
| Austria | Oostenrijk |
| Azerbaijan | Azerbeidzjan |
| Bahrain | Bahrein |
| Bangladesh | Bangladesh |
| Barbados | Barbados |
| Belarus | Belarus |
| Belgium | België |
| Belize | Belize |
| Benin | Benin |
| Bermuda | Bermuda |
| Bhutan | Bhutan |
| Bolivia | Bolivia |
| Bonaire, Sint Eustatius and Saba | Bonaire, Sint Eustatius en Saba |
| Bosnia and Herzegovina | Bosnië en Herzegovina |
| Botswana | Botswana |
| Bouvet Island | Bouvet-eiland |
| Brazil | Brazilië |
| British Indian Ocean Territory | Brits Indische Oceaanterritorium |
| Brunei | Brunei |
| Bulgaria | Bulgarije |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Cambodja |
| Cameroon | Kameroen |
| Canada | Canada |
| Cape Verde | Kaapverdië |
| Cayman Islands | Kaaimaneilanden |
| Central African Republic | Centraal-Afrikaanse Republiek |
| Chad | Tsjaad |
| Chile | Chili |
| China | China |
| Christmas Island | Christmaseiland |
| Cocos (Keeling) Islands | Cocoseilanden |
| Colombia | Colombië |
| Comoros | Comoren |
| Congo | Congo |
| Cook Islands | Cook Eilanden |
| Costa Rica | Costa Rica |
| Cote D'Ivoire (Ivory Coast) | Ivoorkust |
| Croatia | Kroatië |
| Cuba | Cuba |
| Curaçao | Curacao |
| Cyprus | Cyprus |
| Czech Republic | Tsjechische Republiek |
| Democratic Republic of the Congo | Democratische Republiek Congo |
| Denmark | Denemarken |
| Djibouti | Djibouti |
| Dominica | Dominica |
| Dominican Republic | Dominicaanse Republiek |
| East Timor | Oost-Timor |
| Ecuador | Ecuador |
| Egypt | Egypte |
| El Salvador | El Salvador |
| Equatorial Guinea | Equatoriaal-Guinea |
| Eritrea | Eritrea |
| Estonia | Estland |
| Ethiopia | Ethiopië |
| Falkland Islands | Falklandeilanden |
| Faroe Islands | Faeröer eilanden |
| Fiji Islands | Fiji-eilanden |
| Finland | Finland |
| France | Frankrijk |
| French Guiana | Frans-Guyana |
| French Polynesia | Frans-Polynesië |
| French Southern Territories | Franse Zuidelijke Gebieden |
| Gabon | Gabon |
| Gambia The | Gambia De |
| Georgia | Georgië |
| Germany | Duitsland |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Griekenland |
| Greenland | Groenland |
| Grenada | Grenada |
| Guadeloupe | Guadeloupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernsey en Alderney |
| Guinea | Guinea |
| Guinea-Bissau | Guinee-Bissau |
| Guyana | Guyana |
| Haiti | Haïti |
| Heard Island and McDonald Islands | Heard Island en McDonald Islands |
| Honduras | Honduras |
| Hong Kong | HongKong |
| Hungary | Hongarijë |
| Iceland | Ijsland |
| India | India |
| Indonesia | Indonesië |
| Iran | Iran |
| Iraq | Iraq |
| Ireland | Ierland |
| Israel | Israël |
| Italy | Italië |
| Jamaica | Jamaica |
| Japan | Japan |
| Jersey | Jersey |
| Jordan | Jordanië |
| Kazakhstan | Kazachstan |
| Kenya | Kenia |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Koeweit |
| Kyrgyzstan | Kirgizië |
| Laos | Laos |
| Latvia | Letland |
| Lebanon | Libanon |
| Lesotho | Lesotho |
| Liberia | Liberia |
| Libya | Libië |
| Liechtenstein | Liechtenstein |
| Lithuania | Litouwen |
| Luxembourg | Luxemburg |
| Macau | Macau |
| Madagascar | Madagascar |
| Malawi | Malawi |
| Malaysia | Maleisië |
| Maldives | Maldiven |
| Mali | Mali |
| Malta | Malta |
| Man (Isle of) | Man (Eiland van) |
| Marshall Islands | Marshall eilanden |
| Martinique | Martinique |
| Mauritania | Mauritanië |
| Mauritius | Mauritius |
| Mayotte | Mayotte |
| Mexico | Mexico |
| Micronesia | Micronesië |
| Moldova | Moldavië |
| Monaco | Monaco |
| Mongolia | Mongolië |
| Montenegro | Montenegro |
| Montserrat | Montserrat |
| Morocco | Marokko |
| Mozambique | Mozambique |
| Myanmar | Myanmar |
| Namibia | Namibië |
| Nauru | Nauru |
| Nepal | Nepal |
| Netherlands | Nederland |
| New Caledonia | Nieuw-Caledonië |
| New Zealand | Nieuw-Zeeland |
| Nicaragua | Nicaragua |
| Niger | Niger |
| Nigeria | Nigeria |
| Niue | Niue |
| Norfolk Island | Norfolkeiland |
| North Korea | Noord-Korea |
| North Macedonia | Noord-Macedionië |
| Northern Mariana Islands | Noordelijke Marianen |
| Norway | Noorwegen |
| Oman | Oman |
| Pakistan | Pakistan |
| Palau | Palau |
| Palestinian Territory Occupied | Palestijns bezet gebied |
| Panama | Panama |
| Papua new Guinea | Papoea-Nieuw-Guinea |
| Paraguay | Paraguay |
| Peru | Peru |
| Philippines | Philippines |
| Pitcairn Island | Pitcairn-eiland |
| Poland | Polen |
| Portugal | Portugal |
| Puerto Rico | Puerto Rico |
| Qatar | Katar |
| Reunion | Reunion |
| Romania | Roemenië |
| Russia | Rusland |
| Rwanda | Rwanda |
| Saint Helena | Sint-Helena |
| Saint Kitts And Nevis | Saint Kitts en Nevis |
| Saint Lucia | Saint Lucia |
| Saint Pierre and Miquelon | Saint Pierre en Miquelon |
| Saint Vincent And The Grenadines | Saint Vincent en de Grenadines |
| Saint-Barthelemy | Saint-Barthélemy |
| Saint-Martin (French part) | Saint-Martin (Frans deel) |
| Samoa | Samoa |
| San Marino | San Marino |
| Sao Tome and Principe | Sao Tomé en Principe |
| Saudi Arabia | Saoedi-Arabië |
| Senegal | Senegal |
| Serbia | Servië |
| Seychelles | Seychellen |
| Sierra Leone | Sierra Leone |
| Singapore | Singapore |
| Sint Maarten (Dutch part) | Sint Maarten (Nederlands deel) |
| Slovakia | Slowakije |
| Slovenia | Slovenië |
| Solomon Islands | Salomonseilanden |
| Somalia | Somalië |
| South Africa | Zuid-Afrika |
| South Georgia | Zuid-Georgië |
| South Korea | Zuid-Korea |
| South Sudan | Zuid-Sudan |
| Spain | Spanje |
| Sri Lanka | Sri Lanka |
| Sudan | Sudan |
| Suriname | Suriname |
| Svalbard And Jan Mayen Islands | Svalbard- en Jan Mayen-eilanden |
| Swaziland | Swaziland |
| Sweden | Zweden |
| Switzerland | Zwitserland |
| Syria | Syrië |
| Taiwan | Taiwan |
| Tajikistan | Tadzjikistan |
| Tanzania | Tanzania |
| Thailand | Thailand |
| The Bahamas | De Bahama's |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinidad en Tobago |
| Tunisia | Tunesië |
| Türkiye | Turkijë |
| Turkmenistan | Turkmenistan |
| Turks And Caicos Islands | Turks- en Caicoseilanden |
| Tuvalu | Tuvalu |
| Uganda | Oeganda |
| Ukraine | Oekraïne |
| United Arab Emirates | Verenigde Arabische Emiraten |
| United Kingdom | Koninkrijk |
| United States | Verenigde Staten |
| United States Minor Outlying Islands | Kleine afgelegen eilanden van de Verenigde Staten |
| Uruguay | Uruguay |
| Uzbekistan | Oezbekistan |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Vaticaanstad (Heilige Stoel) |
| Venezuela | Venezuela |
| Vietnam | Vietnam |
| Virgin Islands (British) | Britse Maagdeneilanden |
| Virgin Islands (US) | Amerikaanse Maagdeneilanden |
| Wallis And Futuna Islands | Wallis en Futuna-eilanden |
| Western Sahara | Westelijke Sahara |
| Yemen | Jemen |
| Zambia | Zambia |
| Zimbabwe | Zimbabwe |
### Section Names
| English | Dutch |
| :----------- | :---------------- |
| Awards | Onderscheidingen |
| Basics | Basis Informatie |
| Certificates | Certificaten |
| Education | Opleidingen |
| Interests | Interesses |
| Languages | Talen |
| Location | Locatie |
| Profiles | Profielen |
| Projects | Projecten |
| Publications | Publicaties |
| References | Referenties |
| Skills | Vaardigheden |
| Volunteer | Vrijwilligerswerk |
| Work | Werkervaring |
### Skill Levels
| English | Dutch |
| :----------- | :----------- |
| Novice | Nieuweling |
| Beginner | Beginner |
| Intermediate | Intermediair |
| Advanced | Geavanceerd |
| Expert | Expert |
| Master | Meester |
### Options and Terms
| English | Dutch |
| :------- | :---------- |
| Courses | Cursussen |
| Keywords | Trefwoorden |
| Score | Score |
# English
URL: (/en/docs/locale/english)
As we all know, English is widely used and spoken all over the world.
Supporting English in YAMLResume is an easy job. There's very little extra setup
to do in order to support English resumes with LaTeX.
## Linguistics
Theoretically, English belongs to [Germanic
languages](https://en.wikipedia.org/wiki/Germanic_languages), which is a branch
of the [Indo-European language
family](https://en.wikipedia.org/wiki/Indo-European_languages) spoken natively
by a population of about 515 million people mainly in Europe, North
America, Oceania, and Southern Africa.
### Character Set
Modern English is written with a Latin alphabet consisting of 26 letters, with
each having both uppercase and lowercase forms.
[Latin alphabet](https://en.wikipedia.org/wiki/Latin_alphabet) is the most
widely used alphabetic writing system in the world.
## Idioms
### Date
English has dedicated words for months, while each has a short form. YAMLResume
adopts the short form for all month fields by default.
| Long Form | Short Form |
| --------- | ---------- |
| January | Jan |
| February | Feb |
| March | Mar |
| April | Apr |
| May | May |
| June | Jun |
| July | Jul |
| August | Aug |
| September | Sep |
| October | Oct |
| November | Nov |
| December | Dec |
### Location
Different languages present locations in different format. In English, when
presenting a location with address, city, and country, the general part
(country, state, etc.) typically comes last, while the most specific part (town,
address, etc.) comes first. In some other languages like Chinese, the order is
totally reversed.
Here's the typical order in English:
1. Address: This includes the street number, street name, apartment number, etc.
2. City: The name of the city or town.
3. State/Province: The state or province, if applicable.
4. Country: The name of the country.
## Typesetting
Lots of typesetting theory and practice can be shared by all Latin script
languages, English is no exception here. We have already prepared a
[guide](/docs/guide) which covers lots of details.
### Font
Check [Guide -> Font](/docs/guide/font) from our guide for details.
* [Serif vs. sans-serif](/docs/guide/font#serif-vs-sans-serif)
* [Proportional vs. monospaced](/docs/guide/font#proportional-vs-monospaced)
* [Kerning](/docs/guide/font#kerning)
* [Ligature](/docs/guide/font#ligature)
* [Italics](/docs/guide/font#italics)
* [Old style numbers](/docs/guide/font#old-style-numbers)
### Punctuations
Check [Guide -> Punctuations](/docs/guide/punctuations) from our guide for details:
* [Hyphen](/docs/guide/punctuations#hyphen--)
* [En-dash](/docs/guide/punctuations#en-dash-)
* [Em-dash](/docs/guide/punctuations#em-dash-)
## Translations
YAMLResume adopts the following translations for various options and terms used
in English resumes.
### Education Degrees
YAMLResume presents the following predefined degrees for Education section.
| English |
| ------------- |
| Middle School |
| High School |
| Diploma |
| Associate |
| Bachelor |
| Master |
| Doctor |
### Languages
YAMLResume presents the following predefined language options for Languages
section.
| English |
| ----------- |
| Afrikaans |
| Albanian |
| Amharic |
| Arabic |
| Azerbaijani |
| Belarusian |
| Bengali |
| Bhojpuri |
| Bulgarian |
| Burmese |
| Cantonese |
| Catalan |
| Chinese |
| Croatian |
| Czech |
| Danish |
| Dutch |
| English |
| Estonian |
| Farsi |
| Filipino |
| Finnish |
| French |
| German |
| Greek |
| Gujarati |
| Hausa |
| Hebrew |
| Hindi |
| Hungarian |
| Icelandic |
| Igbo |
| Indonesian |
| Irish |
| Italian |
| Japanese |
| Javanese |
| Kazakh |
| Khmer |
| Korean |
| Lahnda |
| Latvian |
| Lithuanian |
| Malay |
| Mandarin |
| Marathi |
| Nepali |
| Norwegian |
| Oromo |
| Pashto |
| Polish |
| Portuguese |
| Romanian |
| Russian |
| Serbian |
| Shona |
| Sinhala |
| Slovak |
| Slovene |
| Somali |
| Spanish |
| Sundanese |
| Swahili |
| Swedish |
| Tagalog |
| Tamil |
| Telugu |
| Thai |
| Turkish |
| Ukrainian |
| Urdu |
| Uzbek |
| Vietnamese |
| Yoruba |
| Zulu |
### Language Fluencies
YAMLResume presents the following predefined language fluency options for
Languages section. These options are mirrored from
[Linkedin](https://www.linkedin.com/pulse/language-proficiency-linkedin-duaa-ali/).
| English |
| -------------------------------- |
| Elementary Proficiency |
| Limited Working Proficiency |
| Minimum Professional Proficiency |
| Full Professional Proficiency |
| Native or Bilingual Proficiency |
### Location (Countries and Regions)
YAMLResume provides the following options for countries and regions in Location
section. This list is coming from
[countries-states-cities-database](https://github.com/dr5hn/countries-states-cities-database).
Not all of them are countries, some are regions or
[SAR](https://en.wikipedia.org/wiki/Special_administrative_regions_of_China).
| English |
| ------------------------------------ |
| Afghanistan |
| Aland Islands |
| Albania |
| Algeria |
| American Samoa |
| Andorra |
| Angola |
| Anguilla |
| Antarctica |
| Antigua And Barbuda |
| Argentina |
| Armenia |
| Aruba |
| Australia |
| Austria |
| Azerbaijan |
| Bahrain |
| Bangladesh |
| Barbados |
| Belarus |
| Belgium |
| Belize |
| Benin |
| Bermuda |
| Bhutan |
| Bolivia |
| Bonaire, Sint Eustatius and Saba |
| Bosnia and Herzegovina |
| Botswana |
| Bouvet Island |
| Brazil |
| British Indian Ocean Territory |
| Brunei |
| Bulgaria |
| Burkina Faso |
| Burundi |
| Cambodia |
| Cameroon |
| Canada |
| Cape Verde |
| Cayman Islands |
| Central African Republic |
| Chad |
| Chile |
| China |
| Christmas Island |
| Cocos (Keeling) Islands |
| Colombia |
| Comoros |
| Congo |
| Cook Islands |
| Costa Rica |
| Cote D'Ivoire (Ivory Coast) |
| Croatia |
| Cuba |
| Curaçao |
| Cyprus |
| Czech Republic |
| Democratic Republic of the Congo |
| Denmark |
| Djibouti |
| Dominica |
| Dominican Republic |
| East Timor |
| Ecuador |
| Egypt |
| El Salvador |
| Equatorial Guinea |
| Eritrea |
| Estonia |
| Ethiopia |
| Falkland Islands |
| Faroe Islands |
| Fiji Islands |
| Finland |
| France |
| French Guiana |
| French Polynesia |
| French Southern Territories |
| Gabon |
| Gambia The |
| Georgia |
| Germany |
| Ghana |
| Gibraltar |
| Greece |
| Greenland |
| Grenada |
| Guadeloupe |
| Guam |
| Guatemala |
| Guernsey and Alderney |
| Guinea |
| Guinea-Bissau |
| Guyana |
| Haiti |
| Heard Island and McDonald Islands |
| Honduras |
| Hong Kong S.A.R. |
| Hungary |
| Iceland |
| India |
| Indonesia |
| Iran |
| Iraq |
| Ireland |
| Israel |
| Italy |
| Jamaica |
| Japan |
| Jersey |
| Jordan |
| Kazakhstan |
| Kenya |
| Kiribati |
| Kosovo |
| Kuwait |
| Kyrgyzstan |
| Laos |
| Latvia |
| Lebanon |
| Lesotho |
| Liberia |
| Libya |
| Liechtenstein |
| Lithuania |
| Luxembourg |
| Macau S.A.R. |
| Madagascar |
| Malawi |
| Malaysia |
| Maldives |
| Mali |
| Malta |
| Man (Isle of) |
| Marshall Islands |
| Martinique |
| Mauritania |
| Mauritius |
| Mayotte |
| Mexico |
| Micronesia |
| Moldova |
| Monaco |
| Mongolia |
| Montenegro |
| Montserrat |
| Morocco |
| Mozambique |
| Myanmar |
| Namibia |
| Nauru |
| Nepal |
| Netherlands |
| New Caledonia |
| New Zealand |
| Nicaragua |
| Niger |
| Nigeria |
| Niue |
| Norfolk Island |
| North Korea |
| North Macedonia |
| Northern Mariana Islands |
| Norway |
| Oman |
| Pakistan |
| Palau |
| Palestinian Territory Occupied |
| Panama |
| Papua new Guinea |
| Paraguay |
| Peru |
| Philippines |
| Pitcairn Island |
| Poland |
| Portugal |
| Puerto Rico |
| Qatar |
| Reunion |
| Romania |
| Russia |
| Rwanda |
| Saint Helena |
| Saint Kitts And Nevis |
| Saint Lucia |
| Saint Pierre and Miquelon |
| Saint Vincent And The Grenadines |
| Saint-Barthelemy |
| Saint-Martin (French part) |
| Samoa |
| San Marino |
| Sao Tome and Principe |
| Saudi Arabia |
| Senegal |
| Serbia |
| Seychelles |
| Sierra Leone |
| Singapore |
| Sint Maarten (Dutch part) |
| Slovakia |
| Slovenia |
| Solomon Islands |
| Somalia |
| South Africa |
| South Georgia |
| South Korea |
| South Sudan |
| Spain |
| Sri Lanka |
| Sudan |
| Suriname |
| Svalbard And Jan Mayen Islands |
| Swaziland |
| Sweden |
| Switzerland |
| Syria |
| Taiwan |
| Tajikistan |
| Tanzania |
| Thailand |
| The Bahamas |
| Togo |
| Tokelau |
| Tonga |
| Trinidad And Tobago |
| Tunisia |
| Türkiye |
| Turkmenistan |
| Turks And Caicos Islands |
| Tuvalu |
| Uganda |
| Ukraine |
| United Arab Emirates |
| United Kingdom |
| United States |
| United States Minor Outlying Islands |
| Uruguay |
| Uzbekistan |
| Vanuatu |
| Vatican City State (Holy See) |
| Venezuela |
| Vietnam |
| Virgin Islands (British) |
| Virgin Islands (US) |
| Wallis And Futuna Islands |
| Western Sahara |
| Yemen |
| Zambia |
| Zimbabwe |
### Section Names
YAMLResume supports the following sections, each with a section name.
| English |
| ------------ |
| Awards |
| Basics |
| Certificates |
| Education |
| Interests |
| Languages |
| Location |
| Profiles |
| Projects |
| Publications |
| References |
| Skills |
| Volunteer |
| Work |
### Skill Levels
YAMLResume presents the following skill level options for Skills section.
| English |
| ------------ |
| Novice |
| Beginner |
| Intermediate |
| Advanced |
| Expert |
| Master |
### Terms
YAMLResume uses some fixed terms in our resume template.
| Term | description |
| -------- | ------------------------------------------------------------------- |
| Courses | used in Education section for courses |
| Keywords | used in Work, Projects section where a list of keyword is presented |
| Score | used in Education section for grade/score in school |
# French
URL: (/en/docs/locale/french)
French is a [Romance language](https://en.wikipedia.org/wiki/Romance_languages)
of the Indo-European family. While it shares the Latin alphabet with English, it
has distinct characteristics in typography, punctuation, and grammar that
require specific considerations for YAMLResume.
## Linguistics
### Character Set
French uses the 26 letters of the basic [Latin
alphabet](https://en.wikipedia.org/wiki/Latin_alphabet), with four diacritics
appearing on vowels (circumflex accent, diaeresis, grave accent, acute accent)
and the cedilla appearing in "ç". There are also two ligatures, "œ" and "æ".
| Feature | English Character Set | French Character Set |
| ---------------------- | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| **Alphabet** | 26 letters (`a-z`) | 26 letters plus letters with diacritics and ligatures |
| **Diacritics** | None | Acute (`é`), grave (`à`, `è`, `ù`), circumflex (`â`, `ê`, `î`, `ô`, `û`), diaeresis (`ë`, `ï`, `ü`, `ÿ`), cedilla (`ç`) |
| **Special Characters** | Limited to basic Latin characters | Includes ligatures `œ` (e.g., "cœur") and `æ` (e.g., "ex æquo") |
### Idioms
#### Date
Days of the week and months are not capitalized in French (unlike English). For
example, "Sep 2021" in English is translated as "sept. 2021" in French.
YAMLResume only uses months, hence the translation table:
| English | French |
| --------------- | ----------------- |
| January (Jan) | janvier (janv.) |
| February (Feb) | février (févr.) |
| March (Mar) | mars (mars) |
| April (Apr) | avril (avr.) |
| May (May) | mai (mai) |
| June (Jun) | juin (juin) |
| July (Jul) | juillet (juil.) |
| August (Aug) | août (août) |
| September (Sep) | septembre (sept.) |
| October (Oct) | octobre (oct.) |
| November (Nov) | novembre (nov.) |
| December (Dec) | décembre (déc.) |
#### Capitalization
French generally follows sentence case for titles and headings, but YAMLResume
provides capitalized terms for consistency with resume standards.
One notable difference is that languages and nationalities used as adjectives
are not capitalized in standard French (e.g., "je parle français"), but they are
capitalized when referring to the noun (the language itself) in lists within
YAMLResume for consistency.
### Typesetting
#### Punctuations
French has specific rules for spacing around punctuation marks:
* **High punctuation**: The colon (`:`), semicolon (`;`), exclamation mark
(`!`), and question mark (`?`) require a non-breaking space before them.
* **Quotation marks**: French uses guillemets (`«` and `»`) with non-breaking
spaces inside them (e.g., `« Bonjour »`).
* **Decimal separator**: French uses a comma as a decimal separator (e.g.,
3,14).
* **Thousand separator**: French uses a non-breaking space as a thousand
separator (e.g., 1 000).
YAMLResume handles the colon spacing specifically for French layouts (e.g., ` :`).
## Translations
YAMLResume adopts the following translations for various options and terms used
in French resumes.
### Education Degrees
| English | French |
| ------------- | ------------------------------------ |
| Middle School | Collège |
| High School | Lycée |
| Diploma | Diplôme |
| Associate | Diplôme universitaire de technologie |
| Bachelor | Licence |
| Master | Master |
| Doctor | Doctorat |
### Languages
| English | French |
| ----------- | ----------- |
| Afrikaans | Afrikaans |
| Albanian | Albanais |
| Amharic | Amharique |
| Arabic | Arabe |
| Azerbaijani | Azéri |
| Belarusian | Biélorusse |
| Bengali | Bengali |
| Bhojpuri | Bhojpuri |
| Bulgarian | Bulgare |
| Burmese | Birman |
| Cantonese | Cantonais |
| Catalan | Catalan |
| Chinese | Chinois |
| Croatian | Croate |
| Czech | Tchèque |
| Danish | Danois |
| Dutch | Néerlandais |
| English | Anglais |
| Estonian | Estonien |
| Farsi | Persan |
| Filipino | Filipino |
| Finnish | Finnois |
| French | Français |
| German | Allemand |
| Greek | Grec |
| Gujarati | Gujarati |
| Hausa | Haoussa |
| Hebrew | Hébreu |
| Hindi | Hindi |
| Hungarian | Hongrois |
| Icelandic | Islandais |
| Igbo | Igbo |
| Indonesian | Indonésien |
| Irish | Irlandais |
| Italian | Italien |
| Japanese | Japonais |
| Javanese | Javanais |
| Kazakh | Kazakh |
| Khmer | Khmer |
| Korean | Coréen |
| Lahnda | Lahnda |
| Latvian | Letton |
| Lithuanian | Lituanien |
| Malay | Malais |
| Mandarin | Mandarin |
| Marathi | Marathi |
| Nepali | Népalais |
| Norwegian | Norvégien |
| Oromo | Oromo |
| Pashto | Pachto |
| Polish | Polonais |
| Portuguese | Portugisisk |
| Romanian | Roumain |
| Russian | Russe |
| Serbian | Serbe |
| Shona | Shona |
| Sinhala | Cingalais |
| Slovak | Slovaque |
| Slovene | Slovène |
| Somali | Somali |
| Spanish | Espagnol |
| Sundanese | Soundanais |
| Swahili | Swahili |
| Swedish | Suédois |
| Tagalog | Tagalog |
| Tamil | Tamoul |
| Telugu | Telugu |
| Thai | Thaï |
| Turkish | Turc |
| Ukrainian | Ukrainien |
| Urdu | Ourdou |
| Uzbek | Ouzbek |
| Vietnamese | Vietnamien |
| Yoruba | Yoruba |
| Zulu | Zoulou |
### Language Fluencies
| English | French |
| -------------------------------- | ---------------------------- |
| Elementary Proficiency | Niveau élémentaire |
| Limited Working Proficiency | Niveau de travail limité |
| Minimum Professional Proficiency | Niveau professionnel minimum |
| Full Professional Proficiency | Niveau professionnel complet |
| Native or Bilingual Proficiency | Niveau natif ou bilingue |
### Location (Countries and Regions)
| English | French |
| ------------------------------------ | ------------------------------------------ |
| Afghanistan | Afghanistan |
| Aland Islands | Îles Åland |
| Albania | Albanie |
| Algeria | Algérie |
| American Samoa | Samoa américaines |
| Andorra | Andorre |
| Angola | Angola |
| Anguilla | Anguilla |
| Antarctica | Antarctique |
| Antigua And Barbuda | Antigua-et-Barbuda |
| Argentina | Argentine |
| Armenia | Arménie |
| Aruba | Aruba |
| Australia | Australie |
| Austria | Autriche |
| Azerbaijan | Azerbaïdjan |
| Bahrain | Bahreïn |
| Bangladesh | Bangladesh |
| Barbados | Barbade |
| Belarus | Biélorussie |
| Belgium | Belgique |
| Belize | Belize |
| Benin | Bénin |
| Bermuda | Bermudes |
| Bhutan | Bhoutan |
| Bolivia | Bolivie |
| Bonaire, Sint Eustatius and Saba | Bonaire, Saint-Eustache et Saba |
| Bosnia and Herzegovina | Bosnie-Herzégovine |
| Botswana | Botswana |
| Bouvet Island | Île Bouvet |
| Brazil | Brésil |
| British Indian Ocean Territory | Territoire britannique de l'océan Indien |
| Brunei | Brunéi |
| Bulgaria | Bulgarie |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Cambodge |
| Cameroon | Cameroun |
| Canada | Canada |
| Cape Verde | Cap-Vert |
| Cayman Islands | Îles Caïmans |
| Central African Republic | République centrafricaine |
| Chad | Tchad |
| Chile | Chili |
| China | Chine |
| Christmas Island | Île Christmas |
| Cocos (Keeling) Islands | Îles Cocos (Keeling) |
| Colombia | Colombie |
| Comoros | Comores |
| Congo | Congo |
| Cook Islands | Îles Cook |
| Costa Rica | Costa Rica |
| Cote D'Ivoire (Ivory Coast) | Côte d'Ivoire |
| Croatia | Croatie |
| Cuba | Cuba |
| Curaçao | Curaçao |
| Cyprus | Chypre |
| Czech Republic | République tchèque |
| Democratic Republic of the Congo | République démocratique du Congo |
| Denmark | Danemark |
| Djibouti | Djibouti |
| Dominica | Dominique |
| Dominican Republic | République dominicaine |
| East Timor | Timor oriental |
| Ecuador | Équateur |
| Egypt | Égypte |
| El Salvador | Salvador |
| Equatorial Guinea | Guinée équatoriale |
| Eritrea | Érythrée |
| Estonia | Estonie |
| Ethiopia | Éthiopie |
| Falkland Islands | Îles Malouines |
| Faroe Islands | Îles Féroé |
| Fiji Islands | Fidji |
| Finland | Finlande |
| France | France |
| French Guiana | Guyane française |
| French Polynesia | Polynésie française |
| French Southern Territories | Terres australes françaises |
| Gabon | Gabon |
| Gambia The | Gambie |
| Georgia | Géorgie |
| Germany | Allemagne |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Grèce |
| Greenland | Groenland |
| Grenada | Grenade |
| Guadeloupe | Guadeloupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernesey et Alderney |
| Guinea | Guinée |
| Guinea-Bissau | Guinée-Bissau |
| Guyana | Guyana |
| Haiti | Haïti |
| Heard Island and McDonald Islands | Îles Heard-et-MacDonald |
| Honduras | Honduras |
| Hong Kong S.A.R. | Hong Kong S.A.R. |
| Hungary | Hongrie |
| Iceland | Islande |
| India | Inde |
| Indonesia | Indonésie |
| Iran | Iran |
| Iraq | Irak |
| Ireland | Irlande |
| Israel | Israël |
| Italy | Italie |
| Jamaica | Jamaïque |
| Japan | Japon |
| Jersey | Jersey |
| Jordan | Jordanie |
| Kazakhstan | Kazakhstan |
| Kenya | Kenya |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Koweït |
| Kyrgyzstan | Kirghizistan |
| Laos | Laos |
| Latvia | Lettonie |
| Lebanon | Liban |
| Lesotho | Lesotho |
| Liberia | Libéria |
| Libya | Libye |
| Liechtenstein | Liechtenstein |
| Lithuania | Lituanie |
| Luxembourg | Luxembourg |
| Macau S.A.R. | Macao S.A.R. |
| Madagascar | Madagascar |
| Malawi | Malawi |
| Malaysia | Malaisie |
| Maldives | Maldives |
| Mali | Mali |
| Malta | Malte |
| Man (Isle of) | Île de Man |
| Marshall Islands | Îles Marshall |
| Martinique | Martinique |
| Mauritania | Mauritanie |
| Mauritius | Maurice |
| Mayotte | Mayotte |
| Mexico | Mexique |
| Micronesia | Micronésie |
| Moldova | Moldavie |
| Monaco | Monaco |
| Mongolia | Mongolie |
| Montenegro | Monténégro |
| Montserrat | Montserrat |
| Morocco | Maroc |
| Mozambique | Mozambique |
| Myanmar | Myanmar |
| Namibia | Namibie |
| Nauru | Nauru |
| Nepal | Népal |
| Netherlands | Pays-Bas |
| New Caledonia | Nouvelle-Calédonie |
| New Zealand | Nouvelle-Zélande |
| Nicaragua | Nicaragua |
| Niger | Niger |
| Nigeria | Nigéria |
| Niue | Niue |
| Norfolk Island | Île Norfolk |
| North Korea | Corée du Nord |
| North Macedonia | Macédoine du Nord |
| Northern Mariana Islands | Îles Mariannes du Nord |
| Norway | Norvège |
| Oman | Oman |
| Pakistan | Pakistan |
| Palau | Palaos |
| Palestinian Territory Occupied | Palestine |
| Panama | Panama |
| Papua new Guinea | Papouasie-Nouvelle-Guinée |
| Paraguay | Paraguay |
| Peru | Pérou |
| Philippines | Philippines |
| Pitcairn Island | Îles Pitcairn |
| Poland | Pologne |
| Portugal | Portugal |
| Puerto Rico | Porto Rico |
| Qatar | Qatar |
| Reunion | La Réunion |
| Romania | Roumanie |
| Russia | Russie |
| Rwanda | Rwanda |
| Saint Helena | Sainte-Hélène |
| Saint Kitts And Nevis | Saint-Christophe-et-Niévès |
| Saint Lucia | Sainte-Lucie |
| Saint Pierre and Miquelon | Saint-Pierre-et-Miquelon |
| Saint Vincent And The Grenadines | Saint-Vincent-et-les-Grenadines |
| Saint-Barthelemy | Saint-Barthélemy |
| Saint-Martin (French part) | Saint-Martin |
| Samoa | Samoa |
| San Marino | Saint-Marin |
| Sao Tome and Principe | Sao Tomé-et-Principe |
| Saudi Arabia | Arabie saoudite |
| Senegal | Sénégal |
| Serbia | Serbie |
| Seychelles | Seychelles |
| Sierra Leone | Sierra Leone |
| Singapore | Singapour |
| Sint Maarten (Dutch part) | Saint-Martin |
| Slovakia | Slovaquie |
| Slovenia | Slovénie |
| Solomon Islands | Îles Salomon |
| Somalia | Somalie |
| South Africa | Afrique du Sud |
| South Georgia | Géorgie du Sud-et-les Îles Sandwich du Sud |
| South Korea | Corée du Sud |
| South Sudan | Soudan du Sud |
| Spain | Espagne |
| Sri Lanka | Sri Lanka |
| Sudan | Soudan |
| Suriname | Suriname |
| Svalbard And Jan Mayen Islands | Svalbard et Jan Mayen |
| Swaziland | Swaziland |
| Sweden | Suède |
| Switzerland | Suisse |
| Syria | Syrie |
| Taiwan | Taïwan |
| Tajikistan | Tadjikistan |
| Tanzania | Tanzanie |
| Thailand | Thaïlande |
| The Bahamas | Bahamas |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinité-et-Tobago |
| Tunisia | Tunisie |
| Türkiye | Turquie |
| Turkmenistan | Turkménistan |
| Turks And Caicos Islands | Îles Turques-et-Caïques |
| Tuvalu | Tuvalu |
| Uganda | Ouganda |
| Ukraine | Ukraine |
| United Arab Emirates | Émirats arabes unis |
| United Kingdom | Royaume-Uni |
| United States | États-Unis |
| United States Minor Outlying Islands | Îles mineures éloignées des États-Unis |
| Uruguay | Uruguay |
| Uzbekistan | Ouzbékistan |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Vatican |
| Venezuela | Venezuela |
| Vietnam | Viêt Nam |
| Virgin Islands (British) | Îles Vierges britanniques |
| Virgin Islands (US) | Îles Vierges américaines |
| Wallis And Futuna Islands | Wallis-et-Futuna |
| Western Sahara | Sahara occidental |
| Yemen | Yémen |
| Zambia | Zambie |
| Zimbabwe | Zimbabwe |
### Section Names
| English | French |
| ------------ | -------------------------- |
| Awards | Récompenses |
| Basics | Informations de base |
| Certificates | Certificats |
| Education | Formation |
| Interests | Centres d'intérêt |
| Languages | Langues |
| Projects | Projets |
| Publications | Publications |
| References | Références |
| Skills | Compétences |
| Volunteer | Bénévolat |
| Work | Expérience professionnelle |
### Skill Levels
| English | French |
| ------------ | ------------- |
| Novice | Novice |
| Beginner | Débutant |
| Intermediate | Intermédiaire |
| Advanced | Avancé |
| Expert | Expert |
| Master | Maître |
### Options and Terms
| English | French |
| -------- | --------- |
| Courses | Cours |
| Keywords | Mots-clés |
| Score | Score |
# German
URL: (/en/docs/locale/german)
German (Deutsch) is a
[West Germanic language](https://en.wikipedia.org/wiki/West_Germanic_languages)
mainly spoken in Central Europe. It is the most widely spoken and official or
co-official language in Germany, Austria, Switzerland, South Tyrol in Italy, the
German-speaking Community of Belgium, and Liechtenstein.
## Linguistics
### Character Set
German uses the Latin alphabet. In addition to the 26 standard letters, German
has three vowels with Umlaut: ä, ö and ü, as well as the Eszett or "sharp S": ß.
| Feature | English Character Set | German Character Set |
| ---------------------- | --------------------------------- | ----------------------------------------------- |
| **Alphabet** | 26 letters (`a-z`) | 26 letters plus letters with umlauts and Eszett |
| **Diacritics** | None | Umlaut (`ä`, `ö`, `ü`) |
| **Special Characters** | Limited to basic Latin characters | Includes Eszett `ß` |
### Idioms
#### Date
German dates are formatted with day, month, and year. Month names are
capitalized.
| English | German |
| --------- | --------- |
| January | Januar |
| February | Februar |
| March | März |
| April | April |
| May | Mai |
| June | Juni |
| July | Juli |
| August | August |
| September | September |
| October | Oktober |
| November | November |
| December | Dezember |
#### Location
In German addresses, the house number typically follows the street name, and the
postal code precedes the city name.
Here is the typical order in German:
1. **Street and House Number**: The street name comes first, followed by the
house number (e.g., "Musterstraße 123").
2. **Postal Code and City**: The 5-digit postal code (*Postleitzahl* or PLZ)
comes *before* the city name (e.g., "10115 Berlin").
3. **State**: Unlike in some other countries, the federal state (*Bundesland*)
is typically omitted in standard addresses.
4. **Country**: The country name is placed on the last line.
#### Capitalization
German is unique among major languages in that it capitalizes **all nouns**,
regardless of whether they are proper nouns or common nouns (e.g., *Haus*,
*Apfel*, *Freiheit*).
Other parts of speech, such as adjectives and verbs, are generally lowercase
unless they are nominalized (used as a noun) or appear at the beginning of a
sentence.
Additionally, the formal "you" (*Sie*) and its possessive forms (*Ihr*) are
always capitalized in correspondence and formal writing.
### Typesetting
#### Punctuations
German punctuation rules differ significantly from English in several areas:
* **Quotation Marks**:
* The standard German style ("Gänsefüßchen") uses a low opening mark and a
high closing mark: `„` (U+201E) and `“` (U+201C). Example: „Zitat“.
* An alternative style (often in books) uses guillemets pointing **inwards**:
`»` (U+00BB) and `«` (U+00AB). Example: »Zitat«. (Contrast with French
`« Zitat »`).
* **Apostrophe**:
* It is generally **not** used for the genitive 's' (e.g., "Deutschland**s**
Hauptstadt", not "Deutschland's").
* It is used to indicate omitted letters (e.g., "Wie geht’s?").
* **Comma**:
* Commas are mandatory for separating dependent clauses (*Nebensätze*) from
main clauses.
* **Numbers**:
* **Decimal separator**: German uses a comma (e.g., `12,34`).
* **Thousand separator**: German uses a dot or space (e.g., `1.234` or
`1 234`).
## Translations
YAMLResume adopts the following translations for various options and terms used
in German resumes.
### Education Degrees
| English | German |
| ------------- | ---------------------- |
| Middle School | Mittlere Reife |
| High School | Abitur |
| Diploma | Diplom |
| Associate | Fachhochschulabschluss |
| Bachelor | Bachelor |
| Master | Master |
| Doctor | Doktor |
| Afrikaans | Afrikaans |
### Languages
| English | German |
| ----------- | ----------------- |
| Afrikaans | Afrikaans |
| Albanian | Albanisch |
| Amharic | Amharisch |
| Arabic | Arabisch |
| Azerbaijani | Aserbaidschanisch |
| Belarusian | Belarussisch |
| Bengali | Bengalisch |
| Bhojpuri | Bhojpuri |
| Bulgarian | Bulgarisch |
| Burmese | Birmanisch |
| Cantonese | Kantonesisch |
| Catalan | Katalanisch |
| Chinese | Chinesisch |
| Croatian | Kroatisch |
| Czech | Tschechisch |
| Danish | Dänisch |
| Dutch | Niederländisch |
| English | Englisch |
| Estonian | Estnisch |
| Farsi | Farsi |
| Filipino | Philippinisch |
| Finnish | Finnisch |
| French | Französisch |
| German | Deutsch |
| Greek | Griechisch |
| Gujarati | Gujarati |
| Hausa | Hausa |
| Hebrew | Hebräisch |
| Hindi | Hindi |
| Hungarian | Ungarisch |
| Icelandic | Isländisch |
| Igbo | Igbo |
| Indonesian | Indonesisch |
| Irish | Irisch |
| Italian | Italienisch |
| Japanese | Japanisch |
| Javanese | Javanisch |
| Kazakh | Kasachisch |
| Khmer | Khmer |
| Korean | Koreanisch |
| Lahnda | Lahnda |
| Latvian | Lettisch |
| Lithuanian | Litauisch |
| Malay | Malaiisch |
| Mandarin | Mandarin |
| Marathi | Marathi |
| Nepali | Nepalesisch |
| Norwegian | Norwegisch |
| Oromo | Oromo |
| Pashto | Paschtu |
| Polish | Polnisch |
| Portuguese | Portugiesisch |
| Romanian | Rumänisch |
| Russian | Russisch |
| Serbian | Serbisch |
| Shona | Shona |
| Sinhala | Singhalesisch |
| Slovak | Slowakisch |
| Slovene | Slowenisch |
| Somali | Somalisch |
| Spanish | Spanisch |
| Sundanese | Sundanesisch |
| Swahili | Suaheli |
| Swedish | Schwedisch |
| Tagalog | Tagalog |
| Tamil | Tamil |
| Telugu | Telugu |
| Thai | Thailändisch |
| Turkish | Türkisch |
| Ukrainian | Ukrainisch |
| Urdu | Urdu |
| Uzbek | Usbekisch |
| Vietnamese | Vietnamesisch |
| Yoruba | Yoruba |
| Zulu | Zulu |
### Language Fluencies
| English | German |
| -------------------------------- | ------------------------------- |
| Elementary Proficiency | Grundkenntnisse |
| Limited Working Proficiency | Gute Kenntnisse |
| Minimum Professional Proficiency | Berufliche Grundkenntnisse |
| Full Professional Proficiency | Verhandlungssichere Kenntnisse |
| Native or Bilingual Proficiency | Muttersprache oder zweisprachig |
### Location (Countries and Regions)
| English | German |
| --------------------------------- | ----------------------------------------- |
| Afghanistan | Afghanistan |
| Aland Islands | Åland |
| Albania | Albanien |
| Algeria | Algerien |
| American Samoa | Amerikanisch-Samoa |
| Andorra | Andorra |
| Angola | Angola |
| Anguilla | Anguilla |
| Antarctica | Antarktis |
| Antigua And Barbuda | Antigua und Barbuda |
| Argentina | Argentinien |
| Armenia | Armenien |
| Aruba | Aruba |
| Australia | Australien |
| Austria | Österreich |
| Azerbaijan | Aserbaidschan |
| Bahrain | Bahrain |
| Bangladesh | Bangladesch |
| Barbados | Barbados |
| Belarus | Belarus |
| Belgium | Belgien |
| Belize | Belize |
| Benin | Benin |
| Bermuda | Bermuda |
| Bhutan | Bhutan |
| Bolivia | Bolivien |
| Bonaire, Sint Eustatius and Saba | Bonaire, Sint Eustatius und Saba |
| Bosnia and Herzegovina | Bosnien und Herzegowina |
| Botswana | Botswana |
| Bouvet Island | Bouvetinsel |
| Brazil | Brasilien |
| British Indian Ocean Territory | Britisches Territorium im Indischen Ozean |
| Brunei | Brunei |
| Bulgaria | Bulgarien |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Kambodscha |
| Cameroon | Kamerun |
| Canada | Kanada |
| Cape Verde | Kap Verde |
| Cayman Islands | Kaimaninseln |
| Central African Republic | Zentralafrikanische Republik |
| Chad | Tschad |
| Chile | Chile |
| China | China |
| Christmas Island | Weihnachtsinsel |
| Cocos (Keeling) Islands | Kokosinseln |
| Colombia | Kolumbien |
| Comoros | Komoren |
| Congo | Kongo |
| Cook Islands | Cookinseln |
| Costa Rica | Costa Rica |
| Croatia | Kroatien |
| Cuba | Kuba |
| Curaçao | Curaçao |
| Cyprus | Zypern |
| Czech Republic | Tschechien |
| Democratic Republic of the Congo | Demokratische Republik Kongo |
| Denmark | Dänemark |
| Djibouti | Dschibuti |
| Dominica | Dominica |
| Dominican Republic | Dominikanische Republik |
| East Timor | Osttimor |
| Ecuador | Ecuador |
| Egypt | Ägypten |
| El Salvador | El Salvador |
| Equatorial Guinea | Äquatorialguinea |
| Eritrea | Eritrea |
| Estonia | Estland |
| Ethiopia | Äthiopien |
| Falkland Islands | Falklandinseln |
| Faroe Islands | Färöer |
| Fiji Islands | Fidschi |
| Finland | Finnland |
| France | Frankreich |
| French Guiana | Französisch-Guayana |
| French Polynesia | Französisch-Polynesien |
| French Southern Territories | Französische Süd- und Antarktisgebiete |
| Gabon | Gabun |
| Gambia The | Gambia |
| Georgia | Georgien |
| Germany | Deutschland |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Griechenland |
| Greenland | Grönland |
| Grenada | Grenada |
| Guadeloupe | Guadeloupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernsey und Alderney |
| Guinea | Guinea |
| Guinea-Bissau | Guinea-Bissau |
| Guyana | Guyana |
| Haiti | Haiti |
| Heard Island and McDonald Islands | Heard und McDonaldinseln |
| Honduras | Honduras |
| Hong Kong | Hongkong |
| Hungary | Ungarn |
| Iceland | Island |
| India | Indien |
| Indonesia | Indonesien |
| Iran | Iran |
| Iraq | Irak |
| Ireland | Irland |
| Israel | Israel |
| Italy | Italien |
| Jamaica | Jamaika |
| Japan | Japan |
| Jersey | Jersey |
| Jordan | Jordanien |
| Kazakhstan | Kasachstan |
| Kenya | Kenia |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Kuwait |
| Kyrgyzstan | Kirgisistan |
| Laos | Laos |
| Latvia | Lettland |
| Lebanon | Libanon |
| Lesotho | Lesotho |
| Liberia | Liberia |
| Libya | Libyen |
| Liechtenstein | Liechtenstein |
| Lithuania | Litauen |
| Luxembourg | Luxemburg |
| Macau | Macau |
| Madagascar | Madagaskar |
| Malawi | Malawi |
| Malaysia | Malaysia |
| Maldives | Malediven |
| Mali | Mali |
| Malta | Malta |
| Man (Isle of) | Isle of Man |
| Marshall Islands | Marshallinseln |
| Martinique | Martinique |
| Mauritania | Mauretanien |
| Mauritius | Mauritius |
| Mayotte | Mayotte |
| Mexico | Mexiko |
| Micronesia | Mikronesien |
| Moldova | Moldawien |
| Monaco | Monaco |
| Mongolia | Mongolei |
| Montenegro | Montenegro |
| Montserrat | Montserrat |
| Morocco | Marokko |
| Mozambique | Mosambik |
| Myanmar | Myanmar |
| Namibia | Namibia |
| Nauru | Nauru |
| Nepal | Nepal |
| Netherlands | Niederlande |
| New Caledonia | Neukaledonien |
| New Zealand | Neuseeland |
| Nicaragua | Nicaragua |
| Niger | Niger |
| Nigeria | Nigeria |
| Niue | Niue |
| Norfolk Island | Norfolkinsel |
| North Korea | Nordkorea |
| North Macedonia | Nordmazedonien |
| Northern Mariana Islands | Nördliche Marianen |
| Norway | Norwegen |
| Oman | Oman |
| Pakistan | Pakistan |
| Palau | Palau |
| Palestinian Territory Occupied | Palästinensische Gebiete |
| Panama | Panama |
| Papua new Guinea | Papua-Neuguinea |
| Paraguay | Paraguay |
| Peru | Peru |
| Philippines | Philippinen |
| Pitcairn Island | Pitcairninseln |
| Poland | Polen |
| Portugal | Portugal |
| Puerto Rico | Puerto Rico |
| Qatar | Katar |
| Reunion | Réunion |
| Romania | Rumänien |
| Russia | Russland |
| Rwanda | Ruanda |
| Saint Helena | St. Helena |
| Saint Kitts And Nevis | St. Kitts und Nevis |
| Saint Lucia | St. Lucia |
| Saint Pierre and Miquelon | Saint-Pierre und Miquelon |
| Saint Vincent And The Grenadines | St. Vincent und die Grenadinen |
| Saint-Barthelemy | Saint-Barthélemy |
| Saint-Martin (French part) | Saint-Martin (französischer Teil) |
| Samoa | Samoa |
| San Marino | San Marino |
| Sao Tome and Principe | São Tomé und Príncipe |
| Saudi Arabia | Saudi-Arabien |
| Senegal | Senegal |
| Serbia | Serbien |
| Seychelles | Seychellen |
| Sierra Leone | Sierra Leone |
| Singapore | Singapur |
| Sint Maarten (Dutch part) | Sint Maarten (niederländischer Teil) |
| Slovakia | Slowakei |
| Slovenia | Slowenien |
| Solomon Islands | Salomonen |
| Somalia | Somalia |
| South Africa | Südafrika |
| South Georgia | Südgeorgien |
| South Korea | Südkorea |
| South Sudan | Südsudan |
| Spain | Spanien |
| Sri Lanka | Sri Lanka |
| Sudan | Sudan |
| Suriname | Suriname |
| Svalbard And Jan Mayen Islands | Spitzbergen und Jan Mayen |
| Swaziland | Eswatini |
| Sweden | Schweden |
| Switzerland | Schweiz |
| Syria | Syrien |
| Taiwan | Taiwan |
| Tajikistan | Tadschikistan |
| Tanzania | Tansania |
| Thailand | Thailand |
| The Bahamas | Bahamas |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinidad und Tobago |
| Tunisia | Tunesien |
| Türkiye | Türkei |
| Turkmenistan | Turkmenistan |
| Turks And Caicos Islands | Turks- und Caicosinseln |
| Tuvalu | Tuvalu |
| Uganda | Uganda |
| Ukraine | Ukraine |
| United Arab Emirates | Vereinigte Arabische Emirate |
| United Kingdom | Vereinigtes Königreich |
| United States | Vereinigte Staaten |
| Uruguay | Uruguay |
| Uzbekistan | Usbekistan |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Vatikanstadt (Heiliger Stuhl) |
| Venezuela | Venezuela |
| Vietnam | Vietnam |
| Virgin Islands (British) | Britische Jungferninseln |
| Virgin Islands (US) | Amerikanische Jungferninseln |
| Wallis And Futuna Islands | Wallis und Futuna |
| Western Sahara | Westsahara |
| Yemen | Jemen |
| Zambia | Sambia |
| Zimbabwe | Simbabwe |
### Section Names
| English | German |
| ------------ | ------------------------- |
| awards | Auszeichnungen |
| basics | Basisinformationen |
| certificates | Zertifikate |
| education | Ausbildung |
| interests | Interessen |
| languages | Sprachen |
| location | Ort |
| profiles | Profile |
| projects | Projekte |
| publications | Veröffentlichungen |
| references | Referenzen |
| skills | Fähigkeiten |
| volunteer | Ehrenamtliche Tätigkeiten |
| work | Berufserfahrung |
### Skill Levels
| English | German |
| ------------ | --------------- |
| Novice | Einsteiger |
| Beginner | Anfänger |
| Intermediate | Fortgeschritten |
| Advanced | Erfahren |
| Expert | Experte |
| Master | Spezialist |
### Terms
| Term | German |
| -------- | --------------- |
| courses | Kurse |
| keywords | Schlüsselwörter |
| score | Punkte |
# Locale
URL: (/en/docs/locale)
Each resume comes with a specific language. The good news is that YAMLResume is
designed to support multiple languages out of the box.
Technically, there are two categories of things to do when supporting multi
languages:
* **[Internationalization](https://phrase.com/blog/posts/internationalization-vs-localization/#what-is-internationalization-i18n)**:
often abbreviated as "i18n" (where the number 18 represents the 18 characters
between "i" and "n"), is basically a set of practices that allow a product
support multi languages, i18n main consists of translating the product into
mutli languages and dynamically switching the language according to the user's
choice
* **[Localization](https://phrase.com/blog/posts/internationalization-vs-localization/#what-is-localization-l10n)**:
often abbreviated as "l10n" (the number 10 represents the characters between
"l" and "n"), it goes beyond mere translation and instead adapts the product
to the cultural specifics of the target language.
In practice, i18n always comes first, l10n comes after.
For all supported languages, we have the following concerns from a design and
implementation perspective:
* **[Linguistics](https://en.wikipedia.org/wiki/Linguistics)**: the theorectical
side of a language, including but not limited to the language's character set,
syntax and grammar, history, etc.
* **Idioms**: common conventions and idioms that are generally followed by a
language.
* **[Typesetting](https://en.wikipedia.org/wiki/Typesetting)**: best typesetting
practices often followed by a language, such as italics, text figures, font
style, kerning, ligature, etc.
* **Translations**: mere translations for a fixed set of terms and
options used by resumes generated by YAMLResume.
## Supported Languages
YAMLResume needs to be told which language the resume is written in, to do
that, you need to set a top-level `locale` key in your resume:
```yml lineNumbers
---
content:
# ...
locale: # [!code highlight]
language: en # [!code highlight]
layouts:
- engine: markdown
# ...
```
You can use `yamlresume languages list` to list all supported languages. At the
time of writing, YAMLResume supports the following languages:
```console
$ yamlresume languages list
| locale.language | Language Name | 1:03:48 PM
| --------------- | ------------------------------- |
| en | English |
| zh-hans | Simplified Chinese |
| zh-hant-hk | Traditional Chinese (Hong Kong) |
| zh-hant-tw | Traditional Chinese (Taiwan) |
| es | Spanish |
| fr | French |
| no | Norwegian |
| nl | Dutch |
| ja | Japanese |
| de | German |
```
Check the following pages for more details about each language:
## Glossaries
We have used the following glossaries throughout this section:
* **Latin script languages**: languages that use
[Latin script](https://en.wikipedia.org/wiki/Latin_script) as the [writing
systems](https://en.wikipedia.org/wiki/Writing_system). Most [germanic
languages](https://en.wikipedia.org/wiki/Germanic_languages), [romance
languages](https://en.wikipedia.org/wiki/Romance_languages) and many other
languages like
[https://en.wikipedia.org/wiki/Indonesian\_language](https://en.wikipedia.org/wiki/Indonesian_language)
use Latin script as the primary writing system.
* **[CJK](https://en.wikipedia.org/wiki/CJK_characters)**: Chinese, Japanese and
Korean languages.
* **[Character Set](https://www.creatopy.com/blog/what-is-a-character-set/)**:
the complete collection of characters, symbols, glyphs, and punctuation marks
available within a specific typeface or font.
* **[Glyph](https://en.wikipedia.org/wiki/Glyph)**: the specific shape, design,
or representation of a character in typography.
* **[Hyphenation](https://en.wikipedia.org/wiki/Syllabification)**, the practice
of breaking words at the end of lines to improve the overall appearance and
readability of text.
* **[Justification](https://en.wikipedia.org/wiki/Typographic_alignment#Justified)**:
the alignment of text within a block so that it is flush with both the left
and right margins, generally achieved by adjusting the spacing between words
and letters, creating a uniform appearance across each line of text.
* **[Kerning](https://en.wikipedia.org/wiki/Kerning)**: the process of adjusting
the spacing between characters in a proportional font, usually to achieve a
visually pleasing result.
* **[Ligature](https://en.wikipedia.org/wiki/Ligature_\(writing\))**: a glyph
that joins two or more letters together in order to enhance the visual appeal
of text and get better readability.
# Japanese
URL: (/en/docs/locale/japanese)
Japanese (日本語) is an East Asian language spoken principally in Japan. It is a
member of the Japonic language family.
## Linguistics
### Character Set
Japanese writing system uses a combination of three scripts: Kanji (adopted
Chinese characters), Hiragana, and Katakana. Latin script (Romaji) is also used
for certain purposes.
### CJK Support
YAMLResume automatically detects Japanese as a CJK language and applies specific
layout adjustments, such as using "Lining" style numbers instead of "OldStyle"
to better match the CJK glyphs.
## Idioms
### Date
Japanese dates are formatted with Year, Month, and Day order, using specific
counters.
| English | Japanese |
| --------- | -------- |
| January | 1月 |
| February | 2月 |
| March | 3月 |
| April | 4月 |
| May | 5月 |
| June | 6月 |
| July | 7月 |
| August | 8月 |
| September | 9月 |
| October | 10月 |
| November | 11月 |
| December | 12月 |
Date ranges use the full-width tilde (U+FF5E) as a separator (e.g., 2016年10月~
2018年1月).
### Location
In the generated resume, Japanese addresses generally follow the order of
Country, Region (Prefecture), City, Address, and finally Postal Code.
Note: While standard Japanese addresses usually start with the Postal Code (〒),
YAMLResume currently appends it at the end for consistency with the generated
structure variables.
## Typesetting
### Punctuations
Japanese uses full-width punctuation marks.
* **Comma**: `、` (Ideographic Comma, U+3001) is used instead of the Latin comma
`,`.
* **Colon**: `:` (Fullwidth Colon, U+FF1A) is used instead of the Latin colon
`:`.
* **Separator**: `、` is also used as a list separator.
## Translations
YAMLResume adopts the following translations for various options and terms used
in Japanese resumes.
### Education Degrees
| English | Japanese |
| ------------- | ----------- |
| Middle School | 中学校 |
| High School | 高等学校 |
| Diploma | 短期大学・高等専門学校 |
| Associate | 準学士 |
| Bachelor | 学士 |
| Master | 修士 |
| Doctor | 博士 |
### Languages
| English | Japanese |
| ----------- | --------- |
| Afrikaans | アフリカーンス語 |
| Albanian | アルバニア語 |
| Amharic | アムハラ語 |
| Arabic | アラビア語 |
| Azerbaijani | アゼルバイジャン語 |
| Belarusian | ベラルーシ語 |
| Bengali | ベンガル語 |
| Bhojpuri | ボージュプリー語 |
| Bulgarian | ブルガリア語 |
| Burmese | ビルマ語 |
| Cantonese | 広東語 |
| Catalan | カタロニア語 |
| Chinese | 中国語 |
| Croatian | クロアチア語 |
| Czech | チェコ語 |
| Danish | デンマーク語 |
| Dutch | オランダ語 |
| English | 英語 |
| Estonian | エストニア語 |
| Farsi | ペルシャ語 |
| Filipino | フィリピン語 |
| Finnish | フィンランド語 |
| French | フランス語 |
| German | ドイツ語 |
| Greek | ギリシャ語 |
| Gujarati | グジャラート語 |
| Hausa | ハウサ語 |
| Hebrew | ヘブライ語 |
| Hindi | ヒンディー語 |
| Hungarian | ハンガリー語 |
| Icelandic | アイスランド語 |
| Igbo | イボ語 |
| Indonesian | インドネシア語 |
| Irish | アイルランド語 |
| Italian | イタリア語 |
| Japanese | 日本語 |
| Javanese | ジャワ語 |
| Kazakh | カザフ語 |
| Khmer | クメール語 |
| Korean | 韓国語 |
| Lahnda | ラーンダー語 |
| Latvian | ラトビア語 |
| Lithuanian | リトアニア語 |
| Malay | マレー語 |
| Mandarin | 標準中国語 |
| Marathi | マラーティー語 |
| Nepali | ネパール語 |
| Norwegian | ノルウェー語 |
| Oromo | オロモ語 |
| Pashto | パシュトー語 |
| Polish | ポーランド語 |
| Portuguese | ポルトガル語 |
| Romanian | ルーマニア語 |
| Russian | ロシア語 |
| Serbian | セルビア語 |
| Shona | ショナ語 |
| Sinhala | シンハラ語 |
| Slovak | スロバキア語 |
| Slovene | スロベニア語 |
| Somali | ソマリ語 |
| Spanish | スペイン語 |
| Sundanese | スンダ語 |
| Swahili | スワヒリ語 |
| Swedish | スウェーデン語 |
| Tagalog | タガログ語 |
| Tamil | タミル語 |
| Telugu | テルグ語 |
| Thai | タイ語 |
| Turkish | トルコ語 |
| Ukrainian | ウクライナ語 |
| Urdu | ウルドゥー語 |
| Uzbek | ウズベク語 |
| Vietnamese | ベトナム語 |
| Yoruba | ヨルバ語 |
| Zulu | ズールー語 |
### Language Fluencies
| English | Japanese |
| -------------------------------- | ------------ |
| Elementary Proficiency | 初級レベル |
| Limited Working Proficiency | 限定的な実務レベル |
| Minimum Professional Proficiency | 実務レベル |
| Full Professional Proficiency | 完全な実務レベル |
| Native or Bilingual Proficiency | ネイティブ・母国語レベル |
### Location (Countries and Regions)
| English | Japanese |
| ------------------------------------ | --------------------- |
| Afghanistan | アフガニスタン |
| Aland Islands | オーランド諸島 |
| Albania | アルバニア |
| Algeria | アルジェリア |
| American Samoa | 米領サモア |
| Andorra | アンドラ |
| Angola | アンゴラ |
| Anguilla | アンギラ |
| Antarctica | 南極 |
| Antigua And Barbuda | アンティグア・バーブーダ |
| Argentina | アルゼンチン |
| Armenia | アルメニア |
| Aruba | アルバ |
| Australia | オーストラリア |
| Austria | オーストリア |
| Azerbaijan | アゼルバイジャン |
| Bahrain | バーレーン |
| Bangladesh | バングラデシュ |
| Barbados | バルバドス |
| Belarus | ベラルーシ |
| Belgium | ベルギー |
| Belize | ベリーズ |
| Benin | ベナン |
| Bermuda | バミューダ |
| Bhutan | ブータン |
| Bolivia | ボリビア |
| Bosnia and Herzegovina | ボスニア・ヘルツェゴビナ |
| Botswana | ボツワナ |
| Bouvet Island | ブーベ島 |
| Brazil | ブラジル |
| British Indian Ocean Territory | 英領インド洋地域 |
| Brunei | ブルネイ |
| Bulgaria | ブルガリア |
| Burkina Faso | ブルキナファソ |
| Burundi | ブルンジ |
| Cambodia | カンボジア |
| Cameroon | カメルーン |
| Canada | カナダ |
| Cape Verde | カーボベルデ |
| Cayman Islands | ケイマン諸島 |
| Central African Republic | 中央アフリカ共和国 |
| Chad | チャド |
| Chile | チリ |
| China | 中国 |
| Christmas Island | クリスマス島 |
| Cocos (Keeling) Islands | ココス諸島 |
| Colombia | コロンビア |
| Comoros | コモロ |
| Congo | コンゴ共和国 |
| Cook Islands | クック諸島 |
| Costa Rica | コスタリカ |
| Croatia | クロアチア |
| Cuba | キューバ |
| Curaçao | キュラソー |
| Cyprus | キプロス |
| Czech Republic | チェコ |
| Democratic Republic of the Congo | コンゴ民主共和国 |
| Denmark | デンマーク |
| Djibouti | ジブチ |
| Dominica | ドミニカ国 |
| Dominican Republic | ドミニカ共和国 |
| East Timor | 東ティモール |
| Ecuador | エクアドル |
| Egypt | エジプト |
| El Salvador | エルサルバドル |
| Equatorial Guinea | 赤道ギニア |
| Eritrea | エリトリア |
| Estonia | エストニア |
| Ethiopia | エチオピア |
| Falkland Islands | フォークランド諸島 |
| Faroe Islands | フェロー諸島 |
| Fiji Islands | フィジー |
| Finland | フィンランド |
| France | フランス |
| French Guiana | 仏領ギアナ |
| French Polynesia | 仏領ポリネシア |
| French Southern Territories | フランス領南方・南極地域 |
| Gabon | ガボン |
| Gambia The | ガンビア |
| Georgia | ジョージア |
| Germany | ドイツ |
| Ghana | ガーナ |
| Gibraltar | ジブラルタル |
| Greece | ギリシャ |
| Greenland | グリーンランド |
| Grenada | グレナダ |
| Guadeloupe | グアドループ |
| Guam | グアム |
| Guatemala | グアテマラ |
| Guernsey and Alderney | ガーンジー |
| Guinea | ギニア |
| Guinea-Bissau | ギニアビサウ |
| Guyana | ガイアナ |
| Haiti | ハイチ |
| Heard Island and McDonald Islands | ハード島とマクドナルド諸島 |
| Honduras | ホンジュラス |
| Hong Kong | 香港 |
| Hungary | ハンガリー |
| Iceland | アイスランド |
| India | インド |
| Indonesia | インドネシア |
| Iran | イラン |
| Iraq | イラク |
| Ireland | アイルランド |
| Israel | イスラエル |
| Italy | イタリア |
| Jamaica | ジャマイカ |
| Japan | 日本 |
| Jersey | ジャージー |
| Jordan | ヨルダン |
| Kazakhstan | カザフスタン |
| Kenya | ケニア |
| Kiribati | キリバス |
| Kosovo | コソボ |
| Kuwait | クウェート |
| Kyrgyzstan | キルギス |
| Laos | ラオス |
| Latvia | ラトビア |
| Lebanon | レバノン |
| Lesotho | レソト |
| Liberia | リベリア |
| Libya | リビア |
| Liechtenstein | リヒテンシュタイン |
| Lithuania | リトアニア |
| Luxembourg | ルクセンブルク |
| Macau | マカオ |
| Madagascar | マダガスカル |
| Malawi | マラウイ |
| Malaysia | マレーシア |
| Maldives | モルディブ |
| Mali | マリ |
| Malta | マルタ |
| Man (Isle of) | マン島 |
| Marshall Islands | マーシャル諸島 |
| Martinique | マルティニーク |
| Mauritania | モーリタニア |
| Mauritius | モーリシャス |
| Mayotte | マヨット |
| Mexico | メキシコ |
| Micronesia | ミクロネシア連邦 |
| Moldova | モルドバ |
| Monaco | モナコ |
| Mongolia | モンゴル |
| Montenegro | モンテネグロ |
| Montserrat | モントセラト |
| Morocco | モロッコ |
| Mozambique | モザンビーク |
| Myanmar | ミャンマー |
| Namibia | ナミビア |
| Nauru | ナウル |
| Nepal | ネパール |
| Netherlands | オランダ |
| New Caledonia | ニューカレドニア |
| New Zealand | ニュージーランド |
| Nicaragua | ニカラグア |
| Niger | ニジェール |
| Nigeria | ナイジェリア |
| Niue | ニウエ |
| Norfolk Island | ノーフォーク島 |
| North Korea | 北朝鮮 |
| North Macedonia | 北マケドニア |
| Northern Mariana Islands | 北マリアナ諸島 |
| Norway | ノルウェー |
| Oman | オマーン |
| Pakistan | パキスタン |
| Palau | パラオ |
| Palestinian Territory Occupied | パレスチナ |
| Panama | パナマ |
| Papua new Guinea | パプアニューギニア |
| Paraguay | パラグアイ |
| Peru | ペルー |
| Philippines | フィリピン |
| Pitcairn Island | ピトケアン諸島 |
| Poland | ポーランド |
| Portugal | ポルトガル |
| Puerto Rico | プエルトリコ |
| Qatar | カタール |
| Reunion | レユニオン |
| Romania | ルーマニア |
| Russia | ロシア |
| Rwanda | ルワンダ |
| Saint Helena | セントヘレナ |
| Saint Kitts And Nevis | セントクリストファー・ネイビス |
| Saint Lucia | セントルシア |
| Saint Pierre and Miquelon | サンピエール島・ミクロン島 |
| Saint Vincent And The Grenadines | セントビンセント・グレナディーン |
| Saint-Barthelemy | サン・バルテルミー |
| Saint-Martin (French part) | サン・マルタン |
| Samoa | サモア |
| San Marino | サンマリノ |
| Sao Tome and Principe | サントメ・プリンシペ |
| Saudi Arabia | サウジアラビア |
| Senegal | セネガル |
| Serbia | セルビア |
| Seychelles | セーシェル |
| Sierra Leone | シエラレオネ |
| Singapore | シンガポール |
| Sint Maarten (Dutch part) | シント・マールテン |
| Slovakia | スロバキア |
| Slovenia | スロベニア |
| Solomon Islands | ソロモン諸島 |
| Somalia | ソマリア |
| South Africa | 南アフリカ |
| South Georgia | サウスジョージア・サウスサンドウィッチ諸島 |
| South Korea | 韓国 |
| South Sudan | 南スーダン |
| Spain | スペイン |
| Sri Lanka | スリランカ |
| Sudan | スーダン |
| Suriname | スリナム |
| Svalbard And Jan Mayen Islands | スヴァールバル諸島およびヤンマイエン島 |
| Swaziland | エスワティニ |
| Sweden | スウェーデン |
| Switzerland | スイス |
| Syria | シリア |
| Taiwan | 台湾 |
| Tajikistan | タジキスタン |
| Tanzania | タンザニア |
| Thailand | タイ |
| The Bahamas | バハマ |
| Togo | トーゴ |
| Tokelau | トケラウ |
| Tonga | トンガ |
| Trinidad And Tobago | トリニダード・トバゴ |
| Tunisia | チュニジア |
| Turkey | トルコ |
| Turkmenistan | トルクメニスタン |
| Turks And Caicos Islands | タークス・カイコス諸島 |
| Tuvalu | ツバル |
| Uganda | ウガンダ |
| Ukraine | ウクライナ |
| United Arab Emirates | アラブ首長国連邦 |
| United Kingdom | イギリス |
| United States Minor Outlying Islands | 合衆国領有小離島 |
| United States | アメリカ合衆国 |
| Uruguay | ウルグアイ |
| Uzbekistan | ウズベキスタン |
| Vanuatu | バヌアツ |
| Vatican City State (Holy See) | バチカン市国 |
| Venezuela | ベネズエラ |
| Vietnam | ベトナム |
| Virgin Islands (British) | 英領ヴァージン諸島 |
| Virgin Islands (US) | 米領ヴァージン諸島 |
| Wallis And Futuna Islands | ウォリス・フツナ |
| Western Sahara | 西サハラ |
| Yemen | イエメン |
| Zambia | ザンビア |
| Zimbabwe | ジンバブエ |
### Section Names
| English | Japanese |
| ------------ | -------- |
| awards | 受賞・表彰 |
| basics | 基本情報 |
| certificates | 資格・免状 |
| education | 学歴 |
| interests | 興味・関心 |
| languages | 言語 |
| location | 住所 |
| profiles | プロフィール |
| projects | プロジェクト |
| publications | 出版・著作 |
| references | 推薦人 |
| skills | スキル |
| volunteer | ボランティア活動 |
| work | 職歴 |
### Skill Levels
| English | Japanese |
| ------------ | -------- |
| Novice | 入門 |
| Beginner | 初級 |
| Intermediate | 中級 |
| Advanced | 上級 |
| Expert | エキスパート |
| Master | マスター |
### Terms
| Term | Japanese |
| -------- | -------- |
| courses | コース |
| keywords | キーワード |
| score | 成績 |
# Norwegian
URL: (/en/docs/locale/norwegian)
English and Norwegian are both [Germanic
languages](https://en.wikipedia.org/wiki/Germanic_languages), with Norwegian
being part of the North Germanic branch. While both languages share some
common foundations, Norwegian has distinct characteristics that require
specific considerations for YAMLResume.
## Linguistics
### Character Set
The character sets of English and Norwegian are similar—both languages
primarily use the [Latin
alphabet](https://en.wikipedia.org/wiki/Latin_alphabet), but Norwegian has
additional letters. Here's a detailed comparison:
| Feature | English Character Set | Norwegian Character Set |
| ---------------------- | --------------------------------- | ---------------------------------------------------------------------------------------- |
| **Alphabet** | 26 letters (`a-z`) | 29 letters (`a-z` plus `æ`, `ø`, `å`) |
| **Diacritics** | None | Three additional vowels (`æ`, `ø`, `å`) that are distinct letters, not diacritical marks |
| **Special Characters** | Limited to basic Latin characters | Includes the three additional Norwegian vowels which are considered separate letters |
The main differences between the English and Norwegian writing systems:
* **Additional letters**: The Norwegian alphabet includes three extra vowels:
`æ`, `ø`, and `å`, which are distinct letters with specific pronunciations.
* **Letter order**: In Norwegian alphabetical order, these letters come at the
end: ...x, y, z, æ, ø, å.
* **Case variations**: Norwegian uses both uppercase and lowercase versions
(`Æ/æ`, `Ø/ø`, `Å/å`).
## Idioms
### Date
Days of the week and months are not capitalized in Norwegian (unlike English).
For example, "Sep 2021" in English is translated as "sept. 2021" in Norwegian,
with a lowercase month and a period after the abbreviation.
YAMLResume only uses months, hence the translation table:
| English | Norwegian |
| --------------- | ----------------- |
| January (Jan) | januar (jan.) |
| February (Feb) | februar (feb.) |
| March (Mar) | mars (mar.) |
| April (Apr) | april (apr.) |
| May (May) | mai (mai) |
| June (Jun) | juni (jun.) |
| July (Jul) | juli (jul.) |
| August (Aug) | august (aug.) |
| September (Sep) | september (sept.) |
| October (Oct) | oktober (okt.) |
| November (Nov) | november (nov.) |
| December (Dec) | desember (des.) |
### Capitalization
Norwegian has more conservative capitalization rules compared to English.
Generally, only proper nouns, the first word of sentences, and the pronoun "I"
("jeg" in Norwegian) are capitalized.
YAMLResume internally adopts a fixed set of options and terms for all resume
templates. For example, languages in YAMLResume resume templates adopt
[LinkedIn's language fluency
options](https://www.linkedin.com/pulse/language-proficiency-linkedin-duaa-ali/):
* Elementary Proficiency
* Limited Working Proficiency
* Minimum Professional Proficiency
* Full Professional Proficiency
* Native or Bilingual Proficiency
These are translated to Norwegian as follows:
* Grunnleggende nivå
* Begrenset arbeidskunnskap
* Minimum profesjonelt nivå
* Fullt profesjonelt nivå
* Morsmål eller tospråklig nivå
Only the first word is capitalized, following Norwegian capitalization conventions.
## Typesetting
### Punctuations
Norwegian has several notable differences in punctuation from English:
* **Quotation marks**: Norwegian typically uses guillemets (`«»`) or straight
quotes (`""`), and punctuation is usually placed outside quotation marks.
* **Decimal separator**: Norwegian uses a comma as a decimal separator
(e.g., 3,14) instead of a period like in English (3.14).
* **Thousand separator**: Norwegian uses a space or period as a thousand
separator (e.g., 1 000 or 1.000) rather than a comma.
* **Date format**: Norwegian dates follow the pattern DD.MM.YYYY or DD/MM/YYYY,
unlike the American MM/DD/YYYY format.
## Translations
YAMLResume adopts the following translations for various options and terms used
in Norwegian resumes.
### Education Degrees
| English | Norwegian |
| ------------- | ------------------ |
| Middle School | Ungdomsskole |
| High School | Videregående skole |
| Diploma | Fagbrev |
| Associate | Associate |
| Bachelor | Bachelor |
| Master | Master |
| Doctor | Doktor |
### Languages
| English | Norwegian |
| ----------- | -------------- |
| Afrikaans | Afrikaans |
| Albanian | Albansk |
| Amharic | Amharisk |
| Arabic | Arabisk |
| Azerbaijani | Aserbajdsjansk |
| Belarusian | Hviterussisk |
| Bengali | Bengali |
| Bhojpuri | Bhojpuri |
| Bulgarian | Bulgarsk |
| Burmese | Burmesisk |
| Cantonese | Kantonesisk |
| Catalan | Katalansk |
| Chinese | Kinesisk |
| Croatian | Kroatisk |
| Czech | Tsjekkisk |
| Danish | Dansk |
| Dutch | Nederlandsk |
| English | Engelsk |
| Estonian | Estisk |
| Farsi | Persisk |
| Filipino | Filippinsk |
| Finnish | Finsk |
| French | Fransk |
| German | Tysk |
| Greek | Gresk |
| Gujarati | Gujarati |
| Hausa | Hausa |
| Hebrew | Hebraisk |
| Hindi | Hindi |
| Hungarian | Ungarsk |
| Icelandic | Islandsk |
| Igbo | Igbo |
| Indonesian | Indonesisk |
| Irish | Irsk |
| Italian | Italiensk |
| Japanese | Japansk |
| Javanese | Javanesisk |
| Kazakh | Kasakhisk |
| Khmer | Khmer |
| Korean | Koreansk |
| Lahnda | Lahnda |
| Latvian | Latvisk |
| Lithuanian | Litauisk |
| Malay | Malaysisk |
| Mandarin | Mandarin |
| Marathi | Marathi |
| Nepali | Nepalsk |
| Norwegian | Norsk |
| Oromo | Oromo |
| Pashto | Pashto |
| Polish | Polsk |
| Portuguese | Portugisisk |
| Romanian | Rumensk |
| Russian | Russisk |
| Serbian | Serbisk |
| Shona | Shona |
| Sinhala | Singalesisk |
| Slovak | Slovakisk |
| Slovene | Slovensk |
| Somali | Somalisk |
| Spanish | Spansk |
| Sundanese | Sundanesisk |
| Swahili | Swahili |
| Swedish | Svensk |
| Tagalog | Tagalog |
| Tamil | Tamil |
| Telugu | Telugu |
| Thai | Thai |
| Turkish | Tyrkisk |
| Ukrainian | Ukrainsk |
| Urdu | Urdu |
| Uzbek | Usbekisk |
| Vietnamese | Vietnamesisk |
| Yoruba | Yoruba |
| Zulu | Zulu |
### Language Fluencies
| English | Norwegian |
| -------------------------------- | ----------------------------- |
| Elementary Proficiency | Grunnleggende nivå |
| Limited Working Proficiency | Begrenset arbeidskunnskap |
| Minimum Professional Proficiency | Minimum profesjonelt nivå |
| Full Professional Proficiency | Fullt profesjonelt nivå |
| Native or Bilingual Proficiency | Morsmål eller tospråklig nivå |
### Location (Countries and Regions)
| English | Norwegian |
| ------------------------------------ | ------------------------------------- |
| Afghanistan | Afghanistan |
| Aland Islands | Åland |
| Albania | Albania |
| Algeria | Algerie |
| American Samoa | Amerikansk Samoa |
| Andorra | Andorra |
| Angola | Angola |
| Anguilla | Anguilla |
| Antarctica | Antarktis |
| Antigua And Barbuda | Antigua og Barbuda |
| Argentina | Argentina |
| Armenia | Armenia |
| Aruba | Aruba |
| Australia | Australia |
| Austria | Østerrike |
| Azerbaijan | Aserbajdsjan |
| Bahrain | Bahrain |
| Bangladesh | Bangladesh |
| Barbados | Barbados |
| Belarus | Belarus |
| Belgium | Belgia |
| Belize | Belize |
| Benin | Benin |
| Bermuda | Bermuda |
| Bhutan | Bhutan |
| Bolivia | Bolivia |
| Bonaire, Sint Eustatius and Saba | Bonaire, Sint Eustatius og Saba |
| Bosnia and Herzegovina | Bosnia-Hercegovina |
| Botswana | Botswana |
| Bouvet Island | Bouvetøya |
| Brazil | Brasil |
| British Indian Ocean Territory | Det britiske territoriet i Indiahavet |
| Brunei | Brunei |
| Bulgaria | Bulgaria |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Kambodsja |
| Cameroon | Kamerun |
| Canada | Canada |
| Cape Verde | Kapp Verde |
| Cayman Islands | Caymanøyene |
| Central African Republic | Den sentralafrikanske republikk |
| Chad | Tsjad |
| Chile | Chile |
| China | Kina |
| Christmas Island | Christmasøya |
| Cocos (Keeling) Islands | Kokosøyene (Keelingøyene) |
| Colombia | Colombia |
| Comoros | Komorene |
| Congo | Kongo |
| Cook Islands | Cookøyene |
| Costa Rica | Costa Rica |
| Cote D'Ivoire (Ivory Coast) | Elfenbenskysten |
| Croatia | Kroatia |
| Cuba | Cuba |
| Curaçao | Curaçao |
| Cyprus | Kypros |
| Czech Republic | Tsjekkia |
| Democratic Republic of the Congo | Den demokratiske republikken Kongo |
| Denmark | Danmark |
| Djibouti | Djibouti |
| Dominica | Dominica |
| Dominican Republic | Den dominikanske republikk |
| East Timor | Øst-Timor |
| Ecuador | Ecuador |
| Egypt | Egypt |
| El Salvador | El Salvador |
| Equatorial Guinea | Ekvatorial-Guinea |
| Eritrea | Eritrea |
| Estonia | Estland |
| Ethiopia | Etiopia |
| Falkland Islands | Falklandsøyene |
| Faroe Islands | Færøyene |
| Fiji Islands | Fijiøyene |
| Finland | Finland |
| France | Frankrike |
| French Guiana | Fransk Guyana |
| French Polynesia | Fransk Polynesia |
| French Southern Territories | Franske sørlige territorier |
| Gabon | Gabon |
| Gambia The | Gambia |
| Georgia | Georgia |
| Germany | Tyskland |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Hellas |
| Greenland | Grønland |
| Grenada | Grenada |
| Guadeloupe | Guadeloupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernsey og Alderney |
| Guinea | Guinea |
| Guinea-Bissau | Guinea-Bissau |
| Guyana | Guyana |
| Haiti | Haiti |
| Heard Island and McDonald Islands | Heard- og McDonaldøyene |
| Honduras | Honduras |
| Hong Kong S.A.R. | Hong Kong S.A.R. |
| Hungary | Ungarn |
| Iceland | Island |
| India | India |
| Indonesia | Indonesia |
| Iran | Iran |
| Iraq | Irak |
| Ireland | Irland |
| Israel | Israel |
| Italy | Italia |
| Jamaica | Jamaica |
| Japan | Japan |
| Jersey | Jersey |
| Jordan | Jordan |
| Kazakhstan | Kasakhstan |
| Kenya | Kenya |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Kuwait |
| Kyrgyzstan | Kirgisistan |
| Laos | Laos |
| Latvia | Latvia |
| Lebanon | Libanon |
| Lesotho | Lesotho |
| Liberia | Liberia |
| Libya | Libya |
| Liechtenstein | Liechtenstein |
| Lithuania | Litauen |
| Luxembourg | Luxembourg |
| Macau S.A.R. | Macau S.A.R. |
| Madagascar | Madagaskar |
| Malawi | Malawi |
| Malaysia | Malaysia |
| Maldives | Maldivene |
| Mali | Mali |
| Malta | Malta |
| Man (Isle of) | Man (Isle of) |
| Marshall Islands | Marshalløyene |
| Martinique | Martinique |
| Mauritania | Mauritania |
| Mauritius | Mauritius |
| Mayotte | Mayotte |
| Mexico | Mexico |
| Micronesia | Mikronesia |
| Moldova | Moldova |
| Monaco | Monaco |
| Mongolia | Mongolia |
| Montenegro | Montenegro |
| Montserrat | Montserrat |
| Morocco | Marokko |
| Mozambique | Mosambik |
| Myanmar | Myanmar |
| Namibia | Namibia |
| Nauru | Nauru |
| Nepal | Nepal |
| Netherlands | Nederland |
| New Caledonia | Ny-Caledonia |
| New Zealand | New Zealand |
| Nicaragua | Nicaragua |
| Niger | Niger |
| Nigeria | Nigeria |
| Niue | Niue |
| Norfolk Island | Norfolkøya |
| North Korea | Nord-Korea |
| North Macedonia | Nord-Makedonia |
| Northern Mariana Islands | Nord-Marianene |
| Norway | Norge |
| Oman | Oman |
| Pakistan | Pakistan |
| Palau | Palau |
| Palestinian Territory Occupied | Palestinsk okkupert område |
| Panama | Panama |
| Papua new Guinea | Papua Ny-Guinea |
| Paraguay | Paraguay |
| Peru | Peru |
| Philippines | Filippinene |
| Pitcairn Island | Pitcairnøyene |
| Poland | Polen |
| Portugal | Portugal |
| Puerto Rico | Puerto Rico |
| Qatar | Qatar |
| Reunion | Réunion |
| Romania | Romania |
| Russia | Russland |
| Rwanda | Rwanda |
| Saint Helena | Sankt Helena |
| Saint Kitts And Nevis | Saint Kitts og Nevis |
| Saint Lucia | Saint Lucia |
| Saint Pierre and Miquelon | Saint-Pierre og Miquelon |
| Saint Vincent And The Grenadines | Saint Vincent og Grenadinene |
| Saint-Barthelemy | Saint-Barthélemy |
| Saint-Martin (French part) | Saint-Martin (fransk del) |
| Samoa | Samoa |
| San Marino | San Marino |
| Sao Tome and Principe | São Tomé og Príncipe |
| Saudi Arabia | Saudi-Arabia |
| Senegal | Senegal |
| Serbia | Serbia |
| Seychelles | Seychellene |
| Sierra Leone | Sierra Leone |
| Singapore | Singapore |
| Sint Maarten (Dutch part) | Sint Maarten (nederlandsk del) |
| Slovakia | Slovakia |
| Slovenia | Slovenia |
| Solomon Islands | Salomonøyene |
| Somalia | Somalia |
| South Africa | Sør-Afrika |
| South Georgia | Sør-Georgia |
| South Korea | Sør-Korea |
| South Sudan | Sør-Sudan |
| Spain | Spania |
| Sri Lanka | Sri Lanka |
| Sudan | Sudan |
| Suriname | Surinam |
| Svalbard And Jan Mayen Islands | Svalbard og Jan Mayen |
| Swaziland | Swaziland |
| Sweden | Sverige |
| Switzerland | Sveits |
| Syria | Syria |
| Taiwan | Taiwan |
| Tajikistan | Tadsjikistan |
| Tanzania | Tanzania |
| Thailand | Thailand |
| The Bahamas | Bahamas |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinidad og Tobago |
| Tunisia | Tunisia |
| Türkiye | Tyrkia |
| Turkmenistan | Turkmenistan |
| Turks And Caicos Islands | Turks- og Caicosøyene |
| Tuvalu | Tuvalu |
| Uganda | Uganda |
| Ukraine | Ukraina |
| United Arab Emirates | De forente arabiske emirater |
| United Kingdom | Storbritannia |
| United States | USA |
| United States Minor Outlying Islands | USAs ytre småøyer |
| Uruguay | Uruguay |
| Uzbekistan | Usbekistan |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Vatikanstaten (Den hellige stol) |
| Venezuela | Venezuela |
| Vietnam | Vietnam |
| Virgin Islands (British) | Jomfruøyene (britiske) |
| Virgin Islands (US) | Jomfruøyene (USA) |
| Wallis And Futuna Islands | Wallis- og Futunaøyene |
| Western Sahara | Vest-Sahara |
| Yemen | Jemen |
| Zambia | Zambia |
| Zimbabwe | Zimbabwe |
### Section Names
| English | Norwegian |
| ------------ | ------------------------- |
| Awards | Utmerkelser |
| Basics | Grunnleggende informasjon |
| Certificates | Sertifikater |
| Education | Utdanning |
| Interests | Interesser |
| Languages | Språk |
| Projects | Prosjekter |
| Publications | Publikasjoner |
| References | Referanser |
| Skills | Ferdigheter |
| Volunteer | Frivillig arbeid |
| Work | Arbeidserfaring |
### Skill Levels
| English | Norwegian |
| ------------ | ------------ |
| Novice | Nybegynner |
| Beginner | Begynner |
| Intermediate | Viderekommen |
| Advanced | Avansert |
| Expert | Ekspert |
| Master | Mester |
### Options and Terms
| English | Norwegian |
| -------- | --------- |
| Courses | Kurs |
| Keywords | Nøkkelord |
| Score | Poeng |
# Spanish
URL: (/en/docs/locale/spanish)
English and Spanish are both [Indo-European
languages](https://en.wikipedia.org/wiki/Indo-European_languages), it is no
wonder that English and Spanish share some similarities, so most of the common
foundations of YAMLResume can be reused for English and Spanish.
## Linguistics
### Character Set
The character sets of English and Spanish are very similar—both languages
primarily use the [Latin
alphabet](https://en.wikipedia.org/wiki/Latin_alphabet), which consists of 26
letters. However, Spanish has an additional letter, the `ñ`, which
represents a unique sound. Here's a quick comparison:
| Feature | English Character Set | Spanish Character Set |
| ---------------------- | --------------------------------- | ----------------------------------------------------------------------------------------------- |
| **Alphabet** | 26 letters (`a-z`) | 27 letters (`a-z` plus `ñ`) |
| **Diacritics** | None | Includes accents (`á`, `é`, `í`, `ó`, `ú`), diaeresis (`ü`), and special punctuation (`¿`, `¡`) |
| **Special Characters** | Limited to basic Latin characters | Includes additional characters like `ñ` and accented vowels |
The main differences between the English and Spanish's writing systems:
* **Additional letter**: the Spanish alphabet includes the letter `ñ`, which
does not exist in the English alphabet.
* **[Diacritics](https://en.wikipedia.org/wiki/Diacritic)**: Spanish uses
several diacritics that change he pronunciation of vowels. For example,
accents indicate stress and pronunciation changes (e.g., `é` vs. `e`).
* **Punctuation marks**: Spanish uses inverted punctuation marks (`¿` for
questions and `¡` for exclamations) that are absent in English.
## Idioms
### Date
Days of the week and months are capitalised in English, but not in Spanish. For
example, "Sep 2021" in English is translated as "sept 2021" in Spanish.
YAMLResume only uses months, hence the translation table:
| English | Spanish |
| --------------- | ----------------- |
| January (Jan) | enero (ene) |
| February (Feb) | febrero (feb) |
| March (Mar) | marzo (mar) |
| April (Apr) | abril (abr) |
| May (May) | mayo (may) |
| June (Jun) | junio (jun) |
| July (Jul) | julio (jul) |
| August (Aug) | agosto (ago) |
| September (Sep) | septiembre (sept) |
| October (Oct) | octubre (oct) |
| November (Nov) | noviembre (nov) |
| December (Dec) | diciembre (dic) |
### Capitalization
English tends to capitalize many words, while Spanish is more conservative and
follows a much [tigher set of
rules](https://baselang.com/blog/basic-grammar/capitalization-in-spanish/).
YAMLResume internally adopts a fixed set of options and terms for all resume
templates. For example, languages in YAMLResume resume templates adopt
[Linkedin's language fluency
options](https://www.linkedin.com/pulse/language-proficiency-linkedin-duaa-ali/):
* Elementary Proficiency
* Limited Working Proficiency
* Minimum Professional Proficiency
* Full Professional Proficiency
* Native or Bilingual Proficiency
These are translated to Spanish as follows:
* Competencia elemental
* Competencia limitada de trabajo
* Competencia profesional de trabajo
* Competencia profesional plena
* Competencia nativa o bilingüe
Only the first word is capitalized.
## Typesetting
### Punctuations
Spanish has several notable differences in punctuations from English:
* **Quotation marks**: In English, periods and commas are placed inside
quotation marks, whereas in Spanish, they are usually placed outside.
* **Inverted marks**: Spanish uses inverted question marks `¿` and
exclamation marks `¡` at both the beginning and the end of interrogative and
exclamatory sentences, whereas English does not.
* **Serial comma**: English often uses a serial comma before "and" in lists
(e.g., "apples, oranges, and bananas"), whereas Spanish does not use a comma
before "y" (e.g., "manzanas, naranjas y plátanos")
* **Numerical formats**: English uses a period is used as a decimal separator
(e.g., 3.14), whereas Spanish uses a comma is used (e.g., 3,14).
## Translations
YAMLResume adopts the following translations for various options and terms used
in Spanish resumes
### Education Degrees
| English | Spanish |
| ------------- | -------------------- |
| Middle School | Escuela secundaria |
| High School | Título de secundaria |
| Diploma | Diploma |
| Associate | Grado de asociado |
| Bachelor | Licenciatura |
| Master | Maestría |
| Doctor | Doctorado |
### Languages
| English | Spanish |
| ----------- | ----------- |
| Afrikaans | Afrikáans |
| Albanian | Albanés |
| Amharic | Amárico |
| Arabic | Árabe |
| Azerbaijani | Azerbaiyano |
| Belarusian | Bielorruso |
| Bengali | Bengalí |
| Bhojpuri | Bhojpuri |
| Bulgarian | Búlgaro |
| Burmese | Birmano |
| Cantonese | Cantonés |
| Catalan | Catalán |
| Chinese | Chino |
| Croatian | Croata |
| Czech | Checo |
| Danish | Danés |
| Dutch | Neerlandés |
| English | Inglés |
| Estonian | Estonio |
| Farsi | Persa |
| Filipino | Filipino |
| Finnish | Finés |
| French | Francés |
| German | Alemán |
| Greek | Griego |
| Gujarati | Gujarati |
| Hausa | Hausa |
| Hebrew | Hebreo |
| Hindi | Hindi |
| Hungarian | Húngaro |
| Icelandic | Islandés |
| Igbo | Igbo |
| Indonesian | Indonesio |
| Irish | Irlandés |
| Italian | Italiano |
| Japanese | Japonés |
| Javanese | Javanés |
| Kazakh | Kazajo |
| Khmer | Jemer |
| Korean | Coreano |
| Lahnda | Lahnda |
| Latvian | Letón |
| Lithuanian | Lituano |
| Malay | Malayo |
| Mandarin | Mandarín |
| Marathi | Marathi |
| Nepali | Nepalí |
| Norwegian | Noruego |
| Oromo | Oromo |
| Pashto | Pastún |
| Polish | Polaco |
| Portuguese | Portugués |
| Romanian | Rumano |
| Russian | Ruso |
| Serbian | Serbio |
| Shona | Shona |
| Sinhala | Cingalés |
| Slovak | Eslovaco |
| Slovene | Esloveno |
| Somali | Somalí |
| Spanish | Español |
| Sundanese | Sundanés |
| Swahili | Suajili |
| Swedish | Sueco |
| Tagalog | Tagalo |
| Tamil | Tamil |
| Telugu | Telugu |
| Thai | Tailandés |
| Turkish | Turco |
| Ukrainian | Ucraniano |
| Urdu | Urdu |
| Uzbek | Uzbeko |
| Vietnamese | Vietnamita |
| Yoruba | Yoruba |
| Zulu | Zulú |
### Language Fluencies
| English | Spanish |
| -------------------------------- | ---------------------------------- |
| Elementary Proficiency | Competencia elemental |
| Limited Working Proficiency | Competencia limitada de trabajo |
| Minimum Professional Proficiency | Competencia profesional de trabajo |
| Full Professional Proficiency | Competencia profesional plena |
| Native or Bilingual Proficiency | Competencia nativa o bilingüe |
### Location (Countries and Regions)
| English | Spanish |
| ------------------------------------ | -------------------------------------------- |
| Afghanistan | Afganistán |
| Aland Islands | Islas Åland |
| Albania | Albania |
| Algeria | Argelia |
| American Samoa | Samoa Americana |
| Andorra | Andorra |
| Angola | Angola |
| Anguilla | Anguila |
| Antarctica | Antártida |
| Antigua And Barbuda | Antigua y Barbuda |
| Argentina | Argentina |
| Armenia | Armenia |
| Aruba | Aruba |
| Australia | Australia |
| Austria | Austria |
| Azerbaijan | Azerbaiyán |
| Bahrain | Baréin |
| Bangladesh | Bangladés |
| Barbados | Barbados |
| Belarus | Bielorrusia |
| Belgium | Bélgica |
| Belize | Belice |
| Benin | Benín |
| Bermuda | Bermudas |
| Bhutan | Bután |
| Bolivia | Bolivia |
| Bonaire, Sint Eustatius and Saba | Bonaire, San Eustaquio y Saba |
| Bosnia and Herzegovina | Bosnia y Herzegovina |
| Botswana | Botsuana |
| Bouvet Island | Isla Bouvet |
| Brazil | Brasil |
| British Indian Ocean Territory | Territorio Británico del Océano Índico |
| Brunei | Brunéi |
| Bulgaria | Bulgaria |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Camboya |
| Cameroon | Camerún |
| Canada | Canadá |
| Cape Verde | Cabo Verde |
| Cayman Islands | Islas Caimán |
| Central African Republic | República Centroafricana |
| Chad | Chad |
| Chile | Chile |
| China | China |
| Christmas Island | Isla de Navidad |
| Cocos (Keeling) Islands | Islas Cocos |
| Colombia | Colombia |
| Comoros | Comoras |
| Congo | Congo |
| Cook Islands | Islas Cook |
| Costa Rica | Costa Rica |
| Cote D'Ivoire (Ivory Coast) | Costa de Marfil |
| Croatia | Croacia |
| Cuba | Cuba |
| Curaçao | Curazao |
| Cyprus | Chipre |
| Czech Republic | República Checa |
| Democratic Republic of the Congo | República Democrática del Congo |
| Denmark | Dinamarca |
| Djibouti | Yibuti |
| Dominica | Dominica |
| Dominican Republic | República Dominicana |
| East Timor | Timor Oriental |
| Ecuador | Ecuador |
| Egypt | Egipto |
| El Salvador | El Salvador |
| Equatorial Guinea | Guinea Ecuatorial |
| Eritrea | Eritrea |
| Estonia | Estonia |
| Ethiopia | Etiopía |
| Falkland Islands | Islas Malvinas |
| Faroe Islands | Islas Feroe |
| Fiji Islands | Fiyi |
| Finland | Finlandia |
| France | Francia |
| French Guiana | Guayana Francesa |
| French Polynesia | Polinesia Francesa |
| French Southern Territories | Tierras Australes y Antárticas Francesas |
| Gabon | Gabón |
| Gambia The | Gambia |
| Georgia | Georgia |
| Germany | Alemania |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Grecia |
| Greenland | Groenlandia |
| Grenada | Granada |
| Guadeloupe | Guadalupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernsey y Alderney |
| Guinea | Guinea |
| Guinea-Bissau | Guinea-Bisáu |
| Guyana | Guyana |
| Haiti | Haití |
| Heard Island and McDonald Islands | Islas Heard y McDonald |
| Honduras | Honduras |
| Hong Kong S.A.R. | Hong Kong |
| Hungary | Hungría |
| Iceland | Islandia |
| India | India |
| Indonesia | Indonesia |
| Iran | Irán |
| Iraq | Irak |
| Ireland | Irlanda |
| Israel | Israel |
| Italy | Italia |
| Jamaica | Jamaica |
| Japan | Japón |
| Jersey | Jersey |
| Jordan | Jordania |
| Kazakhstan | Kazajistán |
| Kenya | Kenia |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Kuwait |
| Kyrgyzstan | Kirguistán |
| Laos | Laos |
| Latvia | Letonia |
| Lebanon | Líbano |
| Lesotho | Lesoto |
| Liberia | Liberia |
| Libya | Libia |
| Liechtenstein | Liechtenstein |
| Lithuania | Lituania |
| Luxembourg | Luxemburgo |
| Macau S.A.R. | Macao |
| Madagascar | Madagascar |
| Malawi | Malaui |
| Malaysia | Malasia |
| Maldives | Maldivas |
| Mali | Malí |
| Malta | Malta |
| Man (Isle of) | Isla de Man |
| Marshall Islands | Islas Marshall |
| Martinique | Martinica |
| Mauritania | Mauritania |
| Mauritius | Mauricio |
| Mayotte | Mayotte |
| Mexico | México |
| Micronesia | Micronesia |
| Moldova | Moldavia |
| Monaco | Mónaco |
| Mongolia | Mongolia |
| Montenegro | Montenegro |
| Montserrat | Montserrat |
| Morocco | Marruecos |
| Mozambique | Mozambique |
| Myanmar | Myanmar |
| Namibia | Namibia |
| Nauru | Nauru |
| Nepal | Nepal |
| Netherlands | Países Bajos |
| New Caledonia | Nueva Caledonia |
| New Zealand | Nueva Zelanda |
| Nicaragua | Nicaragua |
| Niger | Níger |
| Nigeria | Nigeria |
| Niue | Niue |
| Norfolk Island | Isla Norfolk |
| North Korea | Corea del Norte |
| North Macedonia | Macedonia del Norte |
| Northern Mariana Islands | Islas Marianas del Norte |
| Norway | Noruega |
| Oman | Omán |
| Pakistan | Pakistán |
| Palau | Palaos |
| Palestinian Territory Occupied | Territorio Palestino Ocupado |
| Panama | Panamá |
| Papua new Guinea | Papúa Nueva Guinea |
| Paraguay | Paraguay |
| Peru | Perú |
| Philippines | Filipinas |
| Pitcairn Island | Islas Pitcairn |
| Poland | Polonia |
| Portugal | Portugal |
| Puerto Rico | Puerto Rico |
| Qatar | Catar |
| Reunion | Reunión |
| Romania | Rumania |
| Russia | Rusia |
| Rwanda | Ruanda |
| Saint Helena | Santa Elena |
| Saint Kitts And Nevis | San Cristóbal y Nieves |
| Saint Lucia | Santa Lucía |
| Saint Pierre and Miquelon | San Pedro y Miquelón |
| Saint Vincent And The Grenadines | San Vicente y las Granadinas |
| Saint-Barthelemy | San Bartolomé |
| Saint-Martin (French part) | San Martín (parte francesa) |
| Samoa | Samoa |
| San Marino | San Marino |
| Sao Tome and Principe | Santo Tomé y Príncipe |
| Saudi Arabia | Arabia Saudita |
| Senegal | Senegal |
| Serbia | Serbia |
| Seychelles | Seychelles |
| Sierra Leone | Sierra Leona |
| Singapore | Singapur |
| Sint Maarten (Dutch part) | San Martín (parte neerlandesa) |
| Slovakia | Eslovaquia |
| Slovenia | Eslovenia |
| Solomon Islands | Islas Salomón |
| Somalia | Somalia |
| South Africa | Sudáfrica |
| South Georgia | Georgia del Sur |
| South Korea | Corea del Sur |
| South Sudan | Sudán del Sur |
| Spain | España |
| Sri Lanka | Sri Lanka |
| Sudan | Sudán |
| Suriname | Surinam |
| Svalbard And Jan Mayen Islands | Svalbard y Jan Mayen |
| Swaziland | Suazilandia |
| Sweden | Suecia |
| Switzerland | Suiza |
| Syria | Siria |
| Taiwan | Taiwán |
| Tajikistan | Tayikistán |
| Tanzania | Tanzania |
| Thailand | Tailandia |
| The Bahamas | Bahamas |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinidad y Tobago |
| Tunisia | Túnez |
| Türkiye | Turquía |
| Turkmenistan | Turkmenistán |
| Turks And Caicos Islands | Islas Turcas y Caicos |
| Tuvalu | Tuvalu |
| Uganda | Uganda |
| Ukraine | Ucrania |
| United Arab Emirates | Emiratos Árabes Unidos |
| United Kingdom | Reino Unido |
| United States | Estados Unidos |
| United States Minor Outlying Islands | Islas Ultramarinas Menores de Estados Unidos |
| Uruguay | Uruguay |
| Uzbekistan | Uzbekistán |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Ciudad del Vaticano |
| Venezuela | Venezuela |
| Vietnam | Vietnam |
| Virgin Islands (British) | Islas Vírgenes Británicas |
| Virgin Islands (US) | Islas Vírgenes de los Estados Unidos |
| Wallis And Futuna Islands | Wallis y Futuna |
| Western Sahara | Sahara Occidental |
| Yemen | Yemen |
| Zambia | Zambia |
| Zimbabwe | Zimbabue |
### Section Names
| English | Spanish |
| ------------ | ------------------- |
| Awards | Premios |
| Basics | Información básica |
| Certificates | Certificados |
| Education | Educación |
| Interests | Intereses |
| Languages | Idiomas |
| Location | Ubicación |
| Profiles | Perfiles |
| Projects | Proyectos |
| Publications | Publicaciones |
| References | Referencias |
| Skills | Competencias |
| Volunteer | Voluntariado |
| Work | Experiencia laboral |
### Skill Levels
| English | Spanish |
| ------------ | ------------ |
| Novice | Novato |
| Beginner | Principiante |
| Intermediate | Intermedio |
| Advanced | Avanzado |
| Expert | Experto |
| Master | Maestro |
### Options and Terms
| English | Spanish |
| -------- | -------------- |
| Courses | Cursos |
| Keywords | Palabras clave |
| Score | Puntuación |
# Schema
URL: (/en/docs/compiler/schema)
## Overview
Drafting resumes is a long, boring, and tedious process. People often need to
spend hours nitpicking details, but errors still occur. For example, there may
be a typo in education degrees, an email format may be wrong, a course name may
be too short, etc.
Along with the [static types definitions](/docs/compiler/types), YAMLResume
provides a built-in schema which can be used for runtime validations. This is
the core that makes YAMLResume a **resume compiler**—YAMLResume provides
**clang-style warning/error messages** that help catch potential errors at the
early stage of resume drafting.
For example, for the following resume:
```yml lineNumbers title="invalid-resume.yml"
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
---
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@pp # [!code highlight]
url: https//ppresume.com/gallery # [!code highlight]
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
region: California
city: S # [!code highlight]
country: United States
postalCode: "95814"
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
startDate: Sep 1, 2016
endDate:
courses:
- D # [!code highlight]
- Programming Language Concepts
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
layouts:
- engine: latex
typography:
fontSize: 13pt # [!code highlight]
```
`yamlresume validate` will give you a list of potential errors, with clear
positional information that helps pinpoint the exact location of the error,
meanwhile, with the help of
[yaml-language-server](https://github.com/redhat-developer/yaml-language-server),
you can get a better editing experience with
[auto-completion](/docs/compiler/schema/json#auto-completion), [on-hover property
docs](/docs/compiler/schema/json#property-docs), [format
validation](/docs/compiler/schema/json#format-validation), and more.
Under the hood, YAMLResume adopts [Zod](https://zod.dev) to validate resume data
in runtime. Zod is a TypeScript-first schema validation library that allows you
to define schemas for your resume data, which acts as a robust safety net,
ensuring that the resume data is reliable, consistent, and ready to be rendered
into a professional PDF.
Schema validation is a very powerful tool to ensure the correctness of resume
data. It can catch errors throughout the entire life cycle of resume drafting,
which is very helpful to avoid low-level mistakes from the start.
## Learn More
# JSON Schema
URL: (/en/docs/compiler/schema/json)
## Overview
YAMLResume provides an official [JSON Schema](https://json-schema.org) for
validating resume data.
The latest official JSON Schema is hosted at:
[https://yamlresume.com/schema.json](https://yamlresume.com/schema.json).
However, if you want a cut-down version for your IDE/editor, you can also use
the canary version
[schema.json](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/schema/schema.json)
from our GitHub repo.
Meanwhile, as YAMLResume evolves, the official JSON Schema will be updated
constantly, hence we also provide all archived version of the JSON Schema at:
`https://yamlresume.com/schemas//schema.json`.
For now we have archived versions for:
* [v0.11.0](/schemas/v0.11.0/schema.json)
* [v0.10.1](/schemas/v0.10.1/schema.json)
* [v0.10.0](/schemas/v0.10.0/schema.json)
* [v0.9.1](/schemas/v0.9.1/schema.json)
* [v0.8.0](/schemas/v0.8.0/schema.json)
* [v0.7.5](/schemas/v0.7.5/schema.json)
* [v0.7.0](/schemas/v0.7.0/schema.json)
* [v0.6.0](/schemas/v0.6.0/schema.json)
* [v0.5.1](/schemas/v0.5.1/schema.json)
## What is JSON Schema?
[JSON Schema](https://json-schema.org) is a JSON-based format for defining the
structure of JSON data. It is a powerful tool for validating and documenting
JSON data.
JSON Schema allows you to specify the expected structure, types, and constraints
of your JSON data. With JSON Schema, you can define which properties are
required, what types of values are allowed (such as strings, numbers, arrays, or
objects), and even set rules for value formats (like email addresses or URLs).
By using JSON Schema, developers and tools can automatically validate JSON data
to ensure it matches the expected format before processing. This helps catch
errors early, improves data quality, and enables features like auto-completion
and inline documentation in modern code editors.
JSON Schema is widely supported and can be used for configuration files, API
payloads, and, in the case of YAMLResume, for validating resume data to ensure
consistency and correctness.
## Benefits
Integrating YAMLResume's JSON Schema into your IDE/editor when crafting resumes
brings several benefits:
* **Auto Completion:** When you start typing, your IDE/editor will suggest
properties and their expected types, helping you draft your resume faster and
with fewer errors.
* **Format Validation:** Your IDE/editor will highlight any formatting errors
(like invalid dates or URLs) as you type, preventing you from submitting
incorrect information.
* **Property Docs:** Get inline documentation for each property,
explaining its purpose, allowed values, and any special formatting
requirements.
### Auto Completion
All [enum types](/docs/compiler/types#enum-types) will be
auto completed when typing. You can just type the first few letters of the option
and the IDE/editor will suggest a list of valid options, then you can just use
up/down arrow keys to select the correct one.
### Format Validation
Each key value pair will be validated in real time against the predefined
schema. You IDE/editor will warn you with precise error message to help avoid
low-level mistakes like wrong email format, invalid degree options, typos in
language fluency levels, etc.
And if a required key is missing, the warning message will be escalated to its parent
object by default, so you can easily find the missing key.
### Property Docs
Last but not least, you can get inline documentation for each property,
explaining its purpose, allowed values, and any special formatting requirements.
You can hover over the either the property key or the value to see the docs.
## How to use JSON Schema?
You need to install
[yaml-language-server](https://github.com/redhat-developer/yaml-language-server)
to use YAMLResume's JSON schema for your resumes. Depending on your
IDE/editor, you may need to install different
[extensions](https://github.com/redhat-developer/yaml-language-server?tab=readme-ov-file#clients).
Once installed, you need to add the following line at the top of your resume
file:
```
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
```
Then you can enjoy the [auto-completion](#auto-completion), [format
validation](#format-validation), and [property docs](#property-docs) features all
at your fingertips.
## Engineering
Under the hood, YAMLResume's JSON schema is generated with the help of [Zod
v4](https://zod.dev/json-schema), which is a awesome TypeScript-first schema
validation library.
We define the schema in
[schema/resume.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/schema/resume.ts),
and then generate the JSON schema in a [test
case](https://github.com/yamlresume/yamlresume/blob/99de/packages/core/src/schema/resume.test.ts#L272-L277).
Isn't this cool?
# Zod Schema
URL: (/en/docs/compiler/schema/zod)
YAMLResume adopts [zod](https://zod.dev) to validate resume data in runtime.
This document outlines all zod schema used in YAMLResume. If you are interested
in the implementation details, you can find the source code
[here](https://github.com/yamlresume/yamlresume/tree/main/packages/core/src/schema).
## Resume Schema
Defines the overall resume structure validation, including content and layout validation.
| Prop | Type | Required |
| ---------- | --------------------------------- | -------- |
| `content` | [`ContentSchema`](#contentschema) | ✅ |
| `layouts?` | [`LayoutsSchema`](#layoutsschema) | ⬜ |
| `locale?` | [`LocaleSchema`](#localeschema) | ⬜ |
### ContentSchema
Defines the validation structure for the entire resume content.
| Prop | Type | Required |
| --------------- | --------------------------------------------------- | -------- |
| `basics` | [`BasicsItemSchema`](#basicsitemschema) | ✅ |
| `education` | [`EducationItemSchema[]`](#educationitemschema) | ✅ |
| `awards?` | [`AwardItemSchema[]`](#awarditemschema) | ⬜ |
| `certificates?` | [`CertificateItemSchema[]`](#certificateitemschema) | ⬜ |
| `interests?` | [`InterestItemSchema[]`](#interestitemschema) | ⬜ |
| `languages?` | [`LanguageItemSchema[]`](#languageitemschema) | ⬜ |
| `location?` | [`LocationItemSchema`](#locationitemschema) | ⬜ |
| `projects?` | [`ProjectItemSchema[]`](#projectitemschema) | ⬜ |
| `profiles?` | [`ProfileItemSchema[]`](#profileitemschema) | ⬜ |
| `publications?` | [`PublicationItemSchema[]`](#publicationitemschema) | ⬜ |
| `references?` | [`ReferenceItemSchema[]`](#referenceitemschema) | ⬜ |
| `skills?` | [`SkillItemSchema[]`](#skillitemschema) | ⬜ |
| `volunteer?` | [`VolunteerItemSchema[]`](#volunteeritemschema) | ⬜ |
| `work?` | [`WorkItemSchema[]`](#workitemschema) | ⬜ |
#### AwardItemSchema
Validates a single award, honor, or recognition received.
| Prop | Type | Required | Validation Rules |
| ---------- | -------- | -------- | ------------------------------------- |
| `awarder` | `string` | ✅ | 2-128 characters |
| `title` | `string` | ✅ | 2-128 characters |
| `date?` | `string` | ⬜ | see [date schema](#date-schema) |
| `summary?` | `string` | ⬜ | see [summary schema](#summary-schema) |
#### BasicsItemSchema
Validates the core personal and contact information.
| Prop | Type | Required | Validation Rules |
| ----------- | -------- | -------- | ------------------------------------- |
| `name` | `string` | ✅ | 2-128 characters |
| `email?` | `string` | ⬜ | see [email schema](#email-schema) |
| `headline?` | `string` | ⬜ | 2-128 characters |
| `phone?` | `string` | ⬜ | see [phone schema](#phone-schema) |
| `summary?` | `string` | ⬜ | see [summary schema](#summary-schema) |
| `url?` | `string` | ⬜ | see [url schema](#url-schema) |
#### CertificateItemSchema
Validates a single certification, credential, or professional qualification.
| Prop | Type | Required | Validation Rules |
| -------- | -------- | -------- | ------------------------------- |
| `issuer` | `string` | ✅ | 2-128 characters |
| `name` | `string` | ✅ | 2-128 characters |
| `date?` | `string` | ⬜ | see [date schema](#date-schema) |
| `url?` | `string` | ⬜ | see [url schema](#url-schema) |
#### EducationItemSchema
Validates a single educational experience or degree program.
| Prop | Type | Required | Validation Rules |
| ------------- | ------------------- | -------- | ------------------------------------------------- |
| `area` | `string` | ✅ | 2-64 characters |
| `degree` | [`Degree`](#degree) | ✅ | Must be from predefined [degree options](#degree) |
| `institution` | `string` | ✅ | 2-128 characters |
| `startDate` | `string` | ✅ | see [date schema](#date-schema) |
| `courses?` | `string[]` | ⬜ | Each item 2-128 characters |
| `endDate?` | `string` | ⬜ | see [date schema](#date-schema) |
| `summary?` | `string` | ⬜ | see [summary schema](#summary-schema) |
| `score?` | `string` | ⬜ | 2-32 characters |
| `url?` | `string` | ⬜ | see [url schema](#url-schema) |
#### InterestItemSchema
Validates a single interest, hobby, or personal activity.
| Prop | Type | Required | Validation Rules |
| ----------- | ---------- | -------- | --------------------------------------- |
| `name` | `string` | ✅ | 2-128 characters |
| `keywords?` | `string[]` | ⬜ | see [keywords schema](#keywords-schema) |
#### LanguageItemSchema
Validates a single language proficiency item.
| Prop | Type | Required | Validation Rules |
| ----------- | ----------------------- | -------- | ----------------------------------------------------- |
| `fluency` | [`Fluency`](#fluency) | ✅ | Must be from predefined [fluency options](#fluency) |
| `language` | [`Language`](#language) | ✅ | Must be from predefined [language options](#language) |
| `keywords?` | `string[]` | ⬜ | Each item 1-32 characters |
#### LocationItemSchema
Validates location and address information.
| Prop | Type | Required | Validation Rules |
| ------------- | --------------------- | -------- | --------------------------------------------------- |
| `city` | `string` | ✅ | 2-128 characters |
| `address?` | `string` | ⬜ | 2-128 characters |
| `country?` | [`Country`](#country) | ⬜ | Must be from predefined [country options](#country) |
| `postalCode?` | `string` | ⬜ | 2-128 characters |
| `region?` | `string` | ⬜ | 2-128 characters |
#### ProfileItemSchema
Validates a single online profile or social media presence.
| Prop | Type | Required | Validation Rules |
| ---------- | --------------------- | -------- | --------------------------------------------------- |
| `network` | [`Network`](#network) | ✅ | Must be from predefined [network options](#network) |
| `username` | `string` | ✅ | 2-128 characters |
| `url?` | `string` | ⬜ | Valid URL, max 256 chars |
#### ProjectItemSchema
Validates a single project, portfolio piece, or technical work.
| Prop | Type | Required | Validation Rules |
| -------------- | ---------- | -------- | ------------------------------------- |
| `name` | `string` | ✅ | 2-128 characters |
| `startDate` | `string` | ✅ | see [date schema](#date-schema) |
| `summary` | `string` | ✅ | see [summary schema](#summary-schema) |
| `description?` | `string` | ⬜ | 4-128 characters |
| `endDate?` | `string` | ⬜ | see [date schema](#date-schema) |
| `keywords?` | `string[]` | ⬜ | Each item 1-32 characters |
| `url?` | `string` | ⬜ | Valid URL, max 256 chars |
#### PublicationItemSchema
Validates a single publication, research work, or academic paper.
| Prop | Type | Required | Validation Rules |
| -------------- | -------- | -------- | ------------------------------------- |
| `name` | `string` | ✅ | 2-128 characters |
| `publisher` | `string` | ✅ | 2-128 characters |
| `releaseDate?` | `string` | ⬜ | see [date schema](#date-schema) |
| `summary?` | `string` | ⬜ | see [summary schema](#summary-schema) |
| `url?` | `string` | ⬜ | Valid URL, max 256 chars |
#### ReferenceItemSchema
Validates a single professional reference or recommendation.
| Prop | Type | Required | Validation Rules |
| --------------- | -------- | -------- | ------------------------------------- |
| `name` | `string` | ✅ | 2-128 characters |
| `summary` | `string` | ✅ | see [summary schema](#summary-schema) |
| `email?` | `string` | ⬜ | see [email schema](#email-schema) |
| `phone?` | `string` | ⬜ | Valid phone format |
| `relationship?` | `string` | ⬜ | 2-128 characters |
#### SkillItemSchema
Validates a single skill, competency, or technical ability.
| Prop | Type | Required | Validation Rules |
| ----------- | ----------------- | -------- | ----------------------------------------------- |
| `level` | [`Level`](#level) | ✅ | Must be from predefined [level options](#level) |
| `name` | `string` | ✅ | 2-128 characters |
| `keywords?` | `string[]` | ⬜ | Each item 1-32 characters |
#### VolunteerItemSchema
Validates a single volunteer experience or community service.
| Prop | Type | Required | Validation Rules |
| -------------- | -------- | -------- | ------------------------------------- |
| `organization` | `string` | ✅ | 2-128 characters |
| `position` | `string` | ✅ | 2-128 characters |
| `startDate` | `string` | ✅ | see [date schema](#date-schema) |
| `summary` | `string` | ✅ | see [summary schema](#summary-schema) |
| `endDate?` | `string` | ⬜ | see [date schema](#date-schema) |
| `url?` | `string` | ⬜ | Valid URL, max 256 chars |
#### WorkItemSchema
Validates a single work experience or employment position.
| Prop | Type | Required | Validation Rules |
| ----------- | ---------- | -------- | ------------------------------------- |
| `name` | `string` | ✅ | 2-128 characters |
| `position` | `string` | ✅ | 2-128 characters |
| `startDate` | `string` | ✅ | see [date schema](#date-schema) |
| `summary` | `string` | ✅ | see [summary schema](#summary-schema) |
| `endDate?` | `string` | ⬜ | see [date schema](#date-schema) |
| `keywords?` | `string[]` | ⬜ | Each item 1-32 characters |
| `url?` | `string` | ⬜ | Valid URL, max 256 chars |
### LocaleSchema
Validates locale settings for internationalization and localization.
| Prop | Type | Required | Validation Rules |
| ----------- | ----------------------------------- | -------- | ------------------------------------------------------------------- |
| `language?` | [`LocaleLanguage`](#localelanguage) | ⬜ | Must be from predefined [locale language options](#locale-language) |
### LayoutsSchema
Defines the overall layout validation configuration.
| Prop | Type | Required | Validation Rules |
| ----------- | --------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------------------------------- |
| `layouts[]` | [`HtmlLayoutSchema`](#htmllayoutschema) \| [`LatexLayoutSchema`](#latexlayoutschema) \| [`MarkdownLayoutSchema`](#markdownlayoutschema) | ⬜ | Array of layout configurations. |
#### Common Layout Schemas
##### MarginsSchema
Validates page margin settings for document layout.
| Prop | Type | Required | Validation Rules |
| --------- | -------- | -------- | --------------------------------------------- |
| `top?` | `string` | ⬜ | see [margin size schema](#margin-size-schema) |
| `bottom?` | `string` | ⬜ | see [margin size schema](#margin-size-schema) |
| `left?` | `string` | ⬜ | see [margin size schema](#margin-size-schema) |
| `right?` | `string` | ⬜ | see [margin size schema](#margin-size-schema) |
##### SectionsSchema
Validates section customization settings.
| Prop | Type | Required | Validation Rules |
| ---------- | --------------------------- | -------- | -------------------------------------------------------------------- |
| `aliases?` | `Record` | ⬜ | Keys must be valid section IDs, values must be strings (2-128 chars) |
| `order?` | `OrderableSectionID[]` | ⬜ | Array of valid orderable section IDs |
#### HtmlLayoutSchema
Validates HTML layout configuration.
| Prop | Type | Required |
| ------------- | ----------------------------------------------- | -------- |
| `engine` | `'html'` | ✅ |
| `advanced?` | [`HtmlAdvancedSchema`](#htmladvancedschema) | ⬜ |
| `sections?` | [`SectionsSchema`](#sectionsschema) | ⬜ |
| `template?` | [`HtmlTemplateSchema`](#htmltemplateschema) | ⬜ |
| `typography?` | [`HtmlTypographySchema`](#htmltypographyschema) | ⬜ |
##### HtmlAdvancedSchema
Validates advanced HTML configuration options.
| Prop | Type | Required | Validation Rules |
| -------------- | --------- | -------- | ---------------- |
| `showIcons?` | `boolean` | ⬜ | true/false |
| `title?` | `string` | ⬜ | - |
| `footer?` | `string` | ⬜ | - |
| `description?` | `string` | ⬜ | - |
| `keywords?` | `string` | ⬜ | - |
##### HtmlTemplateSchema
Validates HTML template configuration.
| Prop | Type | Required | Validation Rules |
| ---------- | ------------------------------- | -------- | --------------------------------------------------------- |
| `template` | [`HtmlTemplate`](#htmltemplate) | ⬜ | Must be from predefined [template options](#htmltemplate) |
##### HtmlTypographySchema
Validates HTML typography settings.
| Prop | Type | Required | Validation Rules |
| ------------- | ------------------------------- | -------- | ---------------------------------------------------------- |
| `fontSize?` | [`HtmlFontSize`](#htmlfontsize) | ⬜ | Must be from predefined [font size options](#htmlfontsize) |
| `fontFamily?` | `string` | ⬜ | A comma-separated list of font families. |
#### LatexLayoutSchema
Validates LaTeX layout configuration.
| Prop | Type | Required | Validation Rules |
| ------------- | ------------------------------------------------- | -------- | ----------------------------------------------------- |
| `advanced?` | [`LatexAdvancedSchema`](#latexadvancedschema) | ⬜ | See [advanced schema](#latexadvancedschema) |
| `engine` | `'latex'` | ✅ | Must be "latex" |
| `page?` | [`LatexPageSchema`](#latexpageschema) | ⬜ | See [page schema](#latexpageschema) |
| `sections?` | [`SectionsSchema`](#sectionsschema) | ⬜ | See [sections schema](#sectionsschema) |
| `template?` | [`LatexTemplate`](#latextemplate) | ⬜ | Must be from predefined [template options](#template) |
| `typography?` | [`LatexTypographySchema`](#latextypographyschema) | ⬜ | See [typography schema](#latextypographyschema) |
##### LatexAdvancedSchema
Validates advanced LaTeX configuration options.
| Prop | Type | Required | Validation Rules |
| ------------ | ------------------------------------ | -------- | -------------------------------------------------------------------- |
| `fontspec?` | `{ numbers?: LatexFontspecNumbers }` | ⬜ | Must be from predefined [fontspec numbers options](#fontspecnumbers) |
| `showIcons?` | `boolean` | ⬜ | true/false |
##### LatexPageSchema
Validates page-level settings for document presentation.
| Prop | Type | Required | Validation Rules |
| ------------------ | --------------------------------- | -------- | -------------------------------------------------------- |
| `margins?` | [`MarginsSchema`](#marginsschema) | ⬜ | See [margins schema](#marginsschema) |
| `paperSize?` | [`PaperSize`](#papersize) | ⬜ | Must be from predefined [paper size options](#papersize) |
| `showPageNumbers?` | `boolean` | ⬜ | true/false |
##### LatexTypographySchema
Validates typography settings for document formatting.
| Prop | Type | Required | Validation Rules |
| ------------- | ------------------------- | -------- | ------------------------------------------------------ |
| `fontSize?` | `string` | ⬜ | Must be from predefined [font size options](#fontsize) |
| `fontFamily?` | `string` | ⬜ | A comma-separated list of font families. |
| `links?` | `{ underline?: boolean }` | ⬜ | true/false |
#### MarkdownLayoutSchema
Validates Markdown layout configuration.
| Prop | Type | Required | Validation Rules |
| ----------- | ----------------------------------- | -------- | -------------------------------------- |
| `engine` | `'markdown'` | ✅ | Must be "markdown" |
| `sections?` | [`SectionsSchema`](#sectionsschema) | ⬜ | See [sections schema](#sectionsschema) |
## Primitive Validation Schemas
### Email Schema
Validates email addresses with strict format requirements.
**Validation Rules:**
* Must be a valid email format
* Pattern: `^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$`
* Examples: `hi@ppresume.com`, `first.last@company.org`, `test+tag@domain.co.uk`
### Phone Schema
Validates phone numbers with flexible format support.
**Validation Rules:**
* Pattern: `^[+]?[(]?[0-9\\s-]{1,15}[)]?[0-9\\s-]{1,15}$`
* May include country code, parentheses, spaces, and hyphens
* Examples: `555-123-4567`, `+44 20 7946 0958`, `(555) 123-4567`
### Summary Schema
Validates summary text with length constraints.
**Validation Rules:**
* Must be between 16 and 1024 characters
* Examples:
* "Experienced software engineer with 5+ years in full-stack development."
* "Creative designer passionate about user experience and modern design principles."
* "Dedicated project manager with proven track record of delivering complex projects on time and budget."
### URL Schema
Validates URLs with length constraints.
**Validation Rules:**
* Must be a valid URL format
* Maximum length of 256 characters
* Examples: `https://yamlresume.dev`, `https://ppresume.com`, `https://github.com/yamlresume/yamlresume`
### Keywords Schema
Validates keyword arrays with individual item constraints.
**Validation Rules:**
* Array of strings
* Each keyword must be between 1 and 32 characters
* Examples: `["Javascript", "React", "Typescript"]`, `["Design", "UI", "UX"]`
### Date Schema
Validates date strings with format requirements.
**Validation Rules:**
* Must be between 4 and 32 characters
* Must be parseable by `Date.parse()`
* Examples: `2025-01-01`, `Jul 2025`, `July 3, 2025`, `2025-02-02T00:00:03.123Z`
### Margin Size Schema
Validates margin size strings with unit requirements.
**Validation Rules:**
* Must be between 2 and 32 characters
* Pattern: `^\\d+(\\.\\d+)?(cm|pt|in)$`
* Must be a positive number followed by valid units: cm, pt, or in
* Examples: `2.5cm`, `1in`, `72pt`, `0.5cm`, `12pt`
## Enum Validation Schemas
### Country
A union type for all possible countries and regions in the world.
**Validation Rules:**
* Must be one of the predefined country options
* Examples: `United States`, `China`, `United Kingdom`, `Germany`
### Degree
A union type for all possible degrees.
**Validation Rules:**
* Must be one of: `Associate`, `Bachelor`, `Diploma`, `Doctor`, `High School`, `Master`, `Middle School`
### Fluency
A union type for all possible language fluency levels.
**Validation Rules:**
* Must be one of:
* `Elementary Proficiency`
* `Full Professional Proficiency`
* `Limited Working Proficiency`
* `Minimum Professional Proficiency`
* `Native or Bilingual Proficiency`
### Language
A union type for all supported languages.
**Validation Rules:**
* Must be one of the predefined language options
* Examples: `English`, `Chinese`, `Spanish`, `French`, `German`
### Level
A union type for all possible skill proficiency levels.
**Validation Rules:**
* Must be one of: `Advanced`, `Beginner`, `Expert`, `Intermediate`, `Master`, `Novice`
### Network
A union type for all possible social network options.
**Validation Rules:**
* Must be one of the predefined network options
* Examples: `GitHub`, `LinkedIn`, `Twitter`, `Facebook`, `Instagram`
### HtmlFontSize
A union type for all possible HTML font size options.
**Validation Rules:**
* Must be one of: `10px`, `11px`, `12px`, `13px`, `14px`, `15px`, `16px`, `17px`, `18px`, `19px`, `20px`, `21px`, `22px`, `23px`, `24px`
* HTML engine supports font sizes from 10px to 24px
* `16px` is the default font size
### HtmlTemplate
A union type for all possible HTML template options.
**Validation Rules:**
* Must be one of: `calm`
* See also: [templates](/docs/layouts/html/templates)
### LatexTemplate
A union type for all possible LaTeX template options.
**Validation Rules:**
* Must be one of: `moderncv-banking`, `moderncv-casual`, `moderncv-classic`
* See also: [templates](/docs/layouts/latex/templates)
### PaperSize
A union type for all possible LaTeX paper size options.
**Validation Rules:**
* Must be one of: `a4`, `letter`
### LatexFontSize
A union type for all possible LaTeX font size options.
**Validation Rules:**
* Must be one of: `10pt`, `11pt`, `12pt`
* `10pt` is the default font size
### LatexFontspecNumbers
A union type for all possible latex fontspec numbers options.
**Validation Rules:**
* Must be one of:
* `Auto` - allowing the style to be automatically determined based on the
selected `LocaleLanguage` (default)
* `Lining` - standard lining figures (default for CJK languages)
* `OldStyle` - old style figures with varying heights (default for Latin
languages)
### LocaleLanguage
A union type for all possible locale languages.
**Validation Rules:**
* Must be one of: `en`, `es`, `zh-hans`, `zh-hant-hk`, `zh-hant-tw`
* See also: [multi-languages](/docs/locale)
# HTML Engine
URL: (/en/docs/layouts/html)
The HTML engine generates clean, web-ready HTML versions of your resume. This is
particularly useful for embedding your resume on websites, sharing it online, or
creating a web-based portfolio.
## Configuration
To use the HTML engine, specify `engine: html` in your layout configuration.
```yaml
layouts:
- engine: html
template: calm
# ... other options
```
## Sections
The `sections` option allows you to customize the section titles and their
order. For more information, see the [sections documentation](./sections).
```yml lineNumbers
layouts:
- engine: html
sections:
aliases:
work: "Professional Experience"
education: "Education"
skills: "Skills"
order:
- basics
- work
- education
```
## Templates
The `template` option allows you to choose from a variety of templates. Each
template has a unique design and layout. You can find a list of available
templates in the [templates documentation](./html/templates).
```yml lineNumbers
layouts:
- engine: html
template: calm
```
## Typography
The `typography` option allows you to customize font styles used in your resume.
### Font Size
The `fontSize` option allows you to set the base font size for the document. The
HTML engine supports font sizes from `14px` to `20px`.
### Font Family
The `fontFamily` option allows you to specify a prioritized list of font family names
and/or generic family names. This works exactly like the CSS `font-family` property.
```yaml
layouts:
- engine: html
typography:
fontSize: 16px
fontFamily: "Merriweather, serif"
```
## Advanced
The `advanced` option allows you to configure advanced settings for the HTML
engine.
```yml lineNumbers
layouts:
- engine: html
advanced:
showIcons: true
# Custom title for the HTML document.
title: "My Custom Resume Title"
# Custom footer for the HTML document.
footer: "Generated by YAMLResume"
# Meta description for the HTML document.
description: "A brief description of the resume for SEO."
# Meta keywords for the HTML document.
keywords: "resume, cv, yamlresume"
```
# LaTeX Engine
URL: (/en/docs/layouts/latex)
The LaTeX engine is the core engine of YAMLResume, designed to produce high-quality, professional-looking PDF resumes using LaTeX templates.
## Configuration
To use the LaTeX engine, specify `engine: latex` in your layout configuration.
```yaml
layouts:
- engine: latex
template: moderncv-banking
# ... other options
```
## Page
The `page` option allows you to customize the page settings, such as the paper
size, margins and whether to show page numbers.
```yml lineNumbers
layouts:
- engine: latex
page:
showPageNumbers: true
# a4 or letter
paperSize: a4
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
```
## Sections
The `sections` option allows you to customize the section titles and their
order. For more information, see the [sections documentation](./sections).
```yml lineNumbers
layouts:
- engine: latex
sections:
aliases:
work: "Professional Experience"
education: "Education"
skills: "Skills"
order:
- basics
- work
- education
```
## Templates
The `template` option allows you to choose from a variety of templates. Each
template has a unique design and layout. You can find a list of available
templates in the [templates documentation](./latex/templates).
```yml lineNumbers
layouts:
- engine: latex
template: moderncv-banking
```
## Typography
The `typography` option allows you to customize font styles used in your resume.
### Font Size
The `fontSize` option allows you to set the base font size for the document. The
LaTeX engine only supports `10pt`, `11pt`, and `12pt`.
### Font Family
The `fontFamily` option allows you to specify a prioritized list of font family names.
This works similarly to the CSS `font-family` property.
```yaml
layouts:
- engine: latex
typography:
fontSize: 11pt
fontFamily: "Merriweather, serif"
```
## Advanced
The `advanced` option allows you to configure advanced settings for the LaTeX
engine.
```yml lineNumbers
layouts:
- engine: latex
advanced:
showIcons: true
fontspec:
numbers: Lining
```
# Markdown Engine
URL: (/en/docs/layouts/markdown)
The markdown engine generates a plain Markdown version of your resume. This is
particularly useful when you need to copy-paste your resume content into
applicant tracking systems (ATS) or other forms that don't support PDF upload.
## Configuration
To use the markdown engine, specify `engine: markdown` in your layout
configuration.
```yml
layouts:
- engine: markdown
```
The markdown output will be generated alongside your PDF (if you have a LaTeX
layout also configured) or as a standalone file.
Unlike the [LaTeX layout](./latex), the Markdown layout is a simple layout which
has no extra configurations except for the [section
aliases](/docs/layouts/sections/aliases) and [section
reorder](/docs/layouts/sections/reorder).
```yml lineNumbers title="resume.yml"
---
content:
# ...
locale:
language: en
layouts:
- engine: markdown
sections:
aliases:
work: Professional Experience
education: Academic Background
skills: Technical Skills
order:
- basics
- work
- education
- skills
```
The section `aliases` and `order` will be respected in the final markdown
output.
# Aliases
URL: (/en/docs/layouts/sections/aliases)
YAMLResume provides default titles for [all resume sections
except](#aliasable-sections) `location` and `profiles`, which are automatically
[translated](/docs/locale) based on the selected [locale
language](/docs/layouts#locale). However, you may want to customize these titles
to better suit your profile or industry. The `section aliases` feature allows
you to override the default section titles with your own custom names.
For example, you might prefer "Professional Experience" instead of "Work" for
`work` section, or "Technical Proficiencies" instead of "Skills" for `skills`
section.
## How to Use
You can define section aliases within the `layouts.[].sections` configuration of your
`resume.yml` file. Add a `sections` object to your layout, and inside it, an
`aliases` map.
The keys in the `aliases` map are the standard section IDs, and the values are
the custom titles you want to use.
## Example
Here's how you can change the titles for the `work`, `education`, and `skills`
sections:
```yml lineNumbers title="resume.yml"
---
content:
# ...
layouts:
- engine: latex
sections:
aliases:
work: Professional Experience
education: Academic Background
skills: Technical Skills
```
When you build your resume with this configuration, the generated PDF will use
"Professional Experience", "Academic Background", and "Technical Skills" as the
titles for these sections, overriding the default or locale-specific names.
If an alias is not provided for a section, YAMLResume will fall back to the
default title for the configured locale.
## Aliasable Sections
You can provide aliases for the following sections:
* `basics`
* `education`
* `work`
* `volunteer`
* `awards`
* `certificates`
* `publications`
* `skills`
* `languages`
* `interests`
* `references`
* `projects`
## Rules and Constraints
* An alias must be between 2 and 128 characters in length.
# Sections
URL: (/en/docs/layouts/sections)
YAMLResume provides flexible options to customize the sections of the resume.
You can change the title of any section and reorder the sections to best fit
your professional profile. These customizations are handled within the
`layouts.[].sections` configuration in your `resume.yml` file.
```yml lineNumbers title="resume.yml"
---
content:
# ...
layouts:
- engine: latex
sections:
aliases:
work: "Professional Experience"
education: "Academic Background"
skills: "Technical Skills"
order:
- work
- education
- awards
- volunteer
```
## Learn More
# Reorder
URL: (/en/docs/layouts/sections/reorder)
By default, YAMLResume arranges sections in a standard order. However, you can
easily change this by providing a custom `order` list. This allows you to
highlight your most important information first.
## How to Use
For example, if you want to place your "Skills" and "Projects" sections before
your "Work" experience, you can define the order like this:
```yml lineNumbers title="resume.yml"
---
content:
# ...
layouts:
- engine: latex
sections:
order:
- skills
- projects
- work
```
Any sections included in the `order` list will appear first, in the sequence
you've specified. Sections not included in the list will be appended after,
following their default order.
## Examples
### Prioritize Work Experience
```yml lineNumbers
layouts:
- engine: latex
sections:
order:
- work
- education
```
Result: work experience appears first, followed by education, then all other
sections in default order.
### Highlight Skills and Languages
```yml lineNumbers
layouts:
- engine: latex
sections:
order:
- skills
- languages
- work
```
Result: skills and languages appear prominently at the top, followed by work
experience, then remaining sections.
### Academic Focus
```yml lineNumbers
layouts:
- engine: latex
sections:
order:
- education
- publications
- awards
- certificates
```
Result: academic sections appear first, followed by other sections in default
order.
## Default Section Order
When no custom order is specified, sections are rendered in this default order:
1. `basics` (by default rendered to the top of the resume as a summary section)
2. `education`
3. `work`
4. `languages`
5. `skills`
6. `awards`
7. `certificates`
8. `publications`
9. `references`
10. `projects`
11. `interests`
12. `volunteer`
## Implementation Details
* **Priority**: Sections specified in `order` appear first in the specified
sequence
* **Fallback**: Remaining sections follow in the default order
* **Deduplication**: Duplicate sections in the order array are deduplicated
(first occurrence kept)
* **Empty Sections**: Sections with no content are automatically filtered out
* **Flexibility**: Users can specify any subset of orderable sections
## Orderable Sections
The following sections can be reordered:
* `basics`
* `education`
* `work`
* `volunteer`
* `awards`
* `certificates`
* `publications`
* `skills`
* `languages`
* `interests`
* `references`
* `projects`
# Calm
URL: (/en/docs/layouts/html/templates/calm)
## Implementation
Calm is a clean and modern HTML template inspired by the moderncv LaTeX
template. It features a minimalist design with clear section separation and an
elegant layout optimized for web viewing.
Under the hood, the template uses:
* **CSS Reset**: A custom reset stylesheet for consistent rendering across
browsers
* **Typography**: Customizable font sizes ranging from 14px to 20px
* **Responsive Design**: Clean layout that adapts to different screen sizes
* **Semantic HTML**: Proper HTML5 structure for better accessibility and SEO
## Configuration
```yml lineNumbers title="resume.yml"
content:
# ...
layouts:
- engine: html
template: calm # [!code highlight]
typography:
fontSize: 16px
```
## Features
* **Clean Design**: Minimalist layout focused on content readability
* **Modern Typography**: Professional fonts with customizable sizes
* **Web-Ready**: Can be embedded directly in websites or shared via URL
* **Print-Friendly**: Optimized for printing to PDF from web browsers
* **Customizable Sections**: Flexible section ordering and naming
## Preview
The Calm template provides a professional appearance suitable for various
industries and experience levels. Its clean design ensures your content takes
center stage while maintaining visual appeal.
# Templates
URL: (/en/docs/layouts/html/templates)
YAMLResume provides HTML templates out of the box, you can list all templates
with `yamlresume templates list` command.
```console
$ yamlresume templates list
| layouts.[].template | Engine | Template Name | Description |
| ------------------- | ------ | ---------------- | ------------------------------------------------- |
| moderncv-banking | latex | ModernCV Banking | ModernCV template with banking style |
| moderncv-casual | latex | ModernCV Casual | ModernCV template with casual style |
| moderncv-classic | latex | ModernCV Classic | ModernCV template with classic style |
| calm | html | Calm | Clean and minimalist design suitable for all professionals. |
| vscode | html | VS Code | Dark theme inspired by Visual Studio Code, tailored for developers. |
```
By default, YAMLResume uses [calm](./templates/calm) template for HTML output.
You can change the template by setting `layouts.[].template` in your YAML
resume.
```yml lineNumbers title="resume.yml"
content:
# ...
layouts:
- engine: html
# ...
template: calm # [!code highlight]
# ...
```
Check out the following templates for more details:
# VS Code
URL: (/en/docs/layouts/html/templates/vscode)
## Implementation
VS Code is a dark theme inspired by the "Dark+" color scheme of Visual Studio
Code. It is specifically tailored for developers, software engineers, and
technical professionals who want their resume to reflect their coding
environment.
The template adopts a "Resume as Code" aesthetic, treating different parts of
your profile as code elements:
* **Name**: Decorated as a `class` (e.g., `class JohnDoe {`)
* **Headline**: Rendered as a code comment (e.g., `// Full Stack Engineer`)
* **Sections**: Represented as function calls (e.g., `experience()`)
* **Skills/Languages**: Styled as object property keys (e.g.,
`JavaScript: Expert`)
Under the hood, the template uses:
* **Typography**: Uses a monospace font stack (`Consolas`, `Monaco`,
`Courier New`, `monospace`) for an authentic IDE feel
* **Syntax Highlighting**: Uses the official VS Code Dark+ color palette for
keywords, strings, classes, and functions
* **Layout Indentation**: Features vertical indentation guides (border-left) to
visually represent the scope of each section
## Configuration
```yml lineNumbers title="resume.yml"
content:
# ...
layouts:
- engine: html
template: vscode # [!code highlight]
typography:
fontSize: 16px
```
## Features
* **Developer-Centric**: Perfect for signalling technical proficiency and a
passion for coding
* **Dark Mode by Default**: High-contrast, easy-on-the-eyes dark theme
* **Code-Like Structure**: Unique visual metaphors that make technical resumes
stand out
* **Responsive**: Fully adapted for both desktop and mobile viewing with
consistent code semantics
* **Syntax Styling**: Uses familiar IDE colors to differentiate between roles,
dates, and descriptions
## Preview
The VS Code template provides a distinctive, modern look that immediately
connects with technical recruiters and hiring managers. It transforms your
career history into a clean, readable, and visually familiar "source file".
# Templates
URL: (/en/docs/layouts/latex/templates)
YAMLResume provides several templates out of the box, you can list all templates
with `yamlresume templates list` command.
```console
$ yamlresume templates list
| layouts.[].template | Engine | Template Name | Description |
| ------------------- | ------ | ---------------- | ------------------------------------------------- |
| moderncv-banking | latex | ModernCV Banking | ModernCV template with banking style |
| moderncv-casual | latex | ModernCV Casual | ModernCV template with casual style |
| moderncv-classic | latex | ModernCV Classic | ModernCV template with classic style |
| calm | html | Calm | Clean and minimalist design suitable for all professionals. |
| vscode | html | VS Code | Dark theme inspired by Visual Studio Code, tailored for developers. |
```
By default, YAMLResume uses [moderncv-banking](./moderncv-banking) template. You
can change the template by setting `layouts.[].template` in your YAML resume.
```yml lineNumbers title="resume.yml"
content:
# ...
layouts:
- engine: latex
# ...
template: moderncv-classic # [!code highlight]
# ...
```
Check out the following templates for more details:
# Moderncv Banking
URL: (/en/docs/layouts/latex/templates/moderncv-banking)
## Implementation
Moderncv banking is a modern and clean resume template based on
[xdanaux/moderncv](https://github.com/xdanaux/moderncv).
Under the hood, we use the following code for the LaTeX preamble:
```latex lineNumbers
\documentclass[a4paper, serif, 11pt]{moderncv}
%% moderncv
% style and color
\moderncvstyle{banking}
\moderncvcolor{black}
% needed by moderncv for showing icons
\usepackage{fontawesome5}
```
For moderncv banking style, we also adopt some special processings for
punctuations in order to make it work with CJK.
Technically speaking, English and Chinese have different colons. The English
colon is `:`, with Unicode `U+003A`, while the Chinese colon is `:`, with
Unicode `U+FF1A`. So when the resume language is Chinese, we would adopt the
Chinese colon for moderncv by overriding some magic LaTeX macros:
```latex lineNumbers
% renew moderncv command to adapt for CJK colon
\renewcommand*{\cvitem}[3][.25em]{%
\ifstrempty{#2}{}{\hintstyle{#2}<= &templateTranslations.punctuations.Colon =>}{#3}%
\par\addvspace{#1}}
\renewcommand*{\cvitemwithcomment}[4][.25em]{%
\savebox{\cvitemwithcommentmainbox}{\ifstrempty{#2}{}{\hintstyle{#2}<= &templateTranslations.punctuations.Colon =>}#3}%
\setlength{\cvitemwithcommentmainlength}{\widthof{\usebox{\cvitemwithcommentmainbox}}}%
\setlength{\cvitemwithcommentcommentlength}{\maincolumnwidth-\separatorcolumnwidth-\cvitemwithcommentmainlength}%
\begin{minipage}[t]{\cvitemwithcommentmainlength}\usebox{\cvitemwithcommentmainbox}\end{minipage}%
\hfill% fill of \separatorcolumnwidth
\begin{minipage}[t]{\cvitemwithcommentcommentlength}\raggedleft\small\itshape#4\end{minipage}%
\par\addvspace{#1}}
```
Check our blog
[post](https://blog.ppresume.com/posts/multi-languagues-support#colon) for more
details.
## Preview
# Moderncv Casual
URL: (/en/docs/layouts/latex/templates/moderncv-casual)
## Implementation
Moderncv casual is a modern and casual resume template based on
[xdanaux/moderncv](https://github.com/xdanaux/moderncv).
Under the hood, we use the following code for the LaTeX preamble:
```latex lineNumbers
\documentclass[a4paper, serif, 11pt]{moderncv}
%% moderncv
% style and color
\moderncvstyle{casual}
\moderncvcolor{black}
% needed by moderncv for showing icons
\usepackage{fontawesome5}
```
## Preview
# Moderncv Classic
URL: (/en/docs/layouts/latex/templates/moderncv-classic)
## Implementation
Moderncv classic is a modern and classic resume template based on
[xdanaux/moderncv](https://github.com/xdanaux/moderncv).
Under the hood, we use the following code for the LaTeX preamble:
```latex lineNumbers
\documentclass[a4paper, serif, 11pt]{moderncv}
%% moderncv
% style and color
\moderncvstyle{classic}
\moderncvcolor{black}
% needed by moderncv for showing icons
\usepackage{fontawesome5}
```
## Preview
# CLI
URL: (/zh-cn/docs/cli)
YAMLResume 提供了 CLI 工具来帮助您管理简历。您可以按照 [安装指南](/zh-cn/docs/installation) 来安装它。
请注意,我们为您提供了一个 [docker 镜像](/zh-cn/docs/installation#docker-users),其中已安装了 `yamlresume` CLI 以及所有必要的依赖项。
对于本指南中的每个子命令,您可以通过在 `yamlresume/yamlresume` 后附加子命令在 docker 中运行它。
例如,在 yamlresume CLI 中创建新简历:
```sh
yamlresume new my-resume.yml
```
您也可以在 docker 中运行:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
```
## 帮助
显示 CLI 帮助和所有可用命令:
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build a resume on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
显示 YAMLResume CLI 版本:
```console
$ yamlresume -V
0.5.0
```
## New
创建新简历。默认简历文件名是 `resume.yml`,但您可以指定自定义文件名:
```console
$ yamlresume new --help
Usage: yamlresume new [options] [filename]
create a new resume
Arguments:
filename output filename (default: "resume.yml")
Options:
-h, --help display help for command
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
## Build
从 YAML 构建简历到 PDF。它将同时生成 latex 代码和 PDF,如果您使用 [XeTeX](/zh-cn/docs/installation#xetex) 作为排版引擎,还会生成一些中间文件 `.aux`、`.log` 等。
```console
$ yamlresume build --help
Usage: yamlresume build [options]
build a resume to LaTeX and PDF
Arguments:
resume-path the resume file path
Options:
--no-pdf only generate TeX file without PDF
--no-validate skip resume schema validation
-h, --help display help for command
$ yamlresume build my-resume.yml
◐ Generating resume PDF file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume PDF file successfully.
```
### `--no-pdf`
如果您只想生成 LaTeX 文件而不生成 PDF,可以使用 `--no-pdf` 选项。
```console
$ yamlresume build --no-pdf my-resume.yml
```
### `--no-validate`
如果您想跳过简历架构验证,可以使用 `--no-validate` 选项。
```console
$ yamlresume build --no-validate my-resume.yml
```
## Dev
在文件更改时从 YAML 构建简历到 PDF。它接受与 [`build`](#build) 相同的选项,但是当 YAML 文件更改时会自动重建简历(即监视模式)。这对于您实时预览简历更改非常方便。
```console
$ yamlresume dev --help
Usage: yamlresume dev [options]
build a resume on file changes (watch mode)
Arguments:
resume-path the resume file path
Options:
--no-pdf only generate TeX file without PDF
--no-validate skip resume schema validation
-h, --help display help for command
```
## Validate
根据 YAMLResume [架构](/zh-cn/docs/compiler/schema) 验证简历。
```console
$ yamlresume validate --help
Usage: yamlresume validate [options]
validate a resume against the YAMLResume schema
Arguments:
resume-path the resume file path
Options:
-h, --help display help for command
```
例如,对于以下简历:
```yml lineNumbers
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
---
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@pp
url: https://ppresume.com/gallery
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
region: California
city: S
country: United States
postalCode: "95814"
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
startDate: Sep 1, 2016
endDate:
courses:
- D
- Programming Language Concepts
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
layouts:
- engine: latex
typography:
fontSize: 13pt
```
`yamlresume validate` 将为您提供潜在错误列表,并提供清晰的位置信息
```console
$ yamlresume validate my-resume.yml
invalid-resume.yml:9:12: warning: email is invalid.
email: hi@pp
^
invalid-resume.yml:19:11: warning: city should be 2 characters or more.
city: S
^
invalid-resume.yml:31:11: warning: courses should be 2 characters or more.
- D
^
invalid-resume.yml:41:17: warning: font size option is invalid, it must be one of the following: ["10pt", "11pt", "12pt"]
fontSize: 13pt
^
✖ Resume validation failed.
```
## Languages
列出所有可用语言。语言代码遵循 [ISO 639 规范](https://www.iso.org/iso-639-language-code) 中的规范。您可以在 `locale.language` 中指定语言代码以更改简历的语言。更改简历的语言将自动翻译所有固定术语。您可以在我们的 [内容 -> 多语言](/zh-cn/docs/locale) 章节查看更多详细信息。
```console
$ yamlresume languages list
| locale.language | Language Name | 1:03:48 PM
| --------------- | ------------------------------- |
| en | English |
| zh-hans | Simplified Chinese |
| zh-hant-hk | Traditional Chinese (Hong Kong) |
| zh-hant-tw | Traditional Chinese (Taiwan) |
| es | Spanish |
| fr | French |
| no | Norwegian |
| nl | Dutch |
| ja | Japanese |
| de | German |
```
## Templates
列出所有可用模板。您可以通过在 YAML 简历中设置 `layouts.[].template` 来更改简历模板。更多详细信息请参见 [PPResume 模板](https://docs.ppresume.com/typesetting/templates)。
```console
$ yamlresume templates list
| `layouts.[].template` | `Engine` | `Template Name` | `Description` |
| --------------------- | -------- | ------------------ | -------------------------------------- |
| `moderncv-banking` | `latex` | `ModernCV Banking` | `ModernCV template with banking style` |
| `moderncv-casual` | `latex` | `ModernCV Casual` | `ModernCV template with casual style` |
| `moderncv-classic` | `latex` | `ModernCV Classic` | `ModernCV template with classic style` |
```
# 对比
URL: (/zh-cn/docs/comparisons)
## JSON Resume
[JSON Resume](https://jsonresume.org) 是构建简历结构化数据格式开放标准的先驱。其第一个[官方发布](https://jsonresume.org/blog/first-official-release)是在 2014 年 7 月 31 日,距今已有 10 多年。
从其官方网站:
```markdown
## 起源和概念化
JSON Resume 被设想为解决简历格式分散和不一致问题的解决方案。传统简历,通常以 Microsoft Word 或 PDF 等格式创建,在被不同系统解析时经常遇到兼容性问题。认识到这个问题,Thomas Davis 和 Roland Sharp 发起了 JSON Resume 作为开源项目,为简历创建通用、机器可读的格式。
## 开发里程碑
该项目在 2010 年代初期开始获得动力,重要的里程碑包括 JSON Resume 模式的创建、第一个 CLI 工具的开发以及 JSON Resume 注册表的建立。这些里程碑是由社区贡献和科技行业对标准化简历格式需求日益增长的认识推动的。
```
JSON Resume 在构建简历结构化数据格式的开放标准方面做得非常出色。然而,它缺少 YAMLResume 拥有的一些功能。
YAMLResume 深受 [JSON Resume](https://jsonresume.org/) 的启发,在某些方面更加固执己见。例如,JSON Resume 对如何将机器可读数据转换为美观、人类可读的简历只字不提。
以下是一些显著差异:
| 功能 | YAMLResume | JSON Resume |
| ----- | ---------- | ----------- |
| 数据格式 | YAML | JSON |
| 数据结构 | 所有顶级对象 | 一些嵌套对象 |
| 排版引擎 | LaTeX | 无 |
| 布局规范 | 内置 | 未指定 |
| 富文本支持 | 是 | 否 |
我们将来会提供一个工具来将 JSON Resume 导入到 YAMLResume。
# 快速开始
URL: (/zh-cn/docs)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
import { Step, Steps } from "fumadocs-ui/components/steps";
## 简介
创建简历可能并不困难,但这绝对是一个枯燥、冗长且繁琐的过程。
使用 YAMLResume,你可以用 YAML 创建和版本控制你的简历,并轻松生成具有专业版式和排版的完美 PDF。
YAMLResume 是 [PPResume](https://ppresume.com) 的核心引擎,这是一个基于 LaTeX 的构建器。它已经帮助[世界各地成千上万的人](https://blog.ppresume.com/posts/2024-recap)创建像素完美、外观专业的简历,并找到理想的工作。我们在这里决定开源这个引擎,以便给人们拒绝[供应商锁定](https://blog.ppresume.com/posts/no-vendor-lock-in)的权利和自由。
## 开始使用
### Docker 用户
如果你是 docker 用户,你很幸运,我们为你准备了一个 [docker 镜像](https://hub.docker.com/r/yamlresume/yamlresume),其中安装了 [yamlresume cli](https://www.npmjs.com/package/yamlresume) 及其所有依赖项,如 [XeTeX](https://www.tug.org/xetex/) 和一些[推荐字体](/zh-cn/docs/installation#font)。
你只需使用以下命令创建一个新简历:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
```
相应地编辑 `my-resume.yml`,然后从 yaml 构建简历到 pdf:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
```
### macOS 用户
假设你正在使用 macOS 并将 [Homebrew](https://brew.sh/) 作为包管理器。如果不是,请查看[安装](/zh-cn/docs/installation)指南,了解你的操作系统的详细说明。
#### 安装 Node.js
你需要[安装 Node.js](https://nodejs.org/en/download/package-manager/all#macos) 20.x 或更新版本。
```sh
brew install node
```
#### 安装排版引擎
YAMLResume 需要一个[排版引擎](/zh-cn/docs/installation#typesetting-engine)来生成 PDF。目前它支持两个排版引擎:
* [XeTeX](/zh-cn/docs/installation#xetex)
* [Tectonic](/zh-cn/docs/installation#tectonic)
<>
```sh
brew install mactex
```
```sh
brew install tectonic
```
>
#### 安装 YAMLResume
安装 `yamlresume` 非常简单。你可以使用你喜欢的 Node.js 包管理器来安装它:
<>
```sh
npm install -g yamlresume
```
```sh
pnpm add -g yamlresume
```
```sh
yarn global add yamlresume
```
```console
bun add -g yamlresume
```
>
你也可以通过 [Homebrew 来安装 `yamlresume`](http://formulae.brew.sh/formula/yamlresume):
```sh
brew install yamlresume
```
验证 `yamlresume` 安装成功:
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build a resume on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
#### \[可选] 安装字体
##### Linux Libertine 字体
我们还建议安装 [Linux Libertine 字体](/zh-cn/docs/installation#linux-libertine)以获得最佳的 PDF 输出外观,但这是可选的。
```sh
brew install font-linux-libertine
```
##### Noto 字体
如果你需要创建 CJK(中文、日文、韩文)简历,我们建议你安装 [Noto 字体](https://fonts.google.com/noto):
```sh
brew install font-noto-sans-cjk font-noto-serif-cjk
```
#### 创建你的第一个 YAML 简历
好的,我们已经准备好了一切,现在可以使用 `yamlresume new` 创建一个 yaml 简历:
```console
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
相应地编辑 `resume.yml`,然后你可以使用 `yamlresume build` 生成 PDF:
```console
$ yamlresume build my-resume.yml
◐ Generating resume PDF file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resumep PDF file successfully.
```
你还可以使用 `yamlresume dev` 在文件更改时构建简历:
```console
$ yamlresume dev my-resume.yml
◐ Generating resume PDF file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume PDF file successfully.
◐ Watching file changes: my-resume.yml...
```
## 示例简历
这是一个为[软件工程师](https://github.com/yamlresume/yamlresume/blob/main/packages/cli/resources/resume.yml)量身定制的两页示例简历的完整 YAML 代码:
```yml lineNumbers
---
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@ppresume.com
url: https://ppresume.com/gallery
# All summary fields supports a limited rich text capabilities in markdown
# syntax:
#
# - bold, (e.g, `**bold**`)
# - italic, (e.g, `*italic*`)
# - ordered list, unordored list and nested sub list
# - links (e.g. `[link](https://ppresume.com)`)
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
city: Sacramento
region: California
country: United States
postalCode: "95814"
profiles:
- network: Line
url: https://line.com/PPResumeX
username: PPResumeX
- network: Twitter
url: https://twitter.com/PPResumeX
username: PPResumeX
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
# Valid degree options:
#
# - 'Middle School'
# - 'High School'
# - 'Diploma'
# - 'Associate'
# - 'Bachelor'
# - 'Master'
# - 'Doctor'
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
# Should be a valid date string that can be parsed by `new Date(dateStr)`
# in JavaScript, eg. '2020-01', '2020-02-03', 'Jul 1, 2023' etc.
#
# The date part would be removed in the final output as most of the time
# people won't really care about the exact date for your working
# experience or education background, etc.
# ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/Date
startDate: Sep 1, 2016
# Leave endDate blank to indicate "Present"
endDate: Jul 1, 2020
courses:
- Discrete Methods in Computer Science
- Programming Language Concepts
- Data Structures and Object-Oriented Design
- Operating Systems
- Computer Architecture
- Database Systems
- Computer Networking
- Introduction to the Theory of Computing
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
work:
- name: PPResume
url: https://ppresume.com
startDate: Dec 1, 2022
endDate: ""
position: Senior Software Engineer
summary: |
- Developed and implemented efficient and scalable code, ensuring high-quality and maintainable web applications
- Collaborated with cross-functional teams to gather project requirements and translate them into technical solutions
- Conducted thorough testing and debugging to identify and resolve any issues or bugs in the software
- Actively participated in code reviews, providing valuable feedback to improve code quality and adherence to best practices
- Mentored and guided junior developers, fostering a collaborative and growth-oriented team environment
keywords:
- Scalibility
- Growth
- Quality
- Mentorship
- name: PPResume
url: https://ppresume.com
startDate: Sep 1, 2020
endDate: Dec 1, 2022
position: Software Engineer
summary: |
- Created reusable React components to ensure code efficiency and maintainability
- Integrated with RESTful APIs to fetch and display dynamic data on the frontend
- Implemented client-side routing using React Router for smooth navigation between pages
- Actively participated in Agile development methodologies, attending daily stand-up meetings and sprint planning sessions
keywords:
- RESTful
- React
- Agile
languages:
# Valid language fluency options:
#
# - 'Elementary Proficiency'
# - 'Limited Working Proficiency'
# - 'Minimum Professional Proficiency'
# - 'Full Professional Proficiency'
# - 'Native or Bilingual Proficiency'
- language: English
fluency: Native or Bilingual Proficiency
keywords:
- TOEFL 110
- IELTS 7.5
- language: Chinese
fluency: Elementary Proficiency
keywords: []
skills:
# Valid skill level options:
#
# - 'Novice'
# - 'Beginner'
# - 'Intermediate'
# - 'Advanced'
# - 'Expert'
# - 'Master'
- name: Web Development
level: Expert
keywords:
- Python
- Ruby
- CSS
- React
- JavaScript
- name: DevOps
level: Intermediate
keywords:
- Python
- Kubernetes
- Docker
- Shell
- Ansible
- name: Design
level: Intermediate
keywords:
- Sketch
- Figma
- Photoshop
awards:
- title: Dean's List
awarder: University of Southern California
date: Oct 2016
summary: |
Awarded to students who achieve a high academic standing by maintaining a specified grade point average (GPA) during a semester.
certificates:
- name: AWS Certified Developer - Associate
url: https://aws.amazon.com/certification/
issuer: AWS
date: Mar 2021
publications:
- publisher: ACM Transactions on Interactive Intelligent Systems
url: https://dl.acm.org/journal/tiis
name: Enhancing Human-Computer Interaction through Augmented Reality
releaseDate: Dec 2017
summary: |
- Explores the potential of augmented reality (AR) in improving interaction between humans and computers
- Highlights benefits of AR in various areas such as gaming, education, healthcare, and design
- Discusses challenges and future directions of AR technology in enhancing user experience
references:
- name: Dr. Amanda Reynolds
phone: "(555) 123-4567"
relationship: Computer Science Professor
email: amanda.reynolds@usc.edu
summary: |
Andy Dufresne shows exceptional problem-solving skills and a solid understanding of programming concepts, he would bring immense value to any team or organization he becomes a part of.
projects:
- name: EduWeb
url: https://www.eduweb.xyz/
description: A web-based educational platform for interactive learning
startDate: Sep 2016
endDate: Dec 2016
summary: |
- Designed to enhance online learning experiences
- Facilitates students' engagement and collaboration through interactive features and user-friendly interface
- Offers a wide range of courses across various subjects
- Aims to improve the way students learn through the power of the web
keywords:
- Education
- Online Learning
- HCI
interests:
- name: Sports
keywords:
- Soccer
- Swimming
- Bicycling
- Hiking
- name: Music
keywords:
- Piano
- Guitar
volunteer:
- organization: USC Computer Science and Engineering Society
url: https://www.usccsesociety.org/
position: Tech Mentor
startDate: Sep 2015
endDate: Jul 2023
summary: |
- Volunteered as a Tech Mentor at USC Computer Science and Engineering Society
- Provided guidance and assistance to fellow students in their technical projects and coursework
- Assisted in organizing workshops, coding competitions, and networking events for the society members
- Contributed to fostering a collaborative and supportive environment within the student community
locale:
# Use `yamlresume languages list` to get the list of supported languages
language: en
layouts:
- engine: latex
page:
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
showPageNumbers: true
# Use `yamlresume templates list` to get the list of available templates
template: moderncv-banking
typography:
# LaTeX engine only supports 10pt, 11pt, and 12pt
fontSize: 11pt
- engine: markdown
```
这是[生成的 PDF](https://github.com/yamlresume/yamlresume/blob/main/packages/cli/resources/resume.pdf) 的截图:
你可以查看 [PPResume 画廊](https://ppresume.com/gallery)获取更多示例,支持不同的[模板](https://ppresume.com/gallery/templates)和[多语言](https://ppresume.com/gallery/languages)。
## 了解更多
# 安装
URL: (/zh-cn/docs/installation)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
YAMLResume 是一个 Node.js 工具,在底层,它将您的简历从 YAML 格式转换为 LaTeX 代码,然后调用 LaTeX 排版引擎来编译生成的 LaTeX 代码为 PDF。此外,为了获得最佳的 PDF 输出,我们还建议安装一些字体。简而言之,您需要安装以下内容才能开始使用 YAMLResume:
* Node.js
* [yamlresume 包](https://www.npmjs.com/package/yamlresume)
* 排版引擎
* \[可选] 一些字体
这听起来有点复杂,但不用担心,我们会支持您。
## Docker 用户
如果您是 docker 用户,您很幸运,我们为您提供了一个 [docker 镜像](https://hub.docker.com/r/yamlresume/yamlresume)。这个镜像包含了所有预打包的内容,包括:
* [Node.js](/zh-cn/docs/installation#nodejs)
* [yamlresume CLI](/zh-cn/docs/installation#yamlresume)
* [XeTeX](/zh-cn/docs/installation#xetex)
* [一些推荐的字体](/zh-cn/docs/installation#font)
您可以使用以下命令立即创建新简历:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
```
这个命令将在您的当前目录中创建一个名为 `my-resume.yml` 的新简历。步骤:
1. `docker run ... yamlresume/yamlresume` - 从 `yamlresume/yamlresume` 镜像运行新容器,如果此镜像在您的本地机器中不存在,它将从 [Docker Hub](https://hub.docker.com/r/yamlresume/yamlresume) 拉取。
2. `--rm` - 在退出时自动删除容器
3. `-v $(pwd):/home/yamlresume` - 将当前目录 (`$(pwd)`) 挂载到容器中的 `/home/yamlresume`,允许容器访问本地文件
4. `new my-resume.yml` - 运行 yamlresume CLI [new](/zh-cn/docs/cli#new) 子命令来创建文件名为 `my-resume.yml` 的新简历
相应地编辑 `my-resume.yml`,然后从 yaml 构建简历到 pdf:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
```
基本上,您可以以这种方式调用所有 `yamlresume` [CLI 子命令](/cli)——只需在 `yamlresume/yamlresume` 后附加子命令,然后按照相应的使用指南进行操作。
这里的 `-v` 标志非常重要,因为它将当前目录 (`$(pwd)`) 挂载到容器中的 `/home/yamlresume`,允许本地目录和容器之间进行双向文件同步。
如果您在从 [Docker Hub](https://hub.docker.com/r/yamlresume/yamlresume) 拉取 `yamlresume/yamlresume` 镜像时遇到问题,不用担心,我们为您提供了 [github 镜像](https://github.com/yamlresume/yamlresume/pkgs/container/yamlresume)。
您可以通过以下方式获取 [ghcr 镜像](https://github.com/yamlresume/yamlresume/pkgs/container/yamlresume):
```sh
docker pull ghcr.io/yamlresume/yamlresume
```
### 权限问题
有时您在运行 Docker 容器时可能会遇到[权限问题](https://github.com/yamlresume/yamlresume/issues/24),因为 `yamlresume/yamlresume` 镜像是使用 `USER yamlresume` 指令构建的,默认情况下以较少的权限运行。
解决此问题有两种方法:
1. 使用您的主机用户名/组 ID 来运行容器:
```sh
docker run --rm -v $(pwd):/home/yamlresume -u $(id -u):$(id -g) yamlresume/yamlresume new my-resume.yml
```
这是运行容器的推荐方式。只要您的主机用户有访问当前目录的权限,您就可以使用您的主机用户名/组 ID 运行容器。
2. 使用 `-u root` 以 root 访问权限运行容器:
```sh
docker run --rm -v $(pwd):/home/yamlresume -u root yamlresume/yamlresume new my-resume.yml
```
这是最不推荐的运行容器的方式。不推荐这样做因为它可能导致安全问题,所以您只应该在确信自己在做什么的情况下才这样做。
最后但同样重要的是,如果您在 GitHub Actions 中运行 `yamlresume` Docker 容器,那么根据 [GitHub 的文档](https://docs.github.com/en/actions/reference/runners/github-hosted-runners#docker-container-filesystem),可能需要 root 访问权限:
> 注意:GitHub Actions 必须由默认的 Docker 用户 (root) 运行。确保您的 Dockerfile 不设置 USER 指令,否则您将无法访问 GITHUB\_WORKSPACE。
参考:[Understanding the Docker USER Instruction](https://www.docker.com/blog/understanding-the-docker-user-instruction/)
## 非 Docker 用户
如果您不是 docker 用户,请按照下面的相应说明根据您的操作系统安装 yamlresume CLI 和所有必要的依赖项。在撰写本文时,我们的指南涵盖了 macOS、Windows 和一些 Linux 发行版(Ubuntu 和基于 RHEL 的发行版)。
### Node.js
需要 Node.js 20.x 或更新版本。
理论上 `yamlresume` 应该可以与 Node.js 18 一起工作,但是强烈建议使用 Node.js
20 或更新版本,因为 Node.js 18 LTS 计划在 [2025 年 4 月 30
日](https://nodejs.org/en/blog/release/v18.20.8) 到达生命周期结束。
在不同的操作系统上可能有 100 多种安装 Node.js 的方法,您可以查看官方的 [Node.js 下载](https://nodejs.org/en/download) 来开始。
我们建议使用[包管理器](https://nodejs.org/en/download/package-manager/all)来安装 Node.js。
对于 [Homebrew](https://brew.sh/) 用户:
```sh
brew install node
```
对于 [Chocolatey](https://chocolatey.org/) 用户:
```sh
choco install nodejs.install
```
对于 Ubuntu 24.10 或更新版本:
```sh
sudo apt install nodejs
```
对于 Ubuntu 24.04 或更旧版本,请查看 [NodeSource](https://downloads.nodesource.com/#debian) 来获取 Node.js 20 或更新版本。
对于基于 RHEL 的 linux,如 Fedora、AlmaLinux、Rocky Linux 等:
```sh
sudo dnf install nodejs
```
### YAMLResume CLI
安装 `yamlresume` 非常简单。您可以使用您喜欢的 Node.js 包管理器来安装它:
<>
```console
npm install -g yamlresume
```
```console
pnpm add -g yamlresume
```
```console
yarn global add yamlresume
```
```console
bun add -g yamlresume
```
>
如果您使用的是 macOS 并且安装了 [Homebrew](https://brew.sh),也可以通过 [Homebrew 安装
yamlresume](http://formulae.brew.sh/formula/yamlresume):
```sh
brew install yamlresume
```
验证 `yamlresume` 是否安装成功:
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build a resume on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
如果您只是想试用 `yamlresume` 而不安装它,您可以使用
`npx`、`pnpx` 或其他类似工具:
<>
```console
npx yamlresume help
```
```console
yarn dlx yamlresume help
```
```console
pnpx yamlresume help
```
```console
bun exec yamlresume help
```
>
### 排版引擎
在底层,`yamlresume` 完成编译器的工作,将 YAML 简历解析为 [AST](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/compiler/ast.ts),然后[将 AST 转换为 LaTeX 代码](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/compiler/codegen/latex.ts)。
作为一个小型编译器,`yamlresume` 依赖排版引擎来编译生成的 LaTeX 代码为 PDF。因此,您必须首先安装排版引擎,然后才能使用 `yamlresume` 生成简历 PDF。
YAMLResume 目前支持两个排版引擎:[XeTeX](#xetex) 和
[Tectonic](#tectonic)。
在撰写本文时,[LaTeX](https://www.latex-project.org/) 仍然是 生成专业外观 PDF
的最佳排版引擎选择。 [Typst](https://typst.app/)
是一个很好的替代品,但它仍然处于早期阶段,其 CJK
支持还不成熟,不适合生产使用。
之前我写了一篇文章[关于排版引擎](https://blog.ppresume.com/posts/on-typesetting-engines),解释了我创立
[PPResume](https://ppresume.com) 时为什么选择 LaTeX 而不是其他排版引擎的原因。
#### XeTeX
[XeTeX](https://tug.org/xetex/) 是一个使用 [Unicode](https://en.wikipedia.org/wiki/Unicode) 并支持现代字体技术(如 [OpenType](https://en.wikipedia.org/wiki/OpenType)、[Graphite](https://fonts.adobe.com/fonts/graphite) 和 [Apple Advanced Typography (AAT)](https://en.wikipedia.org/wiki/Apple_Advanced_Typography))的 [TeX](https://en.wikipedia.org/wiki/TeX) 排版引擎。
它是一个非常成熟、稳定的排版引擎,被许多学术和科学人员广泛使用。
最简单的方法是安装 **MacTeX** 发行版。
它包括 XeTeX 以及许多其他与 TeX 相关的程序和包。您可以从 [MacTeX 网站](https://www.tug.org/mactex/) 下载它,或通过 homebrew 安装:
```sh
# install the full mactex
brew install mactex
# or if you want to save some disk space
brew install mactex-no-gui
```
[MiKTeX 发行版](https://miktex.org) 是 Windows 的热门选择,包括 XeTeX。您可以从 [MiKTeX 网站](https://miktex.org/download) 下载它。
或者,您可以为 Windows 安装 **TeX Live**,它也包括 XeTeX。从 [TeX Live 网站](https://www.tug.org/texlive/acquire-netinstall.html) 下载。
大多数 Linux 发行版通过其包管理器提供 TeX Live。XeTeX 通常包含在 `texlive-xetex` 包或更大的 `texlive-full` 元包中。
对于 Ubuntu,如果您的网络良好并且有大约 10GB 的磁盘空间,您可以安装完整的 texlive 发行版:
```sh
sudo apt install texlive-full
```
否则,您可以安装最低要求的包:
```sh
sudo apt install texlive-xetex texlive-fonts-extra texlive-lang-all
```
对于基于 RHEL 的 linux,如 Fedora、AlmaLinux、Rocky Linux,如果您有足够的磁盘空间和良好的网络,您可以安装完整的 TeX Live 发行版:
```sh
sudo dnf install texlive-scheme-full
```
否则您可以安装最低要求的包:
```sh
sudo dnf install \
texlive-scheme-medium \
texlive-moderncv \
texlive-ctex \
texlive-academicons
```
或者,您始终可以直接从 [TeX Live 网站](https://www.tug.org/texlive/acquire-netinstall.html) 使用他们的安装程序安装 TeX Live,这适用于不同的 Linux 发行版。
验证 XeTeX 是否安装成功:
```console
$ xetex -v
XeTeX 3.141592653-2.6-0.999994 (TeX Live 2022)
kpathsea version 6.3.4
Copyright 2022 SIL International, Jonathan Kew and Khaled Hosny.
There is NO warranty. Redistribution of this software is
covered by the terms of both the XeTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the XeTeX source.
Primary author of XeTeX: Jonathan Kew.
Compiled with ICU version 70.1; using 70.1
Compiled with zlib version 1.2.11; using 1.2.11
Compiled with FreeType2 version 2.11.1; using 2.11.1
Compiled with Graphite2 version 1.3.14; using 1.3.14
Compiled with HarfBuzz version 3.4.0; using 3.4.0
Compiled with libpng version 1.6.37; using 1.6.37
Compiled with pplib version v2.05 less toxic i hope
Using Mac OS X Core Text and Cocoa frameworks
```
#### Tectonic
[Tectonic](https://tectonic-typesetting.github.io) 是一个现代化、完整、自包含的 [TeX](https://en.wikipedia.org/wiki/TeX)/[LaTeX](https://www.latex-project.org/) 引擎,由 [XeTeX](https://tug.org/xetex/) 和 [TeXLive](https://www.tug.org/texlive/) 提供支持。
完整的 TeX Live 发行版通常占用几 GB 的磁盘空间,而 tectonic 的初始安装只占用 10+ MB。它自动下载支持文件,所以您不必安装完整的 LaTeX 发行版。当您开始使用新的 LaTeX 包时,Tectonic 只需下载它需要的文件并继续处理。
Tectonic 提供官方[安装指南](https://tectonic-typesetting.github.io/en-US/install.html),但这只会将 tectonic 放在您运行安装命令的目录中,`yamlresume` 需要在您的 `$PATH` 中有一个全局的 `tectonic` 命令,所以您需要通过一些 shell 技巧自己解决这个问题。
如果您是 macOS 用户,您很幸运,因为 Homebrew 提供预构建的包:
```sh
brew install tectonic
```
根据我的经验,tectonic 与官方 XeTeX 仍然存在一些小的兼容性问题,所以如果您不介意完整 TeX Live 发行版的长下载时间,XeTeX 仍然是这里的推荐选择。
### 字体
#### Linux Libertine
YAMLResume 采用 [Linux Libertine](https://www.dafont.com/linux-libertine.font) 作为拉丁字符的默认字体。强烈建议安装它以获得最佳的 PDF 输出。
对于 Homebrew 用户:
```sh
brew install font-linux-libertine
```
否则您可以从网站下载最新版本的 [Linux Libertine](https://www.dafont.com/linux-libertine.font) 并使用 macOS 的 [Font Book](https://support.apple.com/en-gb/guide/font-book/fntbk1000/mac) 安装字体。
从网站下载最新版本的 [Linux
Libertine](https://www.dafont.com/linux-libertine.font)
并解压缩档案并安装字体。
对于 Ubuntu 用户,Linux Libertine 字体已包含在 `texlive-fonts-extra` 包中,但是,如果您想手动安装它,您可以这样做:
```sh
sudo apt install fonts-linuxlibertine
```
对于基于 RHEL 的 linux,如 Fedora、AlmaLinux、Rocky Linux,您可以通过以下方式安装 Linux Libertine 字体:
```sh
sudo dnf install linux-libertine-fonts
```
#### Google Noto
如果您需要 CJK 简历,您还需要安装 [Google Noto 字体](https://fonts.google.com/noto/) 以获得[最佳的 unicode 覆盖](https://github.com/ppresume/community/issues/63)。
对于 Homebrew 用户:
```sh
brew install font-noto-sans-cjk font-noto-serif-cjk
```
下载 Noto
字体并按照[官方指南](https://fonts.google.com/noto/use#use-noto-fonts)在
Windows 上安装。
对于 Ubuntu 用户:
```sh
sudo apt install fonts-noto-cjk fonts-noto-cjk-extra
```
对于基于 RHEL 的 linux,如 Fedora、AlmaLinux、Rocky Linux,您可以通过以下方式安装 Noto 字体:
```sh
sudo dnf install google-noto-sans-cjk-fonts google-noto-serif-cjk-fonts
```
## 故障排除
如果您在安装 `yamlresume` 或其依赖项时遇到问题,您可以[提出问题](https://github.com/yamlresume/yamlresume/issues/new)。
您可以通过向 `yamlresume` 或其子命令传递 `--verbose` 标志来启用详细日志记录。
### 感到疲惫?
如果您对安装过程感到疲惫,您可以尝试 [PPResume](https://ppresume.com),这是一个托管的商业简历构建器解决方案,它开源了 YAMLResume。
# 架构
URL: (/zh-cn/docs/compiler/architecture)
像任何编译器一样,YAMLResume 也包含一个管道,通过多个阶段将简历数据从输入转换为输出。
* **输入阶段**:接受 YAML 和 JSON 简历文件作为输入。
* **解析阶段**:解析并验证输入文件中的简历内容和布局。
* **转换阶段**:使用管道转换简历内容和布局数据。
* **代码生成阶段**:使用 LaTeX 模板渲染简历内容和布局数据。
* **输出阶段**:生成最终的 PDF 文档。
以下是 YAMLResume 的架构图:
## 数据处理管道
转换管道负责处理来自 YAML 文件的原始简历数据,并为其准备 LaTeX 渲染。它在两个主要阶段运行:内容转换和布局转换:
* 内容转换阶段处理所有文本数据,应用本地化规则,转义 LaTeX 特殊字符,并计算派生值。
* 布局转换阶段将用户提供的布局设置与默认值合并,并应用特定于区域的排版规则。
对于像这样的长数据处理管道,代码比文字更有说服力,如果您对实现感兴趣,可以查看 [transform.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/preprocess/transform.ts) 了解详情。
# 编译器
URL: (/zh-cn/docs/compiler)
## 概述
YAMLResume 是一个简历编译器,使用户能够使用 YAML 创建简历,然后生成具有精确排版的专业 PDF 文档。
YAMLResume 采用[关注点分离](https://en.wikipedia.org/wiki/Separation_of_concerns)作为核心设计原则,这使用户能够专注于简历内容,而无需过多担心样式/布局,在不更改内容的情况下交换模板,并在不同输出格式之间保持一致性。
也就是说,用户可以而且应该只专注于简历的内容,YAMLResume 将处理其余的事情,如排版、布局、本地化、PDF 生成等。
关键功能:
* 定义了一个[标准结构化 YAML 格式](/zh-cn/docs/compiler/types),涵盖[内容](/zh-cn/docs/compiler/types#resumecontent)和[布局](/zh-cn/docs/compiler/types#resumecontent)
* 使用 [zod](https://zod.dev) 或 [JSON Schema](https://json-schema.org) 验证简历内容
* 使用[管道](/zh-cn/docs/compiler/architecture#data-processing-pipeline)转换简历内容数据
* 使用 [LaTeX 模板](/zh-cn/docs/layouts/latex/templates)渲染内容
* 通过 [XeTeX](/zh-cn/docs/installation#xetex) 或 [Tectonic](/zh-cn/docs/installation#tectonic) 编译引擎生成 PDF
* 支持[多种语言](/zh-cn/docs/locale)和本地化
* 提供 [CLI](/zh-cn/docs/cli) 命令进行项目管理和构建自动化
查看以下实时演示,了解为什么我称 YAMLResume 为**简历编译器**:
[](https://asciinema.org/a/728098)
## 了解更多
# 类型
URL: (/zh-cn/docs/compiler/types)
本文档概述了定义 YAMLResume 简历结构的 TypeScript 类型。作为 TypeScript 项目,YAMLResume 采用静态类型来确保数据一致性。此文件提供了用于表示简历信息的核心数据结构概述,包括个人详细信息、教育、经验、技能等。
您可以查看
[types/index.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/models/types/index.ts)
了解真实来源的详细信息。
理解这些类型对于想要自定义或扩展 YAMLResume 功能的贡献者和开发者至关重要。
本文档为寻求创建有效 YAMLResume 的用户提供权威参考,阐明可选和必填字段之间的区别。为了确保在 YAMLResume 中成功编译,最小简历必须包含以下基本字段:
* `content.basics.name`
* `education[number].area`
* `education[number].degree`
* `education[number].institution`
* `education[number].startDate`
因此,理论上最小可行简历如下所示:
```yml lineNumbers
content:
basics:
name: Xiao Hanyu
education:
- area: Computer Science and Technology
degree: Bachelor
institution: Zhejiang University
startDate: Sep, 2007
```
## Resume
定义整体简历结构,包括内容和布局。
| 属性 | 类型 | 必需 | 描述 |
| ---------- | --------------------- | -- | ------------ |
| `content` | [`Content`](#content) | ✅ | 定义整个简历内容的结构。 |
| `layouts?` | [`Layouts`](#layouts) | ⬜ | 定义整体布局配置。 |
| `locale?` | [`Locale`](#locale) | ⬜ | 定义整体区域配置。 |
以下是简历结构的高级图表:
### Content
定义整个简历内容的结构。
| 属性 | 类型 | 必需 | 描述 |
| --------------- | --------------------------------------- | -- | --------------- |
| `basics` | [`BasicsItem`](#basicsitem) | ✅ | 表示核心个人和联系信息。 |
| `education` | [`EducationItem[]`](#educationitem) | ✅ | 包含教育经历集合。 |
| `awards?` | [`AwardItem[]`](#awarditem) | ⬜ | 包含奖项和认可集合。 |
| `certificates?` | [`CertificateItem[]`](#certificateitem) | ⬜ | 包含认证和证书集合。 |
| `interests?` | [`InterestItem[]`](#interestitem) | ⬜ | 包含兴趣、爱好或个人活动集合。 |
| `languages?` | [`LanguageItem[]`](#languageitem) | ⬜ | 包含语言能力集合。 |
| `location?` | [`LocationItem`](#locationitem) | ⬜ | 包含位置信息。 |
| `projects?` | [`ProjectItem[]`](#projectitem) | ⬜ | 包含项目集合。 |
| `profiles?` | [`ProfileItem[]`](#profileitem) | ⬜ | 包含在线个人资料集合。 |
| `publications?` | [`PublicationItem[]`](#publicationitem) | ⬜ | 包含出版物集合。 |
| `references?` | [`ReferenceItem[]`](#referenceitem) | ⬜ | 包含推荐人集合。 |
| `skills?` | [`SkillItem[]`](#skillitem) | ⬜ | 包含技能集合。 |
| `volunteer?` | [`VolunteerItem[]`](#volunteeritem) | ⬜ | 包含志愿者经历集合。 |
| `work?` | [`WorkItem[]`](#workitem) | ⬜ | 包含工作经历和就业历史集合。 |
#### AwardItem
表示获得的单个奖项、荣誉或认可。
| 属性 | 类型 | 必需 | 描述 |
| ---------- | -------- | -- | --------------------------- |
| `awarder` | `string` | ✅ | 颁发奖项的组织或实体。 |
| `title` | `string` | ✅ | 奖项的名称或标题。 |
| `date?` | `string` | ⬜ | 获奖日期(例如:"2020"、"Oct 2020")。 |
| `summary?` | `string` | ⬜ | 关于奖项的简短描述或详细信息。 |
#### BasicsItem
表示核心个人和联系信息。
| 属性 | 类型 | 必需 | 描述 |
| ----------- | -------- | -- | ----------------------- |
| `name` | `string` | ✅ | 全名。 |
| `email?` | `string` | ⬜ | 电子邮件地址。 |
| `headline?` | `string` | ⬜ | 简短的专业标题或职位(例如:"软件工程师")。 |
| `phone?` | `string` | ⬜ | 电话号码。 |
| `summary?` | `string` | ⬜ | 专业摘要或目标声明。 |
| `url?` | `string` | ⬜ | 个人网站或作品集 URL。 |
#### CertificateItem
表示单个认证、证书或专业资格。
| 属性 | 类型 | 必需 | 描述 |
| -------- | -------- | -- | ------------------------------ |
| `issuer` | `string` | ✅ | 颁发证书的组织。 |
| `name` | `string` | ✅ | 证书名称。 |
| `date?` | `string` | ⬜ | 获得证书的日期(例如:"2021"、"Nov 2021")。 |
| `url?` | `string` | ⬜ | 与证书相关的 URL(例如:验证链接)。 |
#### EducationItem
表示单个教育经历或学位课程。
| 属性 | 类型 | 必需 | 描述 |
| ------------- | ------------------- | -- | -------------------------------------- |
| `area` | `string` | ✅ | 学习领域(例如:"计算机科学")。 |
| `degree` | [`Degree`](#degree) | ✅ | 获得的学位类型。 |
| `institution` | `string` | ✅ | 机构名称。 |
| `startDate` | `string` | ✅ | 学习开始日期(例如:"2016"、"Sep 2016")。 |
| `courses?` | `string[]` | ⬜ | 所修课程列表。 |
| `endDate?` | `string` | ⬜ | 学习结束日期(例如:"2020"、"May 2020"),空值表示"现在"。 |
| `summary?` | `string` | ⬜ | 成就或详细信息的描述。 |
| `score?` | `string` | ⬜ | GPA 或学术成绩。 |
| `url?` | `string` | ⬜ | 与机构或学位相关的 URL。 |
#### InterestItem
表示单个兴趣、爱好或个人活动。
| 属性 | 类型 | 必需 | 描述 |
| ----------- | ---------- | -- | --------------------- |
| `name` | `string` | ✅ | 兴趣类别名称(例如:"阅读"、"摄影")。 |
| `keywords?` | `string[]` | ⬜ | 与兴趣相关的关键词。 |
#### LanguageItem
表示单个语言能力项目。
| 属性 | 类型 | 必需 | 描述 |
| ----------- | ----------------------- | -- | ----------------------- |
| `fluency` | [`Fluency`](#fluency) | ✅ | 语言熟练程度。 |
| `language` | [`Language`](#language) | ✅ | 语言。 |
| `keywords?` | `string[]` | ⬜ | 与语言技能相关的特定关键词(例如:"翻译")。 |
#### LocationItem
表示位置和地址信息。
| 属性 | 类型 | 必需 | 描述 |
| ------------- | --------------------- | -- | -------- |
| `city` | `string` | ✅ | 城市名称。 |
| `address?` | `string` | ⬜ | 街道地址。 |
| `country?` | [`Country`](#country) | ⬜ | 国家代码或名称。 |
| `postalCode?` | `string` | ⬜ | 邮政编码。 |
| `region?` | `string` | ⬜ | 州、省或地区。 |
#### ProfileItem
表示单个在线个人资料或社交媒体存在。
| 属性 | 类型 | 必需 | 描述 |
| ---------- | --------------------- | -- | ---------- |
| `network` | [`Network`](#network) | ✅ | 网络或平台名称。 |
| `username` | `string` | ✅ | 平台上的用户名。 |
| `url?` | `string` | ⬜ | 个人资料的 URL。 |
#### ProjectItem
表示单个项目、作品集作品或技术工作。
| 属性 | 类型 | 必需 | 描述 |
| -------------- | ---------- | -- | ----------------------------- |
| `name` | `string` | ✅ | 项目名称。 |
| `startDate` | `string` | ✅ | 项目开始日期(例如:"2021"、"Jan 2021")。 |
| `summary` | `string` | ✅ | 项目的详细成就。 |
| `description?` | `string` | ⬜ | 项目描述。 |
| `endDate?` | `string` | ⬜ | 项目结束日期(例如:"2022"、"Jul 2022")。 |
| `keywords?` | `string[]` | ⬜ | 项目中使用的关键词或技术。 |
| `url?` | `string` | ⬜ | 与项目相关的 URL(例如:仓库、实时演示)。 |
#### PublicationItem
表示单个出版物、研究工作或学术论文。
| 属性 | 类型 | 必需 | 描述 |
| -------------- | -------- | -- | --------------------------- |
| `name` | `string` | ✅ | 出版物的名称或标题。 |
| `publisher` | `string` | ✅ | 作品的出版商。 |
| `releaseDate?` | `string` | ⬜ | 发布日期(例如:"2023"、"Mar 2023")。 |
| `summary?` | `string` | ⬜ | 出版物的摘要或摘要。 |
| `url?` | `string` | ⬜ | 与出版物相关的 URL(例如:DOI、链接)。 |
#### ReferenceItem
表示单个专业推荐人或推荐。
| 属性 | 类型 | 必需 | 描述 |
| --------------- | -------- | -- | ------------------ |
| `name` | `string` | ✅ | 推荐人姓名。 |
| `summary` | `string` | ✅ | 关于推荐人的简短说明。 |
| `email?` | `string` | ⬜ | 推荐人的电子邮件地址。 |
| `phone?` | `string` | ⬜ | 推荐人的电话号码。 |
| `relationship?` | `string` | ⬜ | 与推荐人的关系(例如:"前经理")。 |
#### SkillItem
表示单个技能、能力或技术能力。
| 属性 | 类型 | 必需 | 描述 |
| ----------- | ----------------- | -- | --------------- |
| `level` | [`Level`](#level) | ✅ | 技能熟练程度。 |
| `name` | `string` | ✅ | 技能名称。 |
| `keywords?` | `string[]` | ⬜ | 与技能相关的特定关键词或技术。 |
#### VolunteerItem
表示单个志愿者经历或社区服务。
| 属性 | 类型 | 必需 | 描述 |
| -------------- | -------- | -- | -------------------------------- |
| `organization` | `string` | ✅ | 组织名称。 |
| `position` | `string` | ✅ | 担任的角色或职位。 |
| `startDate` | `string` | ✅ | 志愿者工作开始日期(例如:"2019"、"Jun 2019")。 |
| `summary` | `string` | ✅ | 职责或成就摘要。 |
| `endDate?` | `string` | ⬜ | 志愿者工作结束日期(例如:"2020"、"Dec 2020")。 |
| `url?` | `string` | ⬜ | 与组织或工作相关的 URL。 |
#### WorkItem
表示单个工作经历或就业职位。
| 属性 | 类型 | 必需 | 描述 |
| ----------- | ---------- | -- | ----------------------------- |
| `name` | `string` | ✅ | 公司或雇主名称。 |
| `position` | `string` | ✅ | 职位或担任的职位。 |
| `startDate` | `string` | ✅ | 就业开始日期(例如:"2021"、"Apr 2021")。 |
| `summary` | `string` | ✅ | 职责和成就摘要。 |
| `endDate?` | `string` | ⬜ | 就业结束日期(例如:"2023"、"Aug 2023")。 |
| `keywords?` | `string[]` | ⬜ | 与角色或使用的技术相关的关键词。 |
| `url?` | `string` | ⬜ | 与公司或工作相关的 URL。 |
### Locale
定义国际化和本地化的区域设置。
| 属性 | 类型 | 必需 | 描述 |
| ----------- | ----------------------------------- | -- | --------------- |
| `language?` | [`LocaleLanguage`](#localelanguage) | ⬜ | 简历内容和模板术语的选定语言。 |
### Layouts
支持多种输出格式的布局项数组。
| 属性 | 类型 | 必需 | 描述 |
| ----------- | -------------------------------------------------------------------- | -- | --------- |
| `layouts[]` | [`LatexLayout`](#latexlayout) \| [`MarkdownLayout`](#markdownlayout) | ⬜ | 多个输出布局配置。 |
#### 通用布局类型
##### Margins
定义文档布局的页边距设置。
| 属性 | 类型 | 必需 | 描述 |
| --------- | -------- | -- | ----------------- |
| `top?` | `string` | ⬜ | 上边距值(例如:"2.5cm")。 |
| `bottom?` | `string` | ⬜ | 下边距值(例如:"2.5cm")。 |
| `left?` | `string` | ⬜ | 左边距值(例如:"1.5cm")。 |
| `right?` | `string` | ⬜ | 右边距值(例如:"1.5cm")。 |
##### Sections
定义分节别名设置以自定义分节名称。
| 属性 | 类型 | 必需 | 描述 |
| ---------- | --------------------------- | -- | -------------------- |
| `aliases?` | `Record` | ⬜ | 用于分节名称的自定义别名,覆盖默认翻译。 |
| `order?` | `OrderableSectionID[]` | ⬜ | 最终输出中分节的自定义顺序。 |
#### HtmlLayout
HTML 布局配置。
| 属性 | 类型 | 必需 | 描述 |
| ------------- | ----------------------------------- | -- | ------------ |
| `engine` | `'html'` | ✅ | 生成简历的引擎。 |
| `advanced?` | [`HtmlAdvanced`](#htmladvanced) | ⬜ | 定义高级布局配置选项。 |
| `sections?` | [`Sections`](#sections) | ⬜ | 定义分节自定义设置。 |
| `template?` | [`HtmlTemplate`](#htmltemplate) | ⬜ | 定义选定的模板。 |
| `typography?` | [`HtmlTypography`](#htmltypography) | ⬜ | 定义文档格式的排版设置。 |
##### HtmlAdvanced
定义 HTML 的高级配置选项。
| 属性 | 类型 | 必需 | 描述 |
| -------------- | --------- | -- | ------------------ |
| `showIcons?` | `boolean` | ⬜ | 是否显示链接和社交主页的图标。 |
| `title?` | `string` | ⬜ | HTML 文档的自定义标题。 |
| `footer?` | `string` | ⬜ | HTML 文档的自定义页脚。 |
| `description?` | `string` | ⬜ | HTML 文档的 Meta 描述。 |
| `keywords?` | `string` | ⬜ | HTML 文档的 Meta 关键词。 |
##### HtmlTypography
定义 HTML 文档格式的排版设置。
| 属性 | 类型 | 必需 | 描述 |
| ------------- | ------------------------------- | -- | ---------------- |
| `fontFamily?` | `string` | ⬜ | 要使用的逗号分隔的字体家族列表。 |
| `fontSize?` | [`HtmlFontSize`](#htmlfontsize) | ⬜ | 文档的基础字体大小。 |
#### LatexLayout
LaTeX 布局配置。
| 属性 | 类型 | 必需 | 描述 |
| ------------- | ------------------------------------- | -- | ------------- |
| `advanced?` | [`LatexAdvanced`](#latexadvanced) | ⬜ | 定义高级配置选项。 |
| `engine` | `'latex'` | ✅ | 生成简历的引擎。 |
| `page?` | [`LatexPage`](#latexpage) | ⬜ | 定义文档演示的页面级设置。 |
| `sections?` | [`Sections`](#sections) | ⬜ | 定义分节自定义设置。 |
| `template?` | [`LatexTemplate`](#latextemplate) | ⬜ | 定义选定的模板。 |
| `typography?` | [`LatexTypography`](#latextypography) | ⬜ | 定义文档格式的排版设置。 |
##### LatexAdvanced
定义 LaTeX 的高级配置选项。
| 属性 | 类型 | 必需 | 描述 |
| ------------ | ------------------------------------ | -- | ------------------- |
| `fontspec?` | `{ numbers?: LatexFontspecNumbers }` | ⬜ | LaTeX fontspec 包配置。 |
| `showIcons?` | `boolean` | ⬜ | 是否显示链接和社交主页的图标。 |
##### LatexPage
定义 LaTeX 的文档演示页面级设置。
| 属性 | 类型 | 必需 | 描述 |
| ------------------ | ------------------------- | -- | -------- |
| `margins?` | [`Margins`](#margins) | ⬜ | 定义页边距设置。 |
| `paperSize?` | [`PaperSize`](#papersize) | ⬜ | 定义纸张大小。 |
| `showPageNumbers?` | `boolean` | ⬜ | 是否显示页码。 |
##### LatexTypography
定义 LaTeX 的文档格式排版设置。
| 属性 | 类型 | 必需 | 描述 |
| ------------- | --------------------------------- | -- | ---------------- |
| `fontSize?` | [`LatexFontSize`](#latexfontsize) | ⬜ | 文档的基础字体大小。 |
| `fontFamily?` | `string` | ⬜ | 要使用的逗号分隔的字体家族列表。 |
| `links?` | `{ underline?: boolean }` | ⬜ | 链接样式设置。 |
#### MarkdownLayout
Markdown 布局配置。
| 属性 | 类型 | 必需 | 描述 |
| ----------- | ----------------------- | -- | ---------- |
| `engine` | `'markdown'` | ✅ | 生成简历的引擎。 |
| `sections?` | [`Sections`](#sections) | ⬜ | 定义分节自定义设置。 |
## 枚举类型
### 内容 Enum
#### Country
世界上所有可能国家和地区的联合类型。
#### Degree
所有可能学位的联合类型。
* `Associate`
* `Bachelor`
* `Diploma`
* `Doctor`
* `High School`
* `Master`
* `Middle School`
#### Fluency
所有可能语言熟练程度的联合类型。
* `Elementary Proficiency`
* `Full Professional Proficiency`
* `Limited Working Proficiency`
* `Minimum Professional Proficiency`
* `Native or Bilingual Proficiency`
#### Language
所有支持语言的联合类型。
#### Level
所有可能技能熟练程度的联合类型。
* `Advanced`
* `Beginner`
* `Expert`
* `Intermediate`
* `Master`
* `Novice`
#### Network
所有可能社交网络选项的联合类型。
### 布局 Enum
#### HtmlFontSize
所有可能 HTML 字体大小选项的联合类型。
HTML 引擎支持 14px 到 20px 的字体大小:
* `14px`、`15px`、`16px` (默认)、`17px`、`18px`、`19px`、`20px`
#### HtmlTemplate
所有可能 HTML 模板选项的联合类型。
另请参阅:[模板](/zh-cn/docs/layouts/html/templates)
* `calm`
#### LatexFontSize
所有可能字体大小选项的联合类型。
目前只支持 3 个选项:
* `10pt` - 10pt 字体大小(默认)
* `11pt` - 11pt 字体大小
* `12pt` - 12pt 字体大小
#### LatexFontspecNumbers
所有可能 latex fontspec 数字选项的联合类型。
* `Auto` - 允许根据选定的 `LocaleLanguage` 自动确定样式(默认)
* `Lining` - 标准衬线数字(CJK 语言的默认值)
* `OldStyle` - 不同高度的旧式数字(拉丁语言的默认值)
#### LatexTemplate
所有可能模板选项的联合类型。
另请参阅:[模板](/zh-cn/docs/layouts/latex/templates)
* `moderncv-banking`
* `moderncv-casual`
* `moderncv-classic`
#### PaperSize
所有可能的 LaTeX 纸张大小选项的联合类型。
* `a4` (默认)
* `letter`
### 语言 Enum
#### LocaleLanguage
所有可能区域语言的联合类型。
另请参阅:[多语言](/zh-cn/docs/locale)
* `en`
* `es`
* `zh-hans`
* `zh-hant-hk`
* `zh-hant-tw`
# 内容
URL: (/zh-cn/docs/content)
本章深入探讨您简历的核心:内容。
内容是您简历的核心。它是让您的简历从众多简历中脱颖而出的关键,[布局](/zh-cn/docs/layouts)和设计只是锦上添花。
我们将介绍 YAMLResume 中内容创建的两个关键方面:
* **富文本**:如何使用 Markdown 为您的描述添加格式,如粗体、斜体、链接和列表。
* **多语言支持**:如何创建不同语言的简历,考虑语言和文化差异。
探索以下指南,掌握您简历的内容。
# 富文本
URL: (/zh-cn/docs/content/rich-text)
在 YAMLResume 中,您不会被纯文本限制。不同章节(如 `work`、`education`、`projects` 等)的 `summary` 字段支持有限的 [Markdown](https://en.wikipedia.org/wiki/Markdown) 语法,以允许富文本格式。这使您能够创建更具表现力和可读性的简历内容。
## 支持的语法
以下是您可以使用的 Markdown 功能的快速概述:
### 粗体和斜体
您可以使用粗体或斜体样式来强调文本。
* **粗体:** `**your bold text**`
* **斜体:** `*your italic text*`
* **两者:** `***your bold and italic text***`
### 链接
您可以在文本中嵌入超链接。
* **语法:** `[link text](https://example.com)`
### 列表
支持有序和无序列表,包括嵌套。
YAML 中的 `|`(管道)字符用于创建"字面块标量",这是一种编写[多行字符串](https://stackoverflow.com/a/21699210/2310396)同时保留换行符的方法。这对于像 `summary` 这样的字段特别有用,您可能想要包含列表或段落。在 `|` 下缩进的所有内容都将被视为单个字符串,并保持换行符。
#### 无序列表
每个列表项使用连字符(`-`)或星号(`*`)。
```yml lineNumbers
summary: |
- First item
- Second item
- Third item
```
#### 有序列表
使用数字后跟句点来创建有序列表。
```yml lineNumbers
summary: |
1. First item
2. Second item
3. Third item
```
#### 嵌套列表
您可以缩进列表来创建嵌套结构。
```yml lineNumbers
summary: |
- Team player with a detail-oriented mindset.
- Experienced in databases (SQL, NoSQL).
- Proficient in PostgreSQL and MongoDB.
- Familiar with Redis for caching.
- Strong foundation in data structures and algorithms.
```
## 完整示例
以下是一个 `work` 条目的 `summary` 字段,它结合了多个支持的语法功能:
```yml lineNumbers
---
content:
basics:
# ...
summary: |
This is a sample YAML resume that support limited set of markdown rich text syntax (bold, italics, links, lists):
- Computer Science major with **strong foundation** in data structures, *algorithms*, and software development
1. Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
2. Experiened in databases (SQL, NoSQL), familiar with server-side technologies ([Node.js](https://nodejs.org/en), Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
```
以下是生成的 PDF:
## 不支持什么?
YAMLResume 仅支持上面列出的语法。其他常见的 Markdown 功能,如标题、块引用、图像、水平规则和表格**不受支持,在处理过程中将被忽略**。
# CLI
URL: (/zh-cn/docs/contributing/cli)
YAMLResume 采用单仓库(mono-repo)结构,这意味着所有包都包含在单个仓库中。得益于 [pnpm workspace](https://pnpm.io/workspaces),这种方法简化了包之间的依赖管理和版本控制。
在撰写本文时,YAMLResume 仓库有两个包:
* [yamlresume/cli](https://github.com/yamlresume/yamlresume/tree/main/packages/cli):YAMLResume 的 CLI 接口。
* [yamlresume/core](https://github.com/yamlresume/yamlresume/tree/main/packages/core):包含 YAMLResume 的核心引擎。它处理基于官方[模式](/zh-cn/docs/compiler/schema)的解析、验证和渲染简历。
## yamlresume/core 构建
`yamlresume/cli` 依赖于 `yamlresume/core` 才能正常工作。因此,当您想要测试 `yamlresume/cli` 时,您需要确保 `yamlresume/core` 也已构建并可用。
您可以使用以下命令来做到这一点:
```bash
# build for dev purpose
pnpm core build
# build for production, which will minify the output and generate TypeScript
# DTS files `.d.ts`
pnpm core build:prod
# watch for file changes and build automatically
pnpm core build:watch
```
## yamlresume/cli 构建
一旦 `yamlresume/core` 构建完成,您可以通过两种方式运行 CLI 命令:
1. 本地构建 `yamlresume/cli` 并使用 `dist/cli.js` 运行 node.js:
```bash
pnpm cli build
node packages/cli/dist/cli.js [options]
```
2. 借助 [tsx](https://tsx.is/) 直接运行 `yamlresume/cli`:
```bash
pnpm cli dev [options]
# this command will translate to
# tsx src/cli.ts
```
## 演示
`yamlresume/core` 构建:
```console
$ pnpm core build
> @yamlresume/yamlresume@0.7.1 core /Users/hanyu/work/yamlresume/yamlresume
> pnpm --filter @yamlresume/core build
> @yamlresume/core@0.7.1 build /Users/hanyu/work/yamlresume/yamlresume/packages/core
> tsup
CLI Building entry: src/index.ts
CLI Using tsconfig: tsconfig.json
CLI tsup v8.4.0
CLI Using tsup config: /Users/hanyu/work/yamlresume/yamlresume/packages/core/tsup.config.ts
CLI Target: esnext
CLI Cleaning output folder
ESM Build start
ESM dist/index.js 160.91 KB
ESM ⚡️ Build success in 111ms
```
`yamlresume/cli` 构建:
```console
$ pnpm cli build
> @yamlresume/yamlresume@0.7.1 cli /Users/hanyu/work/yamlresume/yamlresume
> pnpm --filter yamlresume build
> yamlresume@0.7.1 build /Users/hanyu/work/yamlresume/yamlresume/packages/cli
> tsup
CLI Building entry: src/cli.ts
CLI Using tsconfig: tsconfig.json
CLI tsup v8.4.0
CLI Using tsup config: /Users/hanyu/work/yamlresume/yamlresume/packages/cli/tsup.config.ts
CLI Target: esnext
CLI Cleaning output folder
ESM Build start
ESM dist/cli.js 11.36 KB
ESM ⚡️ Build success in 42ms
```
通过 `pnpm cli dev` 使用 tsx 测试 `yamlresume/cli`:
```console
$ pnpm cli dev help
> @yamlresume/yamlresume@0.7.1 cli /Users/hanyu/work/yamlresume/yamlresume
> pnpm --filter yamlresume dev help
> yamlresume@0.7.1 dev /Users/hanyu/work/yamlresume/yamlresume/packages/cli
> tsx src/cli.ts help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
使用 Node.js 测试 `yamlresume/cli`:
```console
$ node packages/cli/dist/cli.js -V
0.7.1
```
# Docker
URL: (/zh-cn/docs/contributing/docker)
除了 [CLI 包](https://www.npmjs.com/package/yamlresume),YAMLResume 还提供了 [docker 镜像](https://hub.docker.com/r/yamlresume/yamlresume)以便于快速上手。
正如我们[文档](/zh-cn/docs/installation#docker-users)中所述,您可以使用以下命令运行 yamlresume docker 容器:
```bash
docker run --rm -v $(pwd):/app -w /app yamlresume/yamlresume
```
但是,如果您感兴趣,可以自定义 Docker 镜像以满足您的需求。
## 构建 Docker 镜像
YAMLResume 的 Docker 镜像在两个阶段中定义和生成:
### Dockerfile.base
[Dockerfile.base](https://github.com/yamlresume/yamlresume/blob/main/Dockerfile.base) 包含运行 YAMLResume 的基础环境,包括所有必要的依赖,如来自 [TeX Live](https://www.tug.org/texlive/) 的 [XeTeX](/zh-cn/docs/installation#xetex) 和 [Google Noto 字体](/zh-cn/docs/installation#google-noto)。
这是一个基础镜像,主要用于加速 GitHub Actions 上的构建过程——通过 `apt install texlive-xetex` 安装 texlive 大约需要 [30 分钟](https://github.com/yamlresume/yamlresume/actions/runs/15438395862),这对于每次 docker 构建来说太长了,所以我们决定构建并[发布这个基础镜像一次](https://hub.docker.com/r/yamlresume/yamlresume-base),并在每次后续构建中重复使用。
通常您不需要自己构建这个镜像,您可以直接重复使用 dockerhub 上发布的镜像。
### Dockerfile
[Dockerfile](https://github.com/yamlresume/yamlresume/blob/main/Dockerfile) 定义了如何构建 `yamlresume/yamlresume` 镜像,它非常简单直接,只是通过 `npm install -g yamlresume@latest` 从 npmjs 安装 `yamlresume`,并根据 Docker 的[安全最佳实践](https://www.docker.com/blog/understanding-the-docker-user-instruction/)创建必要的用户和组。
在本地构建 yamlresume 镜像是一个简单的任务。您只需要运行
```bash
docker build -t yamlresume/yamlresume .
```
如果您遇到为不同架构构建 docker 镜像的问题,您可能需要查看 [docker 多平台构建](https://docs.docker.com/build/building/multi-platform/)。
我在 [X 上写了一些技巧](https://x.com/xiaohanyu1988/status/1931178628785778722),如果您感兴趣可以看看。
# 贡献指南
URL: (/zh-cn/docs/contributing)
首先,感谢您考虑为 YAMLResume 做出贡献!正是像您这样的人让开源变得伟大。我们欢迎任何类型的贡献,不仅仅是代码。您可以帮助:
* 报告错误
* 讨论代码的当前状态
* 提交修复
* 提出新功能
* 改进文档
以下是一些特定工作的快捷方式:
## 开始使用
### 先决条件
* [Node.js](https://nodejs.org/)(版本 >= 20,检查 `.nvmrc` 或 `package.json` engines 字段)
* [pnpm](https://pnpm.io/)(版本 >= 10,检查 `package.json` packageManager 字段)
* Git
### 设置
1. **Fork 仓库:** 在 [YAMLResume GitHub 页面](https://github.com/yamlresume/yamlresume) 点击 "Fork" 按钮。这会创建您自己的项目副本。
2. **克隆您的 fork:**
```bash
git clone https://github.com//yamlresume.git
cd yamlresume
```
3. **安装依赖:**
```bash
pnpm install
```
此命令为整个工作区安装所有必要的依赖。
## 开发工作流
### 构建包
* 一次性构建所有包:
```bash
pnpm build
```
* 构建所有包并监听变化:
```bash
pnpm build:watch
```
* 生产构建(包括类型定义、压缩):
```bash
pnpm build:prod
```
### 运行测试
* 运行所有包的测试:
```bash
pnpm test
```
* 在监听模式下运行测试:
```bash
pnpm test:watch
```
* 运行测试并生成覆盖率报告:
```bash
pnpm test:cov
```
查看[测试](./contributing/test)了解更多详情和用例。
### 代码格式化和代码检查
我们使用 [Biome](https://biomejs.dev/) 进行代码格式化和代码检查。在提交之前,确保您的代码符合项目的样式指南。
* 检查并自动修复问题:
```bash
pnpm check
```
* 运行检查但不应用修复(对 CI 有用):
```bash
pnpm check:ci
```
我们还使用 [addlicense](https://github.com/google/addlicense) 确保源文件具有正确的许可证头。您需要安装它才能运行以下命令。
* 添加缺失的许可证头:
```bash
pnpm license:add
```
* 检查缺失的许可证头:
```bash
pnpm license:check
```
## 提交贡献
### 报告问题
如果您发现错误或有功能请求,请在 GitHub 上[打开一个问题](https://github.com/yamlresume/yamlresume/issues)。提供尽可能多的详细信息,包括:
* 清晰描述性的标题。
* 重现错误的步骤(如果适用)。
* 预期行为和实际行为。
* 截图或代码片段(如果有帮助)。
* 您的环境详情(操作系统、Node 版本、pnpm 版本)。
### Pull Request(PR)
我们喜欢 Pull Request!以下是快速指南:
1. **创建分支:** 从 `main` 分支开始,创建描述性的分支名称(例如,`fix/login-bug`、`feat/new-template-option`)。
```bash
git checkout main
git pull origin main
git checkout -b your-branch-name
```
2. **进行更改:** 编写您的代码或文档改进。
3. **测试您的更改:** 确保所有测试通过:
```bash
pnpm test
```
4. **检查代码质量:** 确保格式化和代码检查通过:
```bash
pnpm check
```
5. **提交您的更改:** 我们使用[约定式提交](https://www.conventionalcommits.org/)进行提交消息,由 `commitlint` 强制执行。这有助于自动化变更日志和版本控制。典型的提交消息看起来像 `feat: add new command` 或 `fix: resolve issue with parsing`。如果需要,您可以使用 `pnpm commitlint` 帮助格式化您的消息,或者如果您已安装,可以使用 [git cz](https://github.com/commitizen/cz-cli) 等工具。
```bash
git add .
git commit -m "feat: your descriptive commit message"
```
6. **推送您的分支:**
```bash
git push origin your-branch-name
```
7. **打开 Pull Request:** 转到 GitHub 上的 YAMLResume 仓库,点击"New pull request"按钮。将您的分支与 `main` 分支进行比较。
8. **描述您的 PR:** 提供您所做更改的清晰描述。链接任何相关的问题(例如,"Closes #123")。
9. **审查:** 维护者将审查您的 PR。解决任何反馈或请求的更改。
10. **合并:** 一旦获得批准,您的 PR 将被合并。感谢您的贡献!
## 许可证
通过为 YAMLResume 做出贡献,您同意您的贡献将根据其[MIT 许可证](LICENSE)进行许可。
# 新语言
URL: (/zh-cn/docs/contributing/new-language)
import { Step, Steps } from "fumadocs-ui/components/steps";
YAMLResume 设计为从底层支持[多语言](/zh-cn/docs/locale),允许用户使用他们偏好的语言创建简历。
在撰写本文时,YAMLResume 支持以下语言:
* [英语](/zh-cn/docs/locale/english)
* [中文](/zh-cn/docs/locale/chinese)
* [挪威语](/zh-cn/docs/locale/norwegian)
* [西班牙语](/zh-cn/docs/locale/spanish)
如果您偏好的语言未列出,您可以按照以下步骤贡献,为新语言添加支持。
## 注册您的语言
要为 YAMLResume 添加新的 `locale.language` 选项,首先在 [models/resume.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/models/resume.ts) 中注册您的语言,通过向 `LOCALE_LANGUAGE_OPTIONS` 添加新条目。
**检查清单:**
* [ ] 将您的语言添加到 `LOCALE_LANGUAGE_OPTIONS`。
* [ ] [构建并测试新的 CLI](/zh-cn/docs/contributing/cli#yamlresumecli-build),使用 `pnpm cli dev languages list`,确保您的语言出现在列表中。
## 添加翻译
为 YAMLResume 中使用的所有相关[选项](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/translations/options.ts)、[标点符号和术语](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/translations/template.ts)提供翻译。这确保用户可以使用准确标签、选项、术语翻译和章节名称生成新语言的简历。以下是添加挪威语翻译的参考 [PR](https://github.com/yamlresume/yamlresume/pull/44)。
**检查清单:**
* [ ] 为[国家名称](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/models/country.ts)添加翻译
* [ ] 为 `degrees`、`fluency`、`languages`、`sections` 和 `skills` 添加选项翻译
* [ ] 为 `comma`、`colon` 和 `separator` 添加标点符号翻译
* [ ] 为 `courses`、`keywords` 和 `score` 添加术语翻译
## 更新 Babel 配置
YAMLResume 使用 LaTeX 进行 PDF 生成,为了获得最佳排版效果,我们需要设置适当的 [babel 包配置](https://latex3.github.io/babel/)。以下是挪威语的参考[提交](https://github.com/yamlresume/yamlresume/commit/b72a4441ad2542873f449bc35a265e7208eafbe7)。
**检查清单:**
* [ ] 更新 [preamble.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/renderer/preamble.ts) 中的 `renderBabelConfig()` 函数,为您的语言包含 babel 包。
## 使用新语言测试
[构建](/zh-cn/docs/contributing/cli#yamlresumecore-build) `yamlresume/core` 和 `yamlresume/cli` 包,然后:
* [ ] 创建新简历 `pnpm cli dev new my-resume.yml`
* [ ] 将 `locale.language` 设置为您刚添加的新语言
* [ ] 通过 `pnpm cli dev build my-resume.yml` 生成新语言的简历来测试您的更改
* [ ] 确保两个 PDF 输出都按预期工作。
## 提交您的 PR
一旦您完成了上述步骤,请提交您的 Pull Request,并清楚描述更改和您添加的语言。维护者将审查您的 PR,并可能请求更改或澄清。
感谢您帮助让 YAMLResume 为世界各地的更多人提供便利!
# 测试
URL: (/zh-cn/docs/contributing/test)
为了拥有流畅的开发体验,拥有可靠的测试策略非常重要。这包括单元测试、集成测试和端到端测试,以确保应用程序的所有方面都按预期运行。
## 单元测试
您可以使用以下命令运行单元测试:
```bash
# run tests for yamlresume/cli package
pnpm cli test
# run tests for yamlresume/core package
pnpm core test
# run tests for all packages
pnpm test
```
如果您正在开发新功能,可以在文件变化时运行测试:
```bash
# watch and test for changes in yamlresume/cli package
pnpm cli test:watch
# watch and test for changes in yamlresume/core package
pnpm core test:watch
# watch and test for changes in all packages
pnpm test:watch
```
如果您正在开发依赖于 `yamlresume/core` 包的 CLI 功能,不要忘记[构建](./contributing/cli#yamlresumecore-build) `yamlresume/core` 包。
## 测试覆盖率
YAMLResume 保持 **[100% 单元测试覆盖率](https://app.codecov.io/gh/yamlresume/yamlresume)** 以追求高代码质量并防止回归。您可以通过运行以下命令检查测试覆盖率报告:
```bash
# check test coverage for yamlresume/cli package
pnpm cli test:cov
# check test coverage for yamlresume/core package
pnpm core test:cov
# check test coverage for all packages
pnpm test:cov
```
# create-yamlresume
URL: (/zh-cn/docs/ecosystem/create-yamlresume)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
[create-yamlresume](https://yamlresume.dev/docs/ecosystem/create-yamlresume) 帮助您使用一行命令创建新的 [YAMLResume](https://yamlresume.dev) 项目。
## 使用方法
<>
```console
npx create-yamlresume my-resume
# or
npm init yamlresume my-resume
```
```console
pnpm create yamlresume my-resume
```
```console
yarn create yamlresume my-resume
```
```console
bun create yamlresume my-resume
```
>
## 功能
此工具将:
1. 使用您的项目名称创建新目录
2. 创建基本的 Node.js 项目结构,包括:
* 带有 YAMLResume 依赖和有用脚本的 `package.json`
* 带有适当排除规则的 `.gitignore` 文件
* 带有基本使用说明的 `README.md`
3. 安装所有必要的依赖
4. 使用 `yamlresume new` 创建新的示例简历文件
5. 显示可用命令和后续步骤
## 示例会话
```
$ pnpm create yamlresume
✔ What is your project name? … yamlresume
ℹ Using pnpm.
✔ What should your resume file be called? (without .yml extension) … resume
◐ Creating YAMLResume project in /private/tmp/yamlresume...
◐ Installing dependencies with pnpm...
Packages: +59
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 59, reused 59, downloaded 0, added 59, done
dependencies:
+ yamlresume 0.7.5
Done in 4s using pnpm v10.6.3
✔ Dependencies installed successfully!
◐ Creating resume file resume.yml...
✔ Created resume.yml successfully.
◐ Initializing git repository...
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m
Initialized empty Git repository in /tmp/yamlresume/.git/
✔ Git repository initialized!
[master (root-commit) 53c6210] init a new YAMLResume project
4 files changed, 421 insertions(+)
create mode 100644 .gitignore
create mode 100644 README.md
create mode 100644 package.json
create mode 100644 resume.yml
✔ Initial commit created!
ℹ
✨ Project created successfully!
ℹ
Next steps:
ℹ 1. cd yamlresume
ℹ 2. Edit your resume: resume.yml
ℹ 3. Build your resume: pnpm run build
ℹ 4. Watch for changes: pnpm run dev
ℹ 5. Show all commands: pnpm run yamlresume help
ℹ
Learn more:
ℹ 🏠 Homepage: https://yamlresume.dev
ℹ 📖 Documentation: https://yamlresume.dev/docs/
ℹ 🎨 Templates: https://yamlresume.dev/docs/layouts/latex/templates
ℹ 📝 Schema: https://yamlresume.dev/docs/compiler/schema
```
## 项目结构
生成的项目如下所示:
```
my-resume/
├── package.json # 带有 yamlresume 依赖的项目配置
├── .gitignore # Git 忽略规则
├── README.md # 项目文档
└── resume.yml # 您的 YAML 简历(您选择的文件名)
```
## 可用命令
在生成的项目中,您可以运行:
* `npm run build` - 将您的简历构建为 PDF
* `npm run dev` - 监听变化并自动重新构建
* `npm run validate` - 根据模式验证您的简历
* `npm run yamlresume` - 运行 YAMLResume CLI
# 生态系统
URL: (/zh-cn/docs/ecosystem)
YAMLResume 提供了一套工具来帮助您更高效地创建、转换和管理您的简历。以下是一些可用的关键实用程序:
## create-yamlresume
[create-yamlresume](./ecosystem/create-yamlresume) 让您可以通过一行命令轻松启动新的 YAMLResume 项目。它将搭建您的项目目录,安装必要的依赖,并生成示例简历文件,这样您就可以立即开始。
* 使用 `npx create-yamlresume my-resume` 或类似的 `npm`、`yarn` 或 `pnpm` 命令搭建新项目。
* 包括即用型项目结构、用于构建和验证简历的脚本,以及示例 YAML 简历文件。
## json2yamlresume
[json2yamlresume](./ecosystem/json2yamlresume) 是一个用于将 [JSON Resume](https://jsonresume.org/) 文件转换为 YAMLResume 格式的 CLI 工具。
* 将 JSON Resume 文件转换为 YAMLResume,根据需要转换字段和结构。
* 确保您的数据根据 YAMLResume 模式进行验证。
这些工具帮助您从其他格式迁移,自动化项目设置,并简化您与 YAMLResume 的工作流程。
## 了解更多
# json2yamlresume
URL: (/zh-cn/docs/ecosystem/json2yamlresume)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
[json2yamlresume](https://yamlresume.dev/docs/ecosystem/json2yamlresume) 是一个用于将 [JSON Resume](https://jsonresume.org/) 转换为 [YAMLResume](https://yamlresume.dev/) 格式的[命令行工具](https://npmjs.com/package/json2yamlresume)。
## 功能
* **格式转换**:无缝将 JSON Resume 转换为 YAMLResume 格式
* **[结构转换](#conversion-rules)**
* **CLI 接口**:简单的命令行接口,便于转换
* **验证**:基于 YAMLResume 强大的[模式验证](/zh-cn/docs/compiler/schema)构建
## 安装
<>
```console
npm install -g json2yamlresume
```
```console
pnpm add -g json2yamlresume
```
```console
yarn global add json2yamlresume
```
```console
bun add -g json2yamlresume
```
>
## 使用方法
### 将 JSON Resume 转换为 YAMLResume
```bash
$ json2yamlresume input.json output.yaml
# 或者调用命令时不指定可选的输出路径,在这种情况下
# 输出将写入与输入文件相同的目录,使用相同的名称但扩展名为 .yml
$ json2yamlresume input.json
```
### 显示帮助
```bash
$ json2yamlresume --help
Usage: json2yamlresume [options] [output-file]
Convert JSON Resume to YAMLResume format
Arguments:
input-file Input JSON Resume file path
output-file Output YAMLResume file path
Options:
-V, --version output the version number
-h, --help display help for command
```
### 显示版本
```bash
$ json2yamlresume --version
0.7.4
```
## 示例
以下是 JSON Resume 格式的示例简历:
```json lineNumbers title="json-resume.json"
{
"basics": {
"name": "John Doe",
"label": "Software Engineer",
"email": "john@example.com",
"location": {
"city": "San Francisco",
"countryCode": "US"
},
"profiles": [
{
"network": "GitHub",
"username": "johndoe",
"url": "https://github.com/johndoe"
}
]
},
"work": [
{
"name": "Tech Corp",
"position": "Senior Developer",
"startDate": "2020-01",
"summary": "Led development of web applications.",
"highlights": [
"Increased performance by 40%",
"Mentored 5 junior developers"
]
}
],
"education": [
{
"institution": "University of California",
"area": "Computer Science",
"studyType": "Bachelor of Science",
"startDate": "2018"
}
]
}
```
您可以调用以下命令将 JSON Resume 转换为 YAMLResume:
```bash
$ json2yamlresume json-resume.json yamlresume.yml
```
以下是 YAMLResume 格式的输出:
```yaml lineNumbers title="yamlresume.yml"
---
content:
basics:
name: John Doe
headline: Software Engineer
email: john@example.com
education:
- institution: University of California
area: Computer Science
degree: Bachelor of Science
startDate: "2018"
location:
city: San Francisco
country: US
profiles:
- network: GitHub
username: johndoe
url: https://github.com/johndoe
work:
- name: Tech Corp
position: Senior Developer
startDate: 2020-01
summary: |-
- Increased performance by 40%
- Mentored 5 junior developers
```
## 转换规则
### 1. location/profiles 移动到顶级
* `basics.location` → 顶级 `location`
* `basics.profiles` → 顶级 `profiles`
* `basics.label` → `basics.headline`
### 2. education 字段映射
* `education[].studyType` → `education[].degree`
### 3. highlights 合并到 summary 字段
转换器将 `highlights` 数组合并到这些章节的 `summary` 字段中作为 markdown 无序列表:
* `work[]`
* `volunteer[]`
* `projects[]`
示例:
```json
{
"summary": "Led development team.",
"highlights": ["Increased performance", "Mentored developers"]
}
```
变为:
```yaml
summary: |-
Led development team.
- Increased performance
- Mentored developers
```
请记住,YAMLResume 的 summary 字段支持[富文本](/zh-cn/docs/content/rich-text)!
### 4. references 字段映射
* `references[].reference` → `references[].summary`
## 支持的 JSON Resume 章节
转换器支持所有标准 JSON Resume 章节:
* ✅ `basics`
* ✅ `work`
* ✅ `volunteer`
* ✅ `education`
* ✅ `awards`
* ✅ `certificates`
* ✅ `publications`
* ✅ `skills`
* ✅ `languages`
* ✅ `interests`
* ✅ `references`
* ✅ `projects`
# 字体
URL: (/zh-cn/docs/guide/font)
如果文字是信息传递的载体,那么文字本身的视觉特征——即字体——会影响信息的质量。
原则上,简历的排版应该简洁明了。对于字体,首先您永远不应该使用过于花哨的字体,其次字体的类型不应该太多——最好限制在三种以内。这里我们将讨论字体的一些基础知识和排版要点。
## 字体分类
### 衬线 vs. 无衬线
就衬线而言,拉丁字母的字体分为两个家族:衬线字体和无衬线字体[^1]。
衬线是附加在字母笔画末端的小线条。带有衬线的字体称为衬线字体。相比之下,没有衬线的字体称为无衬线字体,其中 *sans* 是法语中"没有"的意思。
### 比例 vs. 等宽
根据字母宽度是否相同,字体可以分为等宽字体和比例字体。顾名思义,等宽字体中的所有字母占据相同的水平空间,而比例字体中则不然。
在传统印刷中,比例字体可以提高单词的可读性。由于技术限制,早期的计算机和打字机无法调整字母的宽度。所以所有字符都被制作成相同的宽度,因此等宽字体应运而生。随着计算机技术的改进,GUI(图形用户界面)已成为主流并不断发展,技术限制不再存在,所以比例字体变得非常流行,因为它们对人类来说更自然易读。
### CJK 字体
[CJK](https://en.wikipedia.org/wiki/CJK_characters) 的字体样式有点复杂。一般来说,CJK 语言中也有衬线字体和无衬线字体。
#### 宋体
**[宋体](https://en.wikipedia.org/wiki/Ming_typefaces)**:在简体中文中称为宋体/明体,在繁体中文中称为宋體/明體,在日语中称为みんちょうたい/明朝体,在韩语中称为명조체/明朝體,是 CJK 的衬线字体。
宋体通常用于正文、标题和注释。当用于标题时,字符的粗细通常会增加以区别于正文。目前它是印刷中最常用的字体。
#### 黑体
**[黑体](https://en.wikipedia.org/wiki/Sans-serif)**,在简体中文中称为黑体,在繁体中文中称为黑體,是 CJK 的无衬线字体。
黑体常用于标题、引言、标志等。黑体也用于正文中强调特定词语。由于中文字符笔画众多,黑体在小字符中清晰度较差,传统印刷很少使用黑体作为正文;然而,随着字符创建技术的完善,加上互联网和数字出版的发展,许多黑体字体被开发用于正文,少数书籍开始使用黑体作为正文字体。
除了宋体和黑体,*中文还有两种广泛使用的额外字体样式*。
#### 楷体
**[楷体](https://en.wikipedia.org/wiki/Regular_script)**:在简体中文中称为楷体,在繁体中文中称为楷體,是现代中文写作中最常用的样式。
楷体主要用于标题、引言、对话、摘要和与正文不同的其他段落。然而,由于与宋体接近,楷体较少用于强调。
#### 仿宋体
**[仿宋体](https://en.wikipedia.org/wiki/Fangsong)**,在简体中文中称为仿宋体,在繁体中文中称为仿宋體,是一种楷书字体。它主要用于引言、摘要和与正文不同的其他段落。同时,它也是中国政府制作官方文件使用的标准字体。
## 字体设计和使用
数字出版已经发展多年,西方语言字符集很小,所以有很多不同的人根据各种需求设计的字体。
对于等宽字体,主要关注每个字母的设计,除此之外,在比例字体中,字母之间的空间也应该认真考虑。
### 字母构成
每种字体中的字母都有一致的结构,字体用户应该了解这些基本概念:
* 基线:字母"H"或"n"站立的无形线
* 大写高度:从基线到大写字母如"H"或"E"顶部的距离
* x 高度:小写字母"x"从底部到顶部的距离
* 上升部:小写字母如"b"、"d"、"f"、"h"、"k"、"l"在"x"顶部以上的上升部分,其高度称为上升高度,上升部对齐的顶线称为上升线
* 下降部:小写字母如"g"、"j"、"p"、"q"、"y"在基线以下的下降部分,其高度称为下降高度,下降部对齐的底线称为下降线
### 字母间距
字母间距,或跟踪,指的是字母之间的空间。字母间距调整分为字体设计师方面和字体用户方面;它影响一行或文本块的密度。
对于字体设计师,字母间距的调整是设计中的重要程序。在比例字体中,单个字母左侧的间距不一定与右侧相同。目的是确保字母与两侧任何其他字母相邻时的可读性。
对于字体用户,字母间距的调整意味着在原始排版后通过软件手动重新排列字母之间的空间,以获得特殊对齐[^2],或更好的布局效果[^3]。
### 字距调整
字距调整指的是在比例字体中增加或减少特定字母对之间空间的过程。这些字母对称为字距对。字距调整更关注视觉间距而不是实际间距。
许多字体的设计师在设计时会注意字距对,并将字距调整值存储在字体文件中。这样,排版软件可以根据这些值自动调整字距对的间距,从而产生更好的布局效果。
每个字母都有独特的形状,所以在字体的设计和实现过程中,所有字距对中的字母必须配合产生最佳的视觉效果。事实上,这是关键程序和困难所在[^4]。
### 连字
连字是将两个或多个字母连接在一起的字形。
印刷中的连字起源于手写中的连字符。在活字印刷诞生后,许多连字被直接制作成字体。然而,在 1950 年代无衬线字体的广泛使用和 1970 年代照相排版之后,块字母的使用变得罕见。最早能够使用连字进行数字排版的数字排版软件是 [Donald Knuth](https://en.wikipedia.org/wiki/Donald_Knuth) 创建的 TeX。这一趋势也影响了 1985 年后的桌面出版。在早期,软件无法用连字替换字母(但 TeX 可以),大多数为计算机新制作的字体都不包含连字。此外,在个人计算机的早期,大多数计算机都是英文的,没有实际使用连字的需要,因为英语中不是强制使用连字。随着 [OpenType](https://en.wikipedia.org/wiki/OpenType) 等数字排版技术的发展,连字逐渐回归实践[^5]。
在日常商业文件中,缺乏连字不被视为拼写错误,但对于广告、图书出版等领域的专业排版,连字基本上是必需的。
### 斜体
斜体是通过在正常字体样式基础上倾斜字体实现的字体样式;它可以指斜体类型或倾斜类型[^6]。
西方字体中有两种倾斜字体:倾斜类型和斜体类型。倾斜时字符形状发生变化的称为"斜体类型",而简单地将原始字体向右倾斜而不改变字符形状的称为倾斜类型。由于倾斜斜体只是通过软件算法简单倾斜和扭曲,笔画松散,最近越来越多的设计倾向于使用新设计的专业斜体类型。
理论上,斜体包括斜体类型和倾斜类型,但应该注意,实际上并非所有斜体类型都是倾斜的。
在实践中,斜体通常应用于一段文本以强调或区别于衬线字体的正文。
### 旧式数字
旧式数字,也称为[文本数字](https://en.wikipedia.org/wiki/Text_figures),为拉丁文字语言设计,具有不同的高度,类似于典型文本行的风格,因此得名。
相比之下,现代数字(也称为现代、标题或现代数字)具有与大写字符相同的高度。
YAMLResume 默认对拉丁文字语言简历使用旧式数字,对其他语言使用现代数字。
> 高质量的排版通常更喜欢正文中的文本数字:它们与小写字母和小型大写字母更好地融合,不像现代数字的运行。现代数字在所有大写设置中需要(因此替代名称标题数字),在表格和电子表格中可能效果更好。
>
> — [文本数字](https://en.wikipedia.org/wiki/Text_figures#Design)
### 推荐的西方字体
现在有大量的字体,所以为您的简历推荐一个通用的西方字体方案不是一件容易的事。
* 推荐,对正文使用衬线字体
* 推荐,对标题使用无衬线字体,但也可以使用衬线字体
* 推荐,使用斜体字体样式强调正文中的文本,也可以使用相应的粗体样式
以下是常用衬线字体列表:
* [Garamond](https://en.wikipedia.org/wiki/Garamond)
* [Palatino](https://en.wikipedia.org/wiki/Palatino)
* [Geogria](https://en.wikipedia.org/wiki/Georgia_\(typeface\))
* [Baskerville](https://en.wikipedia.org/wiki/Baskerville)
* [Minion](https://en.wikipedia.org/wiki/Minion_\(typeface\))
* [Hoefler Text](https://en.wikipedia.org/wiki/Hoefler_Text)
* [Linux Libertine](https://en.wikipedia.org/wiki/Linux_Libertine)
常用无衬线字体列表:
* [Helvetica](https://en.wikipedia.org/wiki/Helvetica)
* [Gill Sans](https://en.wikipedia.org/wiki/Gill_Sans)
* [Optima](https://en.wikipedia.org/wiki/Optima)
***
[^1]: [Serif vs Sans: The Final Battle](http://designreviver.com/inspiration/serif-vs-sans-the-final-battle/)
[^2]: 当布局宽度较小时,通常不适合使用两端对齐,因为应用两端对齐会强制大多数软件调整字母间距,通常最终的布局效果会很差。
[^3]: 例如,TeX 排版系统的创新在于其优秀的[两端对齐](https://en.wikipedia.org/wiki/TeX#Hyphenation_and_justification)算法,其原理是调整字母间距使布局更加[两端对齐](https://en.wikipedia.org/wiki/Typographic_alignment#Justified)。
[^4]: A Beginner's [Guide](https://designschool.canva.com/blog/kerning/) to Kerning Like a Designer
[^5]: [Ligature](https://en.wikipedia.org/wiki/Ligature)
[^6]: [Italic Type](https://en.wikipedia.org/wiki/Italic_type)
# 语法
URL: (/zh-cn/docs/guide/grammar)
## 内容
简洁对简历来说是最重要的。基本的客观信息是简历的核心:
* 个人信息
* 重要的联系信息如电话、电子邮件必须清晰
* 教育背景
* 如果您是应届毕业生,可以添加高中教育背景
* 专业技能
* 奖项
* 工作(实习)经历
谨慎添加主观信息:
* 自我评价
* 个人爱好
* 社交活动、志愿者经历等,与申请职位没有明确关系
谨慎添加与申请职位无关的客观信息:
* 照片
* 生日
* 家庭地址
* 国籍
* 政治身份
* 婚姻和家庭状况
禁止内容:
* "我的简历"作为标题
* 来自不同来源的简历模板上的标志水印
## 拼写
简历中的拼写错误在求职中是大忌。太多基础拼写错误会影响雇主对申请人的第一印象。大多数软件都有拼写检查器,所以适当使用它以避免许多主要拼写错误。当然,不要过度依赖软件的拼写检查,最好找一个可信的朋友进行校对。
### 专有名词
除了常见的拼写错误外,专有名词中还有高度频繁的拼写错误,因为它们对大小写更敏感。相同字母组合的不同大小写可能在不同领域有完全不同的含义,所以求职者必须非常谨慎。例如,小写"i"的 [iOS](http://www.apple.com/ios/) 代表苹果 iPhone 上的移动操作系统,而大写"I"的 [IOS](https://en.wikipedia.org/wiki/Cisco_IOS) 是思科路由器上的专用系统。
限于我们的背景,本指南总结了 IT 领域内一些常见的专有名词拼写错误。
| 错误拼写 | 修正 |
| ------------------------------ | -------------- |
| ajax | Ajax AJAX |
| android | Android |
| android studio | Android Studio |
| APP | App |
| AppStore, app store | App Store |
| Css, css | CSS |
| eclipse | Eclipse |
| git, GIT | Git |
| Html, html | HTML |
| Http, http | HTTP |
| json, Json | JSON |
| JAVA, java | Java |
| Javascript, javascript, JS, js | JavaScript |
| linux, LINUX | Linux |
| mysql | MySQL |
| node, Node, NodeJS, nodejs | Node.js |
| OC, oc, objective-c | Objective-C |
| python | Python |
| ruby | Ruby |
| sqlite | SQLite |
| xml, Xml | XML |
| xcode, XCODE, XCode | Xcode |
| ios, IOS | iOS |
| iphone, IPHONE | iPhone |
| jquery, JQuery | jQuery |
## 语法
与普通写作相比,简历写作有一些特殊的语法要求。
* 一般使用过去时,但如果您正在描述当前工作或教育经历,使用现在时
* 一般以过去时动词开始一个项目,省略主语
* 尝试使用简单易懂的短句,而不是长而复杂的从句
* 按倒序列出教育背景和工作经历,时间格式应精确到月份
* 使用标准时间格式如"2015.05",或可以明确解释的格式,如"June, 2016",而不是像"05/06"这样的年份缩写,这在不同国家可能有不同的解释
以下是简历写作中 100 个常用过去时单词列表:
| | | | | |
| ------------- | ------------ | ------------ | ------------ | ------------ |
| Accelerated | Accomplished | Accounted | Accumulated | Achieved |
| Administrated | Arbitrated | Articulated | Boosted | Briefed |
| Broadened | Budgeted | Campaigned | Chaired | Championed |
| Clarified | Coached | Collaborated | Coordinated | Corroborated |
| Cultivated | Customized | Decided | Decreased | Delegated |
| Demonstrated | Designated | Developed | Devised | Diagnosed |
| Documented | Doubled | Economized | Edited | Educated |
| Empowered | Enabled | Encouraged | Endorsed | Enhanced |
| Facilitated | Focused | Forecasted | Generated | Harmonized |
| Harnessed | Identified | Illustrated | Impressed | Improved |
| Increased | Justified | Launched | Led | Magnified |
| Managed | Marketed | Mastered | Navigated | Negotiated |
| Observed | Obtained | Organized | Orchestrated | Participated |
| Pinpointed | Performed | Publicized | Published | Realigned |
| Recognized | Recommended | Selected | Separated | Spearheaded |
| Stimulated | Succeeded | Surpassed | Synchronized | Synergized |
| Tabulated | Targeted | Tested | Traded | Translated |
| Triggered | Triumphed | Troubleshot | Uncovered | Underwrote |
| Unearthed | Unified | Upgraded | Urged | Utilized |
| Validated | Verbalized | Verified | Vitalized | Yielded |
# 指南
URL: (/zh-cn/docs/guide)
## 简历写作和排版指南
简历给人们留下职业生涯的第一印象。
在一张 A4 纸(210 mm × 297 mm)上,简历结束了您人生的前一阶段,开始了下一阶段。
> 九层之台,起于累土。
>
> — [老子](https://en.wikipedia.org/wiki/Laozi),第六十四章
一份精美的简历基于字体、标点符号、布局和语法等细节。
本指南系统地解释了简历写作和排版的要点,特别强调排版,帮助您制作形式和精神都美丽的简历。对于每个主题,它首先解释它是什么,然后解释为什么如此,最后解释如何去做。
本指南力求尽可能简洁明了,对不同解释有四个优先级:
* **必须**,排版中的强制性要求,违反是严重错误
* **推荐**,符合一般排版标准,强烈推荐
* **不应该**,需要排版中的高级知识或功能,或在不同语言和文化中多样化,或随公司规定而变化,如果不了解情况使用是危险的
* **禁止**,与一般排版标准冲突,禁止应用
# 发布
URL: (/zh-cn/docs/guide/publishing)
## 文件格式
简历的常见文件格式包括:
* PDF
* Microsoft Word (doc, docx)
* 纯文本
* HTML
这里我们最推荐 PDF:
* PDF 具有出色的跨平台输出质量,确保近 100% 一致的打印和显示
* PDF 可以嵌入字体,在字体选择上有很大的自由度
* 大多数平台都有默认的 PDF 阅读器
* Windows 8 及以上版本有内置的 PDF 阅读器
* macOS 有 [Preview](https://en.wikipedia.org/wiki/Preview_\(Mac_OS\)),iOS 有 [iBooks](http://www.apple.com/ibooks/)
* 许多浏览器(如 Chrome)都有内置的 [pdf.js](http://mozilla.github.io/pdf.js/),也可以默认打开 PDF
学习 MS Word 更容易,但以 Word 格式交付简历有很大的缺点:
* Word 文档必须安装额外的办公软件才能打开
* Windows 的 Microsoft Word、[WPS Office](https://wps.com)
* macOS 的 [iWork](https://en.wikipedia.org/wiki/IWork)
* Linux 的 [WPS Office](https://wps.com)、[LibreOffice](https://www.libreoffice.org/)
* 许多在线文档编辑系统如 [Google Docs](https://docs.google.com/) 也可以打开和编辑 Word 文档
* Word 文档在不同平台的不同软件中可能显示差异很大
* 实际上不是每个人都在他的计算机上安装了 [Microsoft Word](https://products.office.com/en-us/word)
* 另一个事实是,Microsoft Word 的正版许可证可能要花费数百美元
* 为了尝试确保一致的显示和输出,Word 文档最好只使用主要操作系统常见的几种字体,这导致 Word 文档在字体选择上自由度很小
当然,不同公司的不同 HR 经理可能有不同的要求和偏好。我们建议如果您用 Word 制作简历,最好将其导出为 PDF 作为替代方案
## 邮件礼仪
除了公司的专有招聘系统外,求职申请提交简历的主要方法应该是电子邮件。一些基本的电子邮件礼仪如下。
* 设置正确的邮件昵称,不要使用非正式的过于花哨的昵称,这会给雇主留下非常不专业的印象
* 在邮件标题中使用统一格式,保持清晰简洁以传达最重要的信息
* 推荐格式:`Apply-Company Position-Name-[University/Education]-[Work Experience]`
* 邮件正文应该简洁,不建议写很长的求职信,包含大量个人主观评价
* 最好在文本开头添加标题和问候
* 正文内容
* 基本个人信息,如工作状态(在职或不在职)、职位、教育和工作经历等
* 申请职位
* 申请方式,是否由他人推荐
* 添加包含姓名和联系信息(电话/电子邮件)的署名
* 附加以与标题相同格式命名的简历文件
# 标点符号
URL: (/zh-cn/docs/guide/punctuations)
标点符号是简历写作中最不起眼但也最容易出错的部分。您能否正确和标准化地使用标点符号反映了求职者申请工作的态度。
标点符号的正确和标准化使用可能看起来容易,但并不像看起来那么简单。主要原因是不同的语言环境要么对标点符号的使用没有明确的规范,要么有规范但许多地方没有明确定义,或者有几套[样式指南](https://en.wikipedia.org/wiki/Style_guide)但它们不兼容甚至相互冲突;其次,实际排版经常遇到多语言混合的情况,然后问题会变得更加复杂。本指南试图总结一些标点符号使用的一般规则供您参考。
* 必须,在逗号、句号、分号、冒号、感叹号和问号后添加一个空格
* 必须,在开括号前和闭括号后添加一个空格,与单词相同,但闭括号后跟逗号时不添加空格
* 推荐,在数字和其单位之间添加一个空格
* 推荐,在连字符周围不添加空格,有时需要微调字母间距
* 推荐,在表示两个平行事物的斜杠周围不添加空格,如"A or B"
* 推荐,使用引号(`'`、`'`、`"`、`"`),而不是[撇号](https://en.wikipedia.org/wiki/Apostrophe)
* 不应该,在[项目符号列表](https://en.wikipedia.org/wiki/Bullet_\(typography\))的项目末尾添加任何标点符号
* 禁止,在行首悬挂标点符号,这可以通过软件的自动设置或手动调整来避免
## 连接符号
连字符 (-)、短破折号 (–) 和长破折号 (—) 是三个容易混淆并导致错误的标点符号。它们的使用方法如下所述。
> 对于连字符,输入一个连字符 (-);
>
> 对于短破折号,输入两个连字符 (--);
>
> 对于长破折号,输入三个连字符 (---);
>
> 对于减号,在数学模式中输入一个连字符 ($-$)。
>
> — Donald Knuth,[The TeXBook](https://en.wikipedia.org/wiki/Computers_and_Typesetting)
### 连字符 (-)
连字符主要用于:
* 复合词,如"upper-case letter"
* 分隔数字或字符,如电话号码"1-888-777-666"
* 在行末断字以保持整个布局整洁
关于行末断字有一些规则:
* 尽量不要在连续三行以上中断字最后一个单词
* 避免分割专有名词、人名等
* 避免跨页断字
* 原则上根据音节分割单词,但断字位置因单词而异,所以必要时最好查字典[^7]
### 短破折号 (–)
短破折号的长度等于大写"N"的宽度,是长破折号长度的一半。它主要用于:
* 表示数字、日期时间等的范围,如一年中的日期"July–August 1968"
* 表示导航路径的起点和终点,如"Boston–Hartford route"
使用短破折号时,通常不需要在其周围添加空格。
### 长破折号 (—)
长破折号的长度等于大写"M"的宽度,其使用最灵活和复杂。它通常用于:
* 详细解释某事,相当于括号或冒号
* 分割陈述性从句
* 表示对话被中断,在这种情况下也可以使用省略号
此外,还有两个或三个长破折号连接在一起的情况,但这里不详细说明[^8]。
***
[^7]: 专业排版软件通常具有自动断字功能,在一定程度上如果开启可以定位断字位置,但最好人工再次检查。
[^8]: [Wikipedia/Dash](https://en.wikipedia.org/wiki/Dash) 演示了这个符号的详细用法以及在不同操作系统上的输入方法。
# 排版
URL: (/zh-cn/docs/guide/typesetting)
排版是"二维建筑"。
如果文字和其字体是建筑物的材料,那么排版就是建筑物的图纸。在讨论排版之前,我们需要澄清一些基本概念,特别是排版中常用的尺寸单位系统。
## 字体大小
字体大小是字符大小的标准测量。字体大小的国际通用单位是点。
[点](https://en.wikipedia.org/wiki/Point_\(typography\))通常缩写为 pt,它是排版中最小的测量单位。事实上,点的大小在印刷历史上一直在变化。自 18 世纪以来,点的大小从 0.18 到 0.4 毫米不等。随着 1980 年代和 1990 年代[桌面出版](https://en.wikipedia.org/wiki/Desktop_publishing)的出现,[数字印刷](https://en.wikipedia.org/wiki/Digital_printing)在很大程度上取代了[活字印刷](https://en.wikipedia.org/wiki/Printing_press)并逐渐确立了 DTP 点作为事实标准。
DTP 点定义为 1/72 [英寸](https://en.wikipedia.org/wiki/Inch)。
大多数字体在设置为 10-12 pt 时效果最佳。换句话说,字符本身的笔画和结构以及字母之间的间距在这种尺寸下都会呈现相对良好的视觉效果。字体越大,文本显得越松散,所以您需要手动减少字母间距;另一方面,字体越小,文本显得越紧凑,所以您需要手动增加字母间距。
| pt | mm | cm | pica | inch |
| -- | ------ | ------- | ---- | ---- |
| 1 | 0.3528 | 0.03528 | 1/12 | 1/72 |
## 行距
行距或行间距指的是两行连续基线之间的距离。
理想的行距至少是文本字体大小的 120%,一般推荐 1.2-1.5 倍。不同字体有不同的 x 高度,原则上,应用的字体 x 高度越大,行距应该越大,相反,x 高度越小,行距越小。
## 页面布局
布局是排版的轮廓,它就像渔网的纲绳,一旦纲绳拉起,所有的网眼自然展开。除了字体大小和行距的一般排版规则外,简历布局设计还有一些独特的要求。原则上,最好将简历控制在一页内。
* 使语言清晰简洁
* 在合理范围内调整字体大小和行距
* 保持页面边距在 10-25 毫米,使左右边距对称
* 使用列表而不是平行句子来列出信息
* 使用左对齐,谨慎使用两端对齐,因为两端对齐可能会在断字和字母间距方面造成问题,因为单词长度不同
# 布局
URL: (/zh-cn/docs/layouts)
简历的核心是内容,但布局也很重要。许多基于 JSON/YAML 的简历生成器只关注内容,而将布局保持不变,这给用户留下了很大的问题。
与其他简历生成器不同,YAMLResume 提供了开箱即用的布局解决方案,允许用户专注于简历的内容,同时生成具有像素完美布局和排版的专业简历。
从 v0.8.0 开始,YAMLResume 通过 `layouts` 数组支持多种布局和多种输出引擎(LaTeX 和 Markdown)。
以下是 `resume.yml` 文件中布局配置的示例:
```yml lineNumbers title="resume.yml"
---
content:
# ...
locale:
language: en
layouts:
- engine: latex
template: moderncv-banking
page:
showPageNumbers: true
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
typography:
fontSize: 11pt
- engine: markdown
```
## 引擎
YAMLResume 目前支持两种引擎:
* [LaTeX](./layouts/latex):生成高质量 PDF 简历。
* [Markdown](./layouts/markdown):生成纯 Markdown 简历。
## 了解更多
# 中文
URL: (/zh-cn/docs/locale/chinese)
[中文](https://zh.wikipedia.org/wiki/%E4%B8%AD%E6%96%87)属于[汉藏语系](https://zh.wikipedia.org/wiki/%E6%B1%89%E8%97%8F%E8%AF%AD%E7%B3%BB),与拉丁文字语言有很大不同。约有 14 亿人,即世界人口的 17%,将某种中文作为第一语言。
## 语言学
### 字符集
[汉字](https://zh.wikipedia.org/wiki/%E6%B1%89%E5%AD%97)和[拉丁字符](https://zh.wikipedia.org/wiki/%E8%A5%BF%E6%96%B9%E6%8B%89%E4%B8%81%E5%AD%97%E7%AC%A6%E9%9B%86)代表了两种根本不同的书面语言方法。
拉丁字符具有有限的字符集,相对较少的字符就能表示大量词汇,每个字符代表特定的声音或[音素](https://zh.wikipedia.org/wiki/%E9%9F%B3%E7%B4%A0),单词通过按特定顺序组合这些字符形成。而中文有数万个字符来表达中文的完整范围,每个字符代表一个[语素](https://zh.wikipedia.org/wiki/%E8%AF%AD%E7%B4%A0)或单词,通常直接传达意义,单词通过组合单个字符形成,每个字符都有自己的意义和发音。
书写系统的这种根本差异对语言学习、文本处理和文化交流具有重要影响。虽然拉丁字符相对容易学习和使用,但汉字需要大量的记忆和练习。
### 变体
虽然中文有许多地区变体,但两种主要的书面形式是简体中文和繁体中文。
以下是详细说明:
**简体中文**
* 主要在中国大陆和新加坡使用。
* 在20世纪中期发展,旨在提高识字率。
* 使用[简体字](https://zh.wikipedia.org/wiki/%E7%AE%80%E5%8C%96%E5%AD%97),通常比繁体字笔画更少。
**繁体中文**
* 主要在香港、澳门、台湾和许多海外华人社区使用。
* 中文的较旧形式。
* 使用[繁体字](https://zh.wikipedia.org/wiki/%E7%B9%81%E4%BD%93%E5%AD%97),笔画更多更复杂。
需要注意的是,简体和繁体中文都可以用来书写各种中文方言,如[普通话](https://zh.wikipedia.org/wiki/%E6%99%AE%E9%80%9A%E8%AF%9D)、[粤语](https://zh.wikipedia.org/wiki/%E7%B2%A4%E8%AF%AD)和[闽南语](https://zh.wikipedia.org/wiki/%E9%97%BD%E5%8D%97%E8%AF%AD)。
同时,繁体中文至少有两个变体,即香港变体 [zh-HK](https://simplelocalize.io/data/locale-code/zh-HK) 和台湾变体 [zh-TW](https://simplelocalize.io/data/locale-code/zh-TW)。zh-HK 和 zh-TW 中的大部分文字是相同的,只有少数细微差异。
例如,单词"software"翻译为 zh-HK 时是"軟件",而在 zh-TW 中是"軟體"。大约有几十个英文单词在 zh-HK 和 zh-TW 中翻译不同,详细信息[在此](https://zh.wikipedia.org/wiki/%E7%B9%81%E4%BD%93%E5%AD%97#%E7%94%A8%E8%AA%9E%E5%B7%AE%E7%95%B0)。
一般来说,YAMLResume 对 zh-HK 和 zh-TW 之间的差异无能为力,因为用户在编写简历时必须决定使用哪种变体,并确保内容符合 zh-HK 或 zh-TW 的习语和约定。但是,YAMLResume 需要正确处理 zh-HK 和 zh-TW 的一件事,因为一些国家和地区在 zh-HK 和 zh-TW 中有不同的名称。例如,[沙特阿拉伯](https://zh.wikipedia.org/wiki/%E6%B2%99%E7%89%B9%E9%98%BF%E6%8B%89%E4%BC%AF)在 zh-HK 中翻译为"沙特阿拉伯",在 zh-TW 中翻译为"沙烏地阿拉伯"。还有其他几个国家。YAMLResume [处理](#location-countries-and-regions)了所有在 zh-HK 和 zh-TW 中有不同翻译的国家和地区。
## 习语
### 日期
日期在英文和中文中的表示方式不同,例如英文中的"Jun 2018 – Present"应该翻译为中文的"2018 年 6 月至今",年份和月份的位置应该颠倒,连字符"–"应该替换为"至"。
同时,中文不使用专门的月份词汇,而是使用阿拉伯数字和字符"月"的组合,使其像计数游戏一样简单。
| 英文 | 中文 |
| --------------- | ---- |
| January (Jan) | 1 月 |
| February (Feb) | 2 月 |
| March (Mar) | 3 月 |
| April (Apr) | 4 月 |
| May (May) | 5 月 |
| June (Jun) | 6 月 |
| July (Jul) | 7 月 |
| August (Aug) | 8 月 |
| September (Sep) | 9 月 |
| October (Oct) | 10 月 |
| November (Nov) | 11 月 |
| December (Dec) | 12 月 |
### 位置
地址格式在[英文](/locale/english#location)和中文约定之间有所不同。与英文不同,在中文中呈现包含地址、城市和国家的地址时,一般部分(国家、州等)通常在前,而最具体的部分(城镇、地址等)在后。
## 排版
### 字体
就像拉丁文字语言一样,中文有其衬线字体[宋体](/zh-cn/docs/guide/font#song)和无衬线字体[黑体](/zh-cn/docs/guide/font#bold)。此外,它还有两种额外的字体样式,[常规](/zh-cn/docs/guide/font#regular)和[仿宋](/zh-cn/docs/guide/font#fangsong)。您可以查看[指南 -> 字体 -> CJK字体](/zh-cn/docs/guide/font#cjk-font)了解更多详情。
YAMLResume 使用宋体作为中文简历的主要字体。
### 标点符号
中文标点符号,就像语言本身一样,有其独特的特点。需要注意的一个重要区别是[半角和全角](https://zh.wikipedia.org/wiki/%E5%8D%8A%E8%A7%92%E5%92%8C%E5%85%A8%E8%A7%92%E5%AD%97%E7%AC%A6)标点符号之间的差异。
中文半角和全角标点符号之间的主要区别在于它们的视觉宽度和预期用途。
**半角标点符号**
* **较窄**:这些标点符号通常与拉丁字符或数字一起使用,例如在URL、电子邮件地址或代码片段中。
* **较少使用**:它们在标准中文文本中较少使用,通常用于一小部分拉丁文字语言短语或段落。
**全角标点符号**
* **较宽**:这些标点符号设计为匹配汉字的宽度,确保在中文文本中视觉平衡和一致的外观。
* **更常用**:它们是中文文本中使用的标准标点符号。
使用正确类型的标点符号对于中文文本的正确格式和可读性至关重要。不匹配的标点符号可能导致视觉不一致和潜在的混淆。
通过理解半角和全角标点符号之间的差异,您可以确保您的中文文本格式正确且视觉上吸引人。以下是半角和全角形式的标点符号表,分别用于拉丁文字和中文语言。
| | 英文 | 简体中文 |
| --- | --- | ---- |
| 句号 | . | 。 |
| 问号 | ? | ? |
| 感叹号 | ! | ! |
| 逗号 | , | , |
| 冒号 | : | : |
| 分号 | ; | ; |
| 小括号 | () | () |
| 中括号 | \[] | [] |
| 花括号 | \{} | {} |
对于简历,使用正确的标点符号是作者的责任,但 YAMLResume 可以保证我们的简历模板始终使用正确的标点符号。我们现在有两个案例:
#### 逗号
英文使用逗号`,`作为分隔符来分隔句子的部分和列表中的项目,而中文使用中文逗号`,`来分隔句子,使用专门的枚举逗号([顿号](https://zh.wikipedia.org/wiki/%E9%A0%93%E5%8F%B7), `、`)来分隔列表中的项目(例如关键词列表)。
#### 冒号
英文和中文也有[不同的](https://zh.wikipedia.org/wiki/%E5%8D%8A%E8%A7%92%E5%92%8C%E5%85%A8%E8%A7%92%E5%AD%97%E7%AC%A6)冒号。[英文冒号](https://www.compart.com/en/unicode/U+003A)是`:`,Unicode 为`U+003A`,而[中文冒号](https://www.compart.com/en/unicode/U+FF1A)是`:`,Unicode 为`U+FF1A`。正如您始终可以信任的那样,YAMLResume 也处理这个问题。我们在简历模板中为各种固定术语使用正确的冒号,如"Keywords:"(简体中文为"关键字:",繁体中文为"關鍵字:")和"Courses:"(简体中文为"课程:",繁体中文为"課程:")。
### 旧式数字
默认情况下,**YAMLResume 在中文简历中不使用[旧式数字](/zh-cn/docs/guide/font#old-style-numbers)**。为什么?因为汉字都具有相同的高度和宽度(这就是为什么汉字也被称为"方块字",意思是方形字符),基本上所有汉字本质上都是标题和等宽的。通过采用衬线样式的数字,数字样式更接近汉字。
### 斜体
默认情况下,**YAMLResume 在中文简历中不使用斜体**,因为中文中的斜体被认为是[不良做法](https://drwhispers.com/2021/11/16/italics-in-chinese/),为什么?
在拉丁文字语言中,斜体通常与正文衬线区分开来,用于强调或区分文本的部分,但是,将汉字斜体化可能会破坏文本的自然流动和可读性。
与拉丁字符不同,汉字是方形字符,传统上不以斜体书写,许多中文字体没有每个字符的特定斜体字形。当将中文文本斜体化时,软件通常只是倾斜字符,这可能导致视觉上不愉快和不专业的外观。
## 翻译
YAMLResume 采用以下翻译用于中文简历中的各种选项和术语。
### 教育学位
| 英文 | 中文(简体) | 中文(繁体,香港) | 中文(繁体,台湾) |
| ------------- | ------ | --------- | --------- |
| Middle School | 初中 | 初中 | 初中 |
| High School | 高中 | 高中 | 高中 |
| Diploma | 专科 | 專科 | 專科 |
| Associate | 副学士 | 副學士 | 副學士 |
| Bachelor | 学士 | 學士 | 學士 |
| Master | 硕士 | 碩士 | 碩士 |
| Doctor | 博士 | 博士 | 博士 |
### 语言
| 英文 | 中文(简体) | 中文(繁体,香港) | 中文(繁体,台湾) |
| ----------- | ------ | --------- | --------- |
| Afrikaans | 南非荷兰语 | 南非荷蘭語 | 南非荷蘭語 |
| Albanian | 阿尔巴尼亚语 | 阿爾巴尼亞語 | 阿爾巴尼亞語 |
| Amharic | 阿姆哈拉语 | 阿姆哈拉語 | 阿姆哈拉語 |
| Arabic | 阿拉伯语 | 阿拉伯語 | 阿拉伯語 |
| Azerbaijani | 阿塞拜疆语 | 阿塞拜疆語 | 亞塞拜然語 |
| Belarusian | 白俄罗斯语 | 白俄羅斯語 | 白俄羅斯語 |
| Bengali | 孟加拉语 | 孟加拉語 | 孟加拉語 |
| Bhojpuri | 博杰普尔语 | 博傑普爾語 | 博傑普爾語 |
| Bulgarian | 保加利亚语 | 保加利亞語 | 保加利亞語 |
| Burmese | 缅甸语 | 緬甸語 | 緬甸語 |
| Cantonese | 粤语 | 粵語 | 粵語 |
| Catalan | 加泰罗尼亚语 | 加泰羅尼亞語 | 加泰隆尼亞語 |
| Chinese | 中文 | 中文 | 中文 |
| Croatian | 克罗地亚语 | 克羅地亞語 | 克羅埃西亞語 |
| Czech | 捷克语 | 捷克語 | 捷克語 |
| Danish | 丹麦语 | 丹麥語 | 丹麥語 |
| Dutch | 荷兰语 | 荷蘭語 | 荷蘭語 |
| English | 英语 | 英語 | 英語 |
| Estonian | 爱沙尼亚语 | 愛沙尼亞語 | 愛沙尼亞語 |
| Farsi | 波斯语 | 波斯語 | 波斯語 |
| Filipino | 菲律宾语 | 菲律賓語 | 菲律賓語 |
| Finnish | 芬兰语 | 芬蘭語 | 芬蘭語 |
| French | 法语 | 法語 | 法語 |
| German | 德语 | 德語 | 德語 |
| Greek | 希腊语 | 希臘語 | 希臘語 |
| Gujarati | 古吉拉特语 | 古吉拉特語 | 古吉拉特語 |
| Hausa | 豪萨语 | 豪薩語 | 豪薩語 |
| Hebrew | 希伯来语 | 希伯來語 | 希伯來語 |
| Hindi | 印地语 | 印地語 | 印地語 |
| Hungarian | 匈牙利语 | 匈牙利語 | 匈牙利語 |
| Icelandic | 冰岛语 | 冰島語 | 冰島語 |
| Igbo | 伊博语 | 伊博語 | 伊博語 |
| Indonesian | 印度尼西亚语 | 印度尼西亞語 | 印度尼西亞語 |
| Irish | 爱尔兰语 | 愛爾蘭語 | 愛爾蘭語 |
| Italian | 意大利语 | 意大利語 | 意大利語 |
| Japanese | 日语 | 日語 | 日語 |
| Javanese | 爪哇语 | 爪哇語 | 爪哇語 |
| Kazakh | 哈萨克语 | 哈薩克語 | 哈薩克語 |
| Khmer | 高棉语 | 高棉語 | 高棉語 |
| Korean | 韩语 | 韓語 | 韓語 |
| Lahnda | 拉亨达语 | 拉亨達語 | 拉亨達語 |
| Latvian | 拉脱维亚语 | 拉脫維亞語 | 拉脫維亞語 |
| Lithuanian | 立陶宛语 | 立陶宛語 | 立陶宛語 |
| Malay | 马来语 | 馬來語 | 馬來語 |
| Mandarin | 普通话 | 普通話 | 普通話 |
| Marathi | 马拉地语 | 馬拉地語 | 馬拉地語 |
| Nepali | 尼泊尔语 | 尼泊爾語 | 尼泊爾語 |
| Norwegian | 挪威语 | 挪威語 | 挪威語 |
| Oromo | 奥罗莫语 | 奧羅莫語 | 奧羅莫語 |
| Pashto | 普什图语 | 普什圖語 | 普什圖語 |
| Polish | 波兰语 | 波蘭語 | 波蘭語 |
| Portuguese | 葡萄牙语 | 葡萄牙語 | 葡萄牙語 |
| Romanian | 罗马尼亚语 | 羅馬尼亞語 | 羅馬尼亞語 |
| Russian | 俄语 | 俄語 | 俄語 |
| Serbian | 塞尔维亚语 | 塞爾維亞語 | 塞爾維亞語 |
| Shona | 绍纳语 | 紹納語 | 紹納語 |
| Sinhala | 僧伽罗语 | 僧伽羅語 | 僧伽羅語 |
| Slovak | 斯洛伐克语 | 斯洛伐克語 | 斯洛伐克語 |
| Slovene | 斯洛文尼亚语 | 斯洛文尼亞語 | 斯洛文尼亞語 |
| Somali | 索马里语 | 索馬里語 | 索馬里語 |
| Spanish | 西班牙语 | 西班牙語 | 西班牙語 |
| Sundanese | 巽他语 | 巽他語 | 巽他語 |
| Swahili | 斯瓦希里语 | 斯瓦希里語 | 斯瓦希里語 |
| Swedish | 瑞典语 | 瑞典語 | 瑞典語 |
| Tagalog | 他加禄语 | 他加祿語 | 他加祿語 |
| Tamil | 泰米尔语 | 泰米爾語 | 泰米爾語 |
| Telugu | 泰卢固语 | 泰盧固語 | 泰盧固語 |
| Thai | 泰语 | 泰語 | 泰語 |
| Turkish | 土耳其语 | 土耳其語 | 土耳其語 |
| Ukrainian | 乌克兰语 | 烏克蘭語 | 烏克蘭語 |
| Urdu | 乌尔都语 | 烏爾都語 | 烏爾都語 |
| Uzbek | 乌兹别克语 | 烏茲別克語 | 烏茲別克語 |
| Vietnamese | 越南语 | 越南語 | 越南語 |
| Yoruba | 约鲁巴语 | 約魯巴語 | 約魯巴語 |
| Zulu | 祖鲁语 | 祖魯語 | 祖魯語 |
### 语言熟练度
| 英文 | 中文(简体) | 中文(繁体,香港) | 中文(繁体,台湾) |
| -------------------------------- | ------- | --------- | --------- |
| Elementary Proficiency | 初级水平 | 初級水平 | 初級水平 |
| Limited Working Proficiency | 有限工作水平 | 有限工作水平 | 有限工作水平 |
| Minimum Professional Proficiency | 最低专业水平 | 最低專業水平 | 最低專業水平 |
| Full Professional Proficiency | 完全专业水平 | 完全專業水平 | 完全專業水平 |
| Native or Bilingual Proficiency | 母语或双语水平 | 母語或雙語水平 | 母語或雙語水平 |
### 位置(国家和地区)
| 英文 | 中文(简体) | 中文(繁体,香港) | 中文(繁体,台湾) |
| ------------------------------------ | --------------- | --------------- | --------------- |
| Afghanistan | 阿富汗 | 阿富汗 | 阿富汗 |
| Aland Islands | 奥兰群岛 | 奧蘭羣島 | 奧蘭群島 |
| Albania | 阿尔巴尼亚 | 阿爾巴尼亞 | 阿爾巴尼亞 |
| Algeria | 阿尔及利亚 | 阿爾及利亞 | 阿爾及利亞 |
| American Samoa | 美属萨摩亚 | 美屬薩摩亞 | 美屬薩摩亞 |
| Andorra | 安道尔 | 安道爾 | 安道爾 |
| Angola | 安哥拉 | 安哥拉 | 安哥拉 |
| Anguilla | 安圭拉 | 安圭拉 | 安圭拉 |
| Antarctica | 南极洲 | 南極洲 | 南極洲 |
| Antigua And Barbuda | 安提瓜和巴布达 | 安提瓜和巴布達 | 安地卡及巴布達 |
| Argentina | 阿根廷 | 阿根廷 | 阿根廷 |
| Armenia | 亚美尼亚 | 亞美尼亞 | 亞美尼亞 |
| Aruba | 阿鲁巴 | 阿魯巴 | 阿魯巴 |
| Australia | 澳大利亚 | 澳大利亞 | 澳大利亞 |
| Austria | 奥地利 | 奧地利 | 奧地利 |
| Azerbaijan | 阿塞拜疆 | 阿塞拜疆 | 亞塞拜然 |
| Bahrain | 巴林 | 巴林 | 巴林 |
| Bangladesh | 孟加拉 | 孟加拉 | 孟加拉 |
| Barbados | 巴巴多斯 | 巴巴多斯 | 巴貝多 |
| Belarus | 白俄罗斯 | 白俄羅斯 | 白俄羅斯 |
| Belgium | 比利时 | 比利時 | 比利時 |
| Belize | 伯利兹 | 伯利茲 | 貝里斯 |
| Benin | 贝宁 | 貝寧 | 貝南 |
| Bermuda | 百慕大 | 百慕大 | 百慕大 |
| Bhutan | 不丹 | 不丹 | 不丹 |
| Bolivia | 玻利维亚 | 玻利維亞 | 玻利維亞 |
| Bonaire, Sint Eustatius and Saba | 博内尔岛、圣尤斯特歇斯和萨巴岛 | 博內爾島、聖尤斯特歇斯和薩巴島 | 博內爾島、聖尤斯特歇斯和薩巴島 |
| Bosnia and Herzegovina | 波斯尼亚和黑塞哥维那 | 波斯尼亞和黑塞哥維那 | 波斯尼亞和黑塞哥維那 |
| Botswana | 博茨瓦纳 | 博茨瓦納 | 波札那 |
| Bouvet Island | 布维岛 | 布維島 | 布維島 |
| Brazil | 巴西 | 巴西 | 巴西 |
| British Indian Ocean Territory | 英属印度洋领地 | 英屬印度洋領地 | 英屬印度洋領地 |
| Brunei | 文莱 | 文萊 | 汶萊 |
| Bulgaria | 保加利亚 | 保加利亞 | 保加利亞 |
| Burkina Faso | 布基纳法索 | 布基納法索 | 布吉納法索 |
| Burundi | 布隆迪 | 布隆迪 | 蒲隆地 |
| Cambodia | 柬埔寨 | 柬埔寨 | 柬埔寨 |
| Cameroon | 喀麦隆 | 喀麥隆 | 喀麥隆 |
| Canada | 加拿大 | 加拿大 | 加拿大 |
| Cape Verde | 佛得角 | 佛得角 | 維德角 |
| Cayman Islands | 开曼群岛 | 開曼羣島 | 開曼群島 |
| Central African Republic | 中非 | 中非 | 中非 |
| Chad | 乍得 | 乍得 | 查德 |
| Chile | 智利 | 智利 | 智利 |
| China | 中国 | 中國 | 中國 |
| Christmas Island | 圣诞岛 | 聖誕島 | 聖誕島 |
| Cocos (Keeling) Islands | 科科斯(基林)群岛 | 科科斯(基林)羣島 | 科科斯(基林)群島 |
| Colombia | 哥伦比亚 | 哥倫比亞 | 哥倫比亞 |
| Comoros | 科摩罗 | 科摩羅 | 葛摩 |
| Congo | 刚果 | 剛果 | 剛果 |
| Cook Islands | 库克群岛 | 庫克羣島 | 庫克群島 |
| Costa Rica | 哥斯达黎加 | 哥斯達黎加 | 哥斯大黎加 |
| Cote D'Ivoire (Ivory Coast) | 科特迪瓦 | 科特迪瓦 | 象牙海岸 |
| Croatia | 克罗地亚 | 克羅地亞 | 克羅埃西亞 |
| Cuba | 古巴 | 古巴 | 古巴 |
| Curaçao | 库拉索 | 庫拉索 | 庫拉索 |
| Cyprus | 塞浦路斯 | 塞浦路斯 | 塞普勒斯 |
| Czech Republic | 捷克 | 捷克 | 捷克 |
| Democratic Republic of the Congo | 刚果(金) | 剛果(金) | 剛果(金) |
| Denmark | 丹麦 | 丹麥 | 丹麥 |
| Djibouti | 吉布提 | 吉布提 | 吉布提 |
| Dominica | 多米尼加 | 多米尼加 | 多明尼加 |
| Dominican Republic | 多明尼加共和国 | 多明尼加共和國 | 多明尼加共和國 |
| East Timor | 东帝汶 | 東帝汶 | 東帝汶 |
| Ecuador | 厄瓜多尔 | 厄瓜多爾 | 厄瓜多 |
| Egypt | 埃及 | 埃及 | 埃及 |
| El Salvador | 萨尔瓦多 | 薩爾瓦多 | 薩爾瓦多 |
| Equatorial Guinea | 赤道几内亚 | 赤道幾內亞 | 赤道幾內亞 |
| Eritrea | 厄立特里亚 | 厄立特里亞 | 厄利垂亞 |
| Estonia | 爱沙尼亚 | 愛沙尼亞 | 愛沙尼亞 |
| Ethiopia | 埃塞俄比亚 | 埃塞俄比亞 | 衣索比亞 |
| Falkland Islands | 福克兰群岛 | 福克蘭羣島 | 福克蘭群島 |
| Faroe Islands | 法罗群岛 | 法羅羣島 | 法羅群島 |
| Fiji Islands | 斐济 | 斐濟 | 斐濟 |
| Finland | 芬兰 | 芬蘭 | 芬蘭 |
| France | 法国 | 法國 | 法國 |
| French Guiana | 法属圭亚那 | 法屬圭亞那 | 法屬蓋亞那 |
| French Polynesia | 法属波利尼西亚 | 法屬波利尼西亞 | 法屬波利尼西亞 |
| French Southern Territories | 法属南部领地 | 法屬南部領地 | 法屬南部領地 |
| Gabon | 加蓬 | 加蓬 | 加彭 |
| Gambia The | 冈比亚 | 岡比亞 | 甘比亞 |
| Georgia | 格鲁吉亚 | 格魯吉亞 | 喬治亞 |
| Germany | 德国 | 德國 | 德國 |
| Ghana | 加纳 | 加納 | 迦納 |
| Gibraltar | 直布罗陀 | 直布羅陀 | 直布羅陀 |
| Greece | 希腊 | 希臘 | 希臘 |
| Greenland | 格陵兰岛 | 格陵蘭島 | 格陵蘭島 |
| Grenada | 格林纳达 | 格林納達 | 格瑞那達 |
| Guadeloupe | 瓜德罗普岛 | 瓜德羅普島 | 瓜德羅普島 |
| Guam | 关岛 | 關島 | 關島 |
| Guatemala | 危地马拉 | 危地馬拉 | 瓜地馬拉 |
| Guernsey and Alderney | 根西岛 | 根西島 | 根西島 |
| Guinea | 几内亚 | 幾內亞 | 幾內亞 |
| Guinea-Bissau | 几内亚比绍 | 幾內亞比紹 | 幾內亞比索 |
| Guyana | 圭亚那 | 圭亞那 | 蓋亞那 |
| Haiti | 海地 | 海地 | 海地 |
| Heard Island and McDonald Islands | 赫德·唐纳岛及麦唐纳岛 | 赫德·唐納島及麥唐納島 | 赫德·唐納島及麥唐納島 |
| Honduras | 洪都拉斯 | 洪都拉斯 | 宏都拉斯 |
| Hong Kong S.A.R. | 中国香港 | 中國香港 | 中國香港 |
| Hungary | 匈牙利 | 匈牙利 | 匈牙利 |
| Iceland | 冰岛 | 冰島 | 冰島 |
| India | 印度 | 印度 | 印度 |
| Indonesia | 印度尼西亚 | 印度尼西亞 | 印度尼西亞 |
| Iran | 伊朗 | 伊朗 | 伊朗 |
| Iraq | 伊拉克 | 伊拉克 | 伊拉克 |
| Ireland | 爱尔兰 | 愛爾蘭 | 愛爾蘭 |
| Israel | 以色列 | 以色列 | 以色列 |
| Italy | 意大利 | 意大利 | 義大利 |
| Jamaica | 牙买加 | 牙買加 | 牙買加 |
| Japan | 日本 | 日本 | 日本 |
| Jersey | 泽西岛 | 澤西島 | 澤西島 |
| Jordan | 约旦 | 約旦 | 約旦 |
| Kazakhstan | 哈萨克斯坦 | 哈薩克斯坦 | 哈薩克 |
| Kenya | 肯尼亚 | 肯尼亞 | 肯亞 |
| Kiribati | 基里巴斯 | 基里巴斯 | 吉里巴斯 |
| Kosovo | 科索沃 | 科索沃 | 科索沃 |
| Kuwait | 科威特 | 科威特 | 科威特 |
| Kyrgyzstan | 吉尔吉斯斯坦 | 吉爾吉斯斯坦 | 吉爾吉斯斯坦 |
| Laos | 寮人民民主共和国 | 寮人民民主共和國 | 寮人民民主共和國 |
| Latvia | 拉脱维亚 | 拉脫維亞 | 拉脫維亞 |
| Lebanon | 黎巴嫩 | 黎巴嫩 | 黎巴嫩 |
| Lesotho | 莱索托 | 萊索托 | 賴索托 |
| Liberia | 利比里亚 | 利比里亞 | 賴比瑞亞 |
| Libya | 利比亚 | 利比亞 | 利比亞 |
| Liechtenstein | 列支敦士登 | 列支敦士登 | 列支敦斯登 |
| Lithuania | 立陶宛 | 立陶宛 | 立陶宛 |
| Luxembourg | 卢森堡 | 盧森堡 | 盧森堡 |
| Macau S.A.R. | 中国澳门 | 中國澳門 | 中國澳門 |
| Madagascar | 马达加斯加 | 馬達加斯加 | 馬達加斯加 |
| Malawi | 马拉维 | 馬拉維 | 馬拉維 |
| Malaysia | 马来西亚 | 馬來西亞 | 馬來西亞 |
| Maldives | 马尔代夫 | 馬爾代夫 | 馬爾地夫 |
| Mali | 马里 | 馬裏 | 馬裡 |
| Malta | 马耳他 | 馬耳他 | 馬耳他 |
| Man (Isle of) | 马恩岛 | 馬恩島 | 馬恩島 |
| Marshall Islands | 马绍尔群岛 | 馬紹爾羣島 | 馬紹爾群島 |
| Martinique | 马提尼克岛 | 馬提尼克島 | 馬提尼克島 |
| Mauritania | 毛里塔尼亚 | 毛里塔尼亞 | 茅利塔尼亞 |
| Mauritius | 毛里求斯 | 毛里求斯 | 模里西斯 |
| Mayotte | 马约特 | 馬約特 | 馬約特 |
| Mexico | 墨西哥 | 墨西哥 | 墨西哥 |
| Micronesia | 密克罗尼西亚 | 密克羅尼西亞 | 密克羅尼西亞 |
| Moldova | 摩尔多瓦 | 摩爾多瓦 | 摩爾多瓦 |
| Monaco | 摩纳哥 | 摩納哥 | 摩納哥 |
| Mongolia | 蒙古 | 蒙古 | 蒙古 |
| Montenegro | 黑山 | 黑山 | 黑山 |
| Montserrat | 蒙特塞拉特 | 蒙特塞拉特 | 蒙特塞拉特 |
| Morocco | 摩洛哥 | 摩洛哥 | 摩洛哥 |
| Mozambique | 莫桑比克 | 莫桑比克 | 莫三比克 |
| Myanmar | 缅甸 | 緬甸 | 緬甸 |
| Namibia | 纳米比亚 | 納米比亞 | 奈米比亞 |
| Nauru | 瑙鲁 | 瑙魯 | 諾魯 |
| Nepal | 尼泊尔 | 尼泊爾 | 尼泊爾 |
| Netherlands | 荷兰 | 荷蘭 | 荷蘭 |
| New Caledonia | 新喀里多尼亚 | 新喀里多尼亞 | 新喀里多尼亞 |
| New Zealand | 新西兰 | 新西蘭 | 紐西蘭 |
| Nicaragua | 尼加拉瓜 | 尼加拉瓜 | 尼加拉瓜 |
| Niger | 尼日尔 | 尼日爾 | 尼日 |
| Nigeria | 尼日利亚 | 尼日利亞 | 奈及利亞 |
| Niue | 纽埃 | 紐埃 | 紐埃 |
| Norfolk Island | 诺福克岛 | 諾福克島 | 諾福克島 |
| North Korea | 朝鲜 | 朝鮮 | 朝鮮 |
| North Macedonia | 北馬其頓 | 北馬其頓 | 北馬其頓 |
| Northern Mariana Islands | 北马里亚纳群岛 | 北马里亞納羣島 | 北马里亞納群島 |
| Norway | 挪威 | 挪威 | 挪威 |
| Oman | 阿曼 | 阿曼 | 阿曼 |
| Pakistan | 巴基斯坦 | 巴基斯坦 | 巴基斯坦 |
| Palau | 帕劳 | 帕勞 | 帛琉 |
| Palestinian Territory Occupied | 巴勒斯坦 | 巴勒斯坦 | 巴勒斯坦 |
| Panama | 巴拿马 | 巴拿馬 | 巴拿馬 |
| Papua new Guinea | 巴布亚新几内亚 | 巴布亞新幾內亞 | 巴布亞紐幾內亞 |
| Paraguay | 巴拉圭 | 巴拉圭 | 巴拉圭 |
| Peru | 秘鲁 | 祕魯 | 秘魯 |
| Philippines | 菲律宾 | 菲律賓 | 菲律賓 |
| Pitcairn Island | 皮特凯恩群岛 | 皮特凱恩羣島 | 皮特凱恩群島 |
| Poland | 波兰 | 波蘭 | 波蘭 |
| Portugal | 葡萄牙 | 葡萄牙 | 葡萄牙 |
| Puerto Rico | 波多黎各 | 波多黎各 | 波多黎各 |
| Qatar | 卡塔尔 | 卡塔爾 | 卡達 |
| Reunion | 留尼汪岛 | 留尼汪島 | 留尼汪島 |
| Romania | 罗马尼亚 | 羅馬尼亞 | 羅馬尼亞 |
| Russia | 俄罗斯联邦 | 俄羅斯聯邦 | 俄羅斯聯邦 |
| Rwanda | 卢旺达 | 盧旺達 | 盧安達 |
| Saint Helena | 圣赫勒拿 | 聖赫勒拿 | 聖赫勒拿 |
| Saint Kitts And Nevis | 圣基茨和尼维斯 | 聖基茨和尼維斯 | 聖克里斯多福及尼維斯 |
| Saint Lucia | 圣卢西亚 | 聖盧西亞 | 聖露西亞 |
| Saint Pierre and Miquelon | 圣皮埃尔和密克隆 | 聖皮埃爾和密克隆 | 聖皮埃爾和密克隆 |
| Saint Vincent And The Grenadines | 圣文森特和格林纳丁斯 | 聖文森特和格林納丁斯 | 聖文森及格瑞那丁 |
| Saint-Barthelemy | 圣巴泰勒米 | 聖巴泰勒米 | 聖巴泰勒米 |
| Saint-Martin (French part) | 密克罗尼西亚 | 密克羅尼西亞 | 密克羅尼西亞 |
| Samoa | 萨摩亚 | 薩摩亞 | 薩摩亞 |
| San Marino | 圣马力诺 | 聖馬力諾 | 聖馬利諾 |
| Sao Tome and Principe | 圣多美和普林西比 | 聖多美和普林西比 | 聖多美和普林西比 |
| Saudi Arabia | 沙特阿拉伯 | 沙特阿拉伯 | 沙烏地阿拉伯 |
| Senegal | 塞内加尔 | 塞內加爾 | 塞內加爾 |
| Serbia | 塞尔维亚 | 塞爾維亞 | 塞爾維亞 |
| Seychelles | 塞舌尔 | 塞舌爾 | 塞席爾 |
| Sierra Leone | 塞拉利昂 | 塞拉利昂 | 獅子山 |
| Singapore | 新加坡 | 新加坡 | 新加坡 |
| Sint Maarten (Dutch part) | 圣马丁岛(荷兰部分) | 聖馬丁島(荷蘭部分) | 聖馬丁島(荷蘭部分) |
| Slovakia | 斯洛伐克 | 斯洛伐克 | 斯洛伐克 |
| Slovenia | 斯洛文尼亚 | 斯洛文尼亞 | 斯洛維尼亞 |
| Solomon Islands | 所罗门群岛 | 所羅門羣島 | 索羅門群島 |
| Somalia | 索马里 | 索馬里 | 索馬利亞 |
| South Africa | 南非 | 南非 | 南非 |
| South Georgia | 南乔治亚 | 南喬治亞 | 南喬治亞 |
| South Korea | 韩国 | 韓國 | 韓國 |
| South Sudan | 南苏丹 | 南蘇丹 | 南蘇丹 |
| Spain | 西班牙 | 西班牙 | 西班牙 |
| Sri Lanka | 斯里兰卡 | 斯里蘭卡 | 斯里蘭卡 |
| Sudan | 苏丹 | 蘇丹 | 蘇丹 |
| Suriname | 苏里南 | 蘇里南 | 蘇利南 |
| Svalbard And Jan Mayen Islands | 斯瓦尔巴和扬马延群岛 | 斯瓦爾巴和揚馬延羣島 | 斯瓦爾巴和揚馬延羣島 |
| Swaziland | 斯威士兰 | 斯威士蘭 | 史瓦濟蘭 |
| Sweden | 瑞典 | 瑞典 | 瑞典 |
| Switzerland | 瑞士 | 瑞士 | 瑞士 |
| Syria | 叙利亚 | 敘利亞 | 敘利亞 |
| Taiwan | 中国台湾 | 中國臺灣 | 中國臺灣 |
| Tajikistan | 塔吉克斯坦 | 塔吉克斯坦 | 塔吉克 |
| Tanzania | 坦桑尼亚 | 坦桑尼亞 | 坦尚尼亞 |
| Thailand | 泰国 | 泰國 | 泰國 |
| The Bahamas | 巴哈马 | 巴哈馬 | 巴哈馬 |
| Togo | 多哥 | 多哥 | 多哥 |
| Tokelau | 托克劳 | 托克勞 | 托克勞 |
| Tonga | 汤加 | 湯加 | 湯加 |
| Trinidad And Tobago | 特立尼达和多巴哥 | 特立尼達和多巴哥 | 千里達及托巴哥 |
| Tunisia | 突尼斯 | 突尼斯 | 突尼西亞 |
| Türkiye | 土耳其 | 土耳其 | 土耳其 |
| Turkmenistan | 土库曼斯坦 | 土庫曼斯坦 | 土庫曼 |
| Turks And Caicos Islands | 特克斯和凯科斯群岛 | 特克斯和凱科斯羣島 | 特克斯和凱科斯群島 |
| Tuvalu | 图瓦卢 | 圖瓦盧 | 吐瓦魯 |
| Uganda | 乌干达 | 烏干達 | 烏干達 |
| Ukraine | 乌克兰 | 烏克蘭 | 烏克蘭 |
| United Arab Emirates | 阿拉伯联合酋长国 | 阿拉伯聯合酋長國 | 阿拉伯聯合大公國 |
| United Kingdom | 英国 | 英國 | 英國 |
| United States | 美国 | 美國 | 美國 |
| United States Minor Outlying Islands | 美国本土外小岛屿 | 美國本土外小島嶼 | 美國本土外小島嶼 |
| Uruguay | 乌拉圭 | 烏拉圭 | 烏拉圭 |
| Uzbekistan | 乌兹别克斯坦 | 烏茲別克斯坦 | 烏茲別克 |
| Vanuatu | 瓦努阿图 | 瓦努阿圖 | 萬那杜 |
| Vatican City State (Holy See) | 梵蒂冈 | 梵蒂岡 | 梵蒂岡 |
| Venezuela | 委内瑞拉 | 委內瑞拉 | 委內瑞拉 |
| Vietnam | 越南 | 越南 | 越南 |
| Virgin Islands (British) | 圣文森特和格林纳丁斯 | 聖文森特和格林納丁斯 | 聖文森及格瑞那丁 |
| Virgin Islands (US) | 维尔京群岛(美国) | 維爾京羣島(美國) | 維爾京群島(美國) |
| Wallis And Futuna Islands | 瓦利斯群岛和富图纳群岛 | 瓦利斯羣島和富圖納羣島 | 瓦利斯群島和富圖納群島 |
| Western Sahara | 西撒哈拉 | 西撒哈拉 | 西撒哈拉 |
| Yemen | 也门 | 也門 | 葉門 |
| Zambia | 赞比亚 | 贊比亞 | 尚比亞 |
| Zimbabwe | 津巴布韦 | 津巴布韋 | 辛巴威 |
### 章节名称
| 英文 | 中文(简体) | 中文(繁体,香港) | 中文(繁体,台湾) |
| ------------ | ------ | --------- | --------- |
| Awards | 荣誉 | 榮譽 | 榮譽 |
| Basics | 简介 | 簡介 | 簡介 |
| Certificates | 证书 | 證書 | 證書 |
| Education | 教育背景 | 教育背景 | 教育背景 |
| Interests | 兴趣爱好 | 興趣愛好 | 興趣愛好 |
| Languages | 语言 | 語言 | 語言 |
| Location | 地址 | 地址 | 地址 |
| Profiles | 社交信息 | 社交信息 | 社交信息 |
| Projects | 项目 | 項目 | 項目 |
| Publications | 出版刊物 | 出版刊物 | 出版刊物 |
| References | 引荐 | 引薦 | 引薦 |
| Skills | 专业技能 | 專業技能 | 專業技能 |
| Volunteer | 志愿服务 | 志願服務 | 志願服務 |
| Work | 工作经历 | 工作經歷 | 工作經歷 |
### 技能水平
| 英文 | 中文(简体) | 中文(繁体,香港) | 中文(繁体,台湾) |
| ------------ | ------ | --------- | --------- |
| Novice | 新手 | 新手 | 新手 |
| Beginner | 初级 | 初級 | 初級 |
| Intermediate | 中级 | 中級 | 中級 |
| Advanced | 高级 | 高級 | 高級 |
| Expert | 专家 | 專家 | 專家 |
| Master | 大师 | 大師 | 大師 |
### 术语
| 英文 | 中文(简体) | 中文(繁体,香港) | 中文(繁体,台湾) |
| -------- | ------ | --------- | --------- |
| Courses | 课程 | 課程 | 課程 |
| Keywords | 关键字 | 關鍵字 | 關鍵字 |
| Score | 成绩 | 成績 | 成績 |
# 荷兰语
URL: (/zh-cn/docs/locale/dutch)
英语和荷兰语都是[日耳曼语系](https://en.wikipedia.org/wiki/Germanic_languages),荷兰语属于西日耳曼语支,与英语和德语密切相关。虽然它们有许多相似之处,但荷兰语具有独特的特征,需要在 YAMLResume 中特别考虑。
## 语言学
### 字符集
英语和荷兰语都使用[拉丁字母](https://en.wikipedia.org/wiki/Latin_alphabet)。然而,荷兰语包含一些特定的功能:
| 特性 | 英语字符集 | 荷兰语字符集 |
| :------- | :------------- | :--------------------------------------------------------------- |
| **字母表** | 26 个字母 (`a-z`) | 26 个字母 (`a-z`)。二合字母 `ij` 有时被视为一个独特的字母。 |
| **变音符号** | 无 | 使用变音符号如分音符 (`ë`, `ï`) 来表示元音分隔(例如 *coöperatie*),以及锐音符 (`é`) 用于强调。 |
| **特殊字符** | 仅限于基本拉丁字符 | 包括标准字符,但在大写时特殊处理 `ij`(例如 *IJsselmeer*)。 |
主要区别包括:
* **二合字母 `ij`**:在荷兰语中,`ij` 组合通常被视为单个字母。当在句子开头或专有名词大写时,I 和 J 都要大写(例如 *IJmuiden*)。
* **变音符号**:分音符(trema)用于指示两个元音分开主要发音(元音裂隙),而不是作为双元音。
## 习语
### 日期
在荷兰语中,星期和月份以小写书写(与英语不同),除非它们出现在句首。
例如,“Sep 2021”在荷兰语中翻译为“sep. 2021”或“sept. 2021”,月份小写。
### 大写
荷兰语的大写规则通常与英语相似,但也有例外:
* **星期/月份**:小写书写 (*maandag*, *januari*)。
* **语言/国籍**:大写 (*Nederlands*, *Engels*)。
* **代词“我”**:荷兰语的“ik”小写书写,除非在句首。
YAMLResume 在内部为所有简历模板采用固定的选项和术语集。例如,YAMLResume 简历模板中的语言采用 [LinkedIn 的语言流利度选项](https://www.linkedin.com/pulse/language-proficiency-linkedin-duaa-ali/):
* Elementary Proficiency
* Limited Working Proficiency
* Minimum Professional Proficiency
* Full Professional Proficiency
* Native or Bilingual Proficiency
这些翻译成荷兰语如下:
* Elementaire vaardigheid
* Beperkte werkvaardigheid
* Minimale professionele vaardigheid
* Volledige professionele vaardigheid
* Moedertaal of tweetalige vaardigheid
遵循荷兰语大写惯例,仅首字母大写。
## 排版
### 标点符号
荷兰语在标点符号方面与英语有几个显著差异:
* **小数点**:荷兰语使用逗号作为小数点(例如 3,14),而不是像英语那样使用点(3.14)。
* **千位分隔符**:荷兰语使用点或空格作为千位分隔符(例如 1.000 或 1 000),而不是逗号。
* **引号**:荷兰语官方使用双引号(通常是 低-高 `„...”` 或 高-高 `"..."`)或单引号(`'...'`)。
## 翻译
YAMLResume 采用以下翻译用于荷兰语简历中的各种选项和术语。
### 教育学位
| English | Dutch |
| :------------ | :--------- |
| Middle School | Middelbaar |
| High School | Hogeschool |
| Diploma | Diploma |
| Associate | Graduaat |
| Bachelor | Bachelor |
| Master | Master |
| Doctor | Doctoraat |
### 语言
| English | Dutch |
| :---------- | :------------- |
| Afrikaans | Afrikaans |
| Albanian | Albanees |
| Amharic | Amhaars |
| Arabic | Arabisch |
| Azerbaijani | Azerbeidzjaans |
| Belarusian | Wit-Russisch |
| Bengali | Bengaals |
| Bhojpuri | Bhojpuri |
| Bulgarian | Bulgaars |
| Burmese | Birmees |
| Cantonese | Kantonees |
| Catalan | Catalaans |
| Chinese | Chinees |
| Croatian | Kroatisch |
| Czech | Tsjechisch |
| Danish | Deens |
| Dutch | Nederlands |
| English | Engels |
| Estonian | Ests |
| Farsi | Persan |
| Filipino | Filipijns |
| Finnish | Fins |
| French | Frans |
| German | Duits |
| Greek | Grieks |
| Gujarati | Gujarati |
| Hausa | Haoussa |
| Hebrew | Hebreeuws |
| Hindi | Hindi |
| Hungarian | Hongaars |
| Icelandic | IJslands |
| Igbo | Igbo |
| Indonesian | Indonesisch |
| Irish | Iers |
| Italian | Italiaans |
| Japanese | Japans |
| Javanese | Javaans |
| Kazakh | Kazachs |
| Khmer | Khmer |
| Korean | Koreaans |
| Lahnda | Lahnda |
| Latvian | Lets |
| Lithuanian | Litouws |
| Malay | Maleis |
| Mandarin | Mandarijn |
| Marathi | Marathi |
| Nepali | Nepalees |
| Norwegian | Noors |
| Oromo | Oromo |
| Pashto | Pasjto |
| Polish | Pools |
| Portuguese | Portugees |
| Romanian | Roemeense |
| Russian | Russisch |
| Serbian | Servisch |
| Shona | Shona |
| Sinhala | Singalees |
| Slovak | Slowaaks |
| Slovene | Sloveens |
| Somali | Somalisch |
| Spanish | Spaans |
| Sundanese | Soendanees |
| Swahili | Swahili |
| Swedish | Zweeds |
| Tagalog | Tagalog |
| Tamil | Tamoul |
| Telugu | Telugu |
| Thai | Thais |
| Turkish | Turks |
| Ukrainian | Oekraïens |
| Urdu | Urdu |
| Uzbek | Oezbeeks |
| Vietnamese | Vietnamees |
| Yoruba | Joruba |
| Zulu | Zoeloe |
### 语言流利度
| English | Dutch |
| :------------------------------- | :----------------------------------- |
| Elementary Proficiency | Elementaire vaardigheid |
| Limited Working Proficiency | Beperkte werkvaardigheid |
| Minimum Professional Proficiency | Minimale professionele vaardigheid |
| Full Professional Proficiency | Volledige professionele vaardigheid |
| Native or Bilingual Proficiency | Moedertaal of tweetalige vaardigheid |
### 地点(国家和地区)
| English | Dutch |
| :----------------------------------- | :------------------------------------------------ |
| Afghanistan | Afghanistan |
| Aland Islands | Åland eilanden |
| Albania | Albanië |
| Algeria | Algerije |
| American Samoa | Amerikaans-Samoa |
| Andorra | Andorra |
| Angola | Angola |
| Anguilla | Anguilla |
| Antarctica | Antarctica |
| Antigua And Barbuda | Antigua en Barbuda |
| Argentina | Argentinië |
| Armenia | Armenië |
| Aruba | Aruba |
| Australia | Australië |
| Austria | Oostenrijk |
| Azerbaijan | Azerbeidzjan |
| Bahrain | Bahrein |
| Bangladesh | Bangladesh |
| Barbados | Barbados |
| Belarus | Belarus |
| Belgium | België |
| Belize | Belize |
| Benin | Benin |
| Bermuda | Bermuda |
| Bhutan | Bhutan |
| Bolivia | Bolivia |
| Bonaire, Sint Eustatius and Saba | Bonaire, Sint Eustatius en Saba |
| Bosnia and Herzegovina | Bosnië en Herzegovina |
| Botswana | Botswana |
| Bouvet Island | Bouvet-eiland |
| Brazil | Brazilië |
| British Indian Ocean Territory | Brits Indische Oceaanterritorium |
| Brunei | Brunei |
| Bulgaria | Bulgarije |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Cambodja |
| Cameroon | Kameroen |
| Canada | Canada |
| Cape Verde | Kaapverdië |
| Cayman Islands | Kaaimaneilanden |
| Central African Republic | Centraal-Afrikaanse Republiek |
| Chad | Tsjaad |
| Chile | Chili |
| China | China |
| Christmas Island | Christmaseiland |
| Cocos (Keeling) Islands | Cocoseilanden |
| Colombia | Colombië |
| Comoros | Comoren |
| Congo | Congo |
| Cook Islands | Cook Eilanden |
| Costa Rica | Costa Rica |
| Cote D'Ivoire (Ivory Coast) | Ivoorkust |
| Croatia | Kroatië |
| Cuba | Cuba |
| Curaçao | Curacao |
| Cyprus | Cyprus |
| Czech Republic | Tsjechische Republiek |
| Democratic Republic of the Congo | Democratische Republiek Congo |
| Denmark | Denemarken |
| Djibouti | Djibouti |
| Dominica | Dominica |
| Dominican Republic | Dominicaanse Republiek |
| East Timor | Oost-Timor |
| Ecuador | Ecuador |
| Egypt | Egypte |
| El Salvador | El Salvador |
| Equatorial Guinea | Equatoriaal-Guinea |
| Eritrea | Eritrea |
| Estonia | Estland |
| Ethiopia | Ethiopië |
| Falkland Islands | Falklandeilanden |
| Faroe Islands | Faeröer eilanden |
| Fiji Islands | Fiji-eilanden |
| Finland | Finland |
| France | Frankrijk |
| French Guiana | Frans-Guyana |
| French Polynesia | Frans-Polynesië |
| French Southern Territories | Franse Zuidelijke Gebieden |
| Gabon | Gabon |
| Gambia The | Gambia De |
| Georgia | Georgië |
| Germany | Duitsland |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Griekenland |
| Greenland | Groenland |
| Grenada | Grenada |
| Guadeloupe | Guadeloupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernsey en Alderney |
| Guinea | Guinea |
| Guinea-Bissau | Guinee-Bissau |
| Guyana | Guyana |
| Haiti | Haïti |
| Heard Island and McDonald Islands | Heard Island en McDonald Islands |
| Honduras | Honduras |
| Hong Kong | HongKong |
| Hungary | Hongarijë |
| Iceland | Ijsland |
| India | India |
| Indonesia | Indonesië |
| Iran | Iran |
| Iraq | Iraq |
| Ireland | Ierland |
| Israel | Israël |
| Italy | Italië |
| Jamaica | Jamaica |
| Japan | Japan |
| Jersey | Jersey |
| Jordan | Jordanië |
| Kazakhstan | Kazachstan |
| Kenya | Kenia |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Koeweit |
| Kyrgyzstan | Kirgizië |
| Laos | Laos |
| Latvia | Letland |
| Lebanon | Libanon |
| Lesotho | Lesotho |
| Liberia | Liberia |
| Libya | Libië |
| Liechtenstein | Liechtenstein |
| Lithuania | Litouwen |
| Luxembourg | Luxemburg |
| Macau | Macau |
| Madagascar | Madagascar |
| Malawi | Malawi |
| Malaysia | Maleisië |
| Maldives | Maldiven |
| Mali | Mali |
| Malta | Malta |
| Man (Isle of) | Man (Eiland van) |
| Marshall Islands | Marshall eilanden |
| Martinique | Martinique |
| Mauritania | Mauritanië |
| Mauritius | Mauritius |
| Mayotte | Mayotte |
| Mexico | Mexico |
| Micronesia | Micronesië |
| Moldova | Moldavië |
| Monaco | Monaco |
| Mongolia | Mongolië |
| Montenegro | Montenegro |
| Montserrat | Montserrat |
| Morocco | Marokko |
| Mozambique | Mozambique |
| Myanmar | Myanmar |
| Namibia | Namibië |
| Nauru | Nauru |
| Nepal | Nepal |
| Netherlands | Nederland |
| New Caledonia | Nieuw-Caledonië |
| New Zealand | Nieuw-Zeeland |
| Nicaragua | Nicaragua |
| Niger | Niger |
| Nigeria | Nigeria |
| Niue | Niue |
| Norfolk Island | Norfolkeiland |
| North Korea | Noord-Korea |
| North Macedonia | Noord-Macedionië |
| Northern Mariana Islands | Noordelijke Marianen |
| Norway | Noorwegen |
| Oman | Oman |
| Pakistan | Pakistan |
| Palau | Palau |
| Palestinian Territory Occupied | Palestijns bezet gebied |
| Panama | Panama |
| Papua new Guinea | Papoea-Nieuw-Guinea |
| Paraguay | Paraguay |
| Peru | Peru |
| Philippines | Philippines |
| Pitcairn Island | Pitcairn-eiland |
| Poland | Polen |
| Portugal | Portugal |
| Puerto Rico | Puerto Rico |
| Qatar | Katar |
| Reunion | Reunion |
| Romania | Roemenië |
| Russia | Rusland |
| Rwanda | Rwanda |
| Saint Helena | Sint-Helena |
| Saint Kitts And Nevis | Saint Kitts en Nevis |
| Saint Lucia | Saint Lucia |
| Saint Pierre and Miquelon | Saint Pierre en Miquelon |
| Saint Vincent And The Grenadines | Saint Vincent en de Grenadines |
| Saint-Barthelemy | Saint-Barthélemy |
| Saint-Martin (French part) | Saint-Martin (Frans deel) |
| Samoa | Samoa |
| San Marino | San Marino |
| Sao Tome and Principe | Sao Tomé en Principe |
| Saudi Arabia | Saoedi-Arabië |
| Senegal | Senegal |
| Serbia | Servië |
| Seychelles | Seychellen |
| Sierra Leone | Sierra Leone |
| Singapore | Singapore |
| Sint Maarten (Dutch part) | Sint Maarten (Nederlands deel) |
| Slovakia | Slowakije |
| Slovenia | Slovenië |
| Solomon Islands | Salomonseilanden |
| Somalia | Somalië |
| South Africa | Zuid-Afrika |
| South Georgia | Zuid-Georgië |
| South Korea | Zuid-Korea |
| South Sudan | Zuid-Sudan |
| Spain | Spanje |
| Sri Lanka | Sri Lanka |
| Sudan | Sudan |
| Suriname | Suriname |
| Svalbard And Jan Mayen Islands | Svalbard- en Jan Mayen-eilanden |
| Swaziland | Swaziland |
| Sweden | Zweden |
| Switzerland | Zwitserland |
| Syria | Syrië |
| Taiwan | Taiwan |
| Tajikistan | Tadsjikistan |
| Tanzania | Tanzania |
| Thailand | Thailand |
| The Bahamas | De Bahama's |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinidad en Tobago |
| Tunisia | Tunesië |
| Türkiye | Turkijë |
| Turkmenistan | Turkmenistan |
| Turks And Caicos Islands | Turks- en Caicoseilanden |
| Tuvalu | Tuvalu |
| Uganda | Oeganda |
| Ukraine | Oekraïne |
| United Arab Emirates | Verenigde Arabische Emiraten |
| United Kingdom | Koninkrijk |
| United States | Verenigde Staten |
| United States Minor Outlying Islands | Kleine afgelegen eilanden van de Verenigde Staten |
| Uruguay | Uruguay |
| Uzbekistan | Oezbekistan |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Vaticaanstad (Heilige Stoel) |
| Venezuela | Venezuela |
| Vietnam | Vietnam |
| Virgin Islands (British) | Britse Maagdeneilanden |
| Virgin Islands (US) | Amerikaanse Maagdeneilanden |
| Wallis And Futuna Islands | Wallis en Futuna-eilanden |
| Western Sahara | Westelijke Sahara |
| Yemen | Jemen |
| Zambia | Zambia |
| Zimbabwe | Zimbabwe |
### 章节名称
| English | Dutch |
| :----------- | :---------------- |
| Awards | Onderscheidingen |
| Basics | Basis Informatie |
| Certificates | Certificaten |
| Education | Opleidingen |
| Interests | Interesses |
| Languages | Talen |
| Location | Locatie |
| Profiles | Profielen |
| Projects | Projecten |
| Publications | Publicaties |
| References | Referenties |
| Skills | Vaardigheden |
| Volunteer | Vrijwilligerswerk |
| Work | Werkervaring |
### 技能水平
| English | Dutch |
| :----------- | :----------- |
| Novice | Nieuweling |
| Beginner | Beginner |
| Intermediate | Intermediair |
| Advanced | Geavanceerd |
| Expert | Expert |
| Master | Meester |
### 选项和术语
| English | Dutch |
| :------- | :---------- |
| Courses | Cursussen |
| Keywords | Trefwoorden |
| Score | Score |
# 英语
URL: (/zh-cn/docs/locale/english)
众所周知,英语在世界各地被广泛使用和说。
在 YAMLResume 中支持英语是一项简单的工作。为了支持使用 LaTeX 的英语简历,几乎不需要额外的设置。
## 语言学
从理论上讲,英语属于[日耳曼语言](https://en.wikipedia.org/wiki/Germanic_languages),这是[印欧语系](https://en.wikipedia.org/wiki/Indo-European_languages)的一个分支,主要由约 5.15 亿人使用,主要在欧洲、北美、大洋洲和南部非洲。
### 字符集
现代英语使用由 26 个字母组成的拉丁字母书写,每个字母都有大写和小写形式。
[拉丁字母](https://en.wikipedia.org/wiki/Latin_alphabet)是世界上使用最广泛的字母书写系统。
## 习语
### 日期
英语有专门的月份词汇,每个都有缩写形式。YAMLResume 默认采用所有月份字段的缩写形式。
| 长形式 | 缩写形式 |
| --------- | ---- |
| January | Jan |
| February | Feb |
| March | Mar |
| April | Apr |
| May | May |
| June | Jun |
| July | Jul |
| August | Aug |
| September | Sep |
| October | Oct |
| November | Nov |
| December | Dec |
### 位置
不同的语言以不同的格式呈现位置。在英语中,当呈现包含地址、城市和国家的地址时,一般部分(国家、州等)通常最后出现,而最具体的部分(城镇、地址等)首先出现。在一些其他语言如中文中,顺序完全相反。
以下是英语中的典型顺序:
1. 地址:包括街道号码、街道名称、公寓号码等。
2. 城市:城市或城镇的名称。
3. 州/省:州或省(如果适用)。
4. 国家:国家的名称。
## 排版
许多排版理论和实践可以被所有拉丁文字语言共享,英语也不例外。我们已经准备了一个[指南](/zh-cn/docs/guide),涵盖了许多细节。
### 字体
查看我们指南中的[指南 -> 字体](/zh-cn/docs/guide/font)了解详情:
* [衬线 vs. 无衬线](/zh-cn/docs/guide/font#serif-vs-sans-serif)
* [比例 vs. 等宽](/zh-cn/docs/guide/font#proportional-vs-monospaced)
* [字距调整](/zh-cn/docs/guide/font#kerning)
* [连字](/zh-cn/docs/guide/font#ligature)
* [斜体](/zh-cn/docs/guide/font#italics)
* [旧式数字](/zh-cn/docs/guide/font#old-style-numbers)
### 标点符号
查看我们指南中的[指南 -> 标点符号](/zh-cn/docs/guide/punctuations)了解详情:
* [连字符](/zh-cn/docs/guide/punctuations#hyphen--)
* [短破折号](/zh-cn/docs/guide/punctuations#en-dash-)
* [长破折号](/zh-cn/docs/guide/punctuations#em-dash-)
## 翻译
YAMLResume 采用以下翻译用于英语简历中使用的各种选项和术语。
### 教育学位
YAMLResume 为教育章节呈现以下预定义学位。
| 英语 |
| ------------- |
| Middle School |
| High School |
| Diploma |
| Associate |
| Bachelor |
| Master |
| Doctor |
### 语言
YAMLResume 为语言章节呈现以下预定义语言选项。
| 英语 |
| ----------- |
| Afrikaans |
| Albanian |
| Amharic |
| Arabic |
| Azerbaijani |
| Belarusian |
| Bengali |
| Bhojpuri |
| Bulgarian |
| Burmese |
| Cantonese |
| Catalan |
| Chinese |
| Croatian |
| Czech |
| Danish |
| Dutch |
| English |
| Estonian |
| Farsi |
| Filipino |
| Finnish |
| French |
| German |
| Greek |
| Gujarati |
| Hausa |
| Hebrew |
| Hindi |
| Hungarian |
| Icelandic |
| Igbo |
| Indonesian |
| Irish |
| Italian |
| Japanese |
| Javanese |
| Kazakh |
| Khmer |
| Korean |
| Lahnda |
| Latvian |
| Lithuanian |
| Malay |
| Mandarin |
| Marathi |
| Nepali |
| Norwegian |
| Oromo |
| Pashto |
| Polish |
| Portuguese |
| Romanian |
| Russian |
| Serbian |
| Shona |
| Sinhala |
| Slovak |
| Slovene |
| Somali |
| Spanish |
| Sundanese |
| Swahili |
| Swedish |
| Tagalog |
| Tamil |
| Telugu |
| Thai |
| Turkish |
| Ukrainian |
| Urdu |
| Uzbek |
| Vietnamese |
| Yoruba |
| Zulu |
### 语言熟练程度
YAMLResume 为语言章节呈现以下预定义语言熟练程度选项。这些选项镜像自[Linkedin](https://www.linkedin.com/pulse/language-proficiency-linkedin-duaa-ali/)。
| 英语 |
| -------------------------------- |
| Elementary Proficiency |
| Limited Working Proficiency |
| Minimum Professional Proficiency |
| Full Professional Proficiency |
| Native or Bilingual Proficiency |
### 位置(国家和地区)
YAMLResume 为位置章节提供以下国家和地区选项。此列表来自[countries-states-cities-database](https://github.com/dr5hn/countries-states-cities-database)。并非所有都是国家,有些是地区或[特别行政区](https://en.wikipedia.org/wiki/Special_administrative_regions_of_China)。
| 英语 |
| ------------------------------------ |
| Afghanistan |
| Aland Islands |
| Albania |
| Algeria |
| American Samoa |
| Andorra |
| Angola |
| Anguilla |
| Antarctica |
| Antigua And Barbuda |
| Argentina |
| Armenia |
| Aruba |
| Australia |
| Austria |
| Azerbaijan |
| Bahrain |
| Bangladesh |
| Barbados |
| Belarus |
| Belgium |
| Belize |
| Benin |
| Bermuda |
| Bhutan |
| Bolivia |
| Bonaire, Sint Eustatius and Saba |
| Bosnia and Herzegovina |
| Botswana |
| Bouvet Island |
| Brazil |
| British Indian Ocean Territory |
| Brunei |
| Bulgaria |
| Burkina Faso |
| Burundi |
| Cambodia |
| Cameroon |
| Canada |
| Cape Verde |
| Cayman Islands |
| Central African Republic |
| Chad |
| Chile |
| China |
| Christmas Island |
| Cocos (Keeling) Islands |
| Colombia |
| Comoros |
| Congo |
| Cook Islands |
| Costa Rica |
| Cote D'Ivoire (Ivory Coast) |
| Croatia |
| Cuba |
| Curaçao |
| Cyprus |
| Czech Republic |
| Democratic Republic of the Congo |
| Denmark |
| Djibouti |
| Dominica |
| Dominican Republic |
| East Timor |
| Ecuador |
| Egypt |
| El Salvador |
| Equatorial Guinea |
| Eritrea |
| Estonia |
| Ethiopia |
| Falkland Islands |
| Faroe Islands |
| Fiji Islands |
| Finland |
| France |
| French Guiana |
| French Polynesia |
| French Southern Territories |
| Gabon |
| Gambia The |
| Georgia |
| Germany |
| Ghana |
| Gibraltar |
| Greece |
| Greenland |
| Grenada |
| Guadeloupe |
| Guam |
| Guatemala |
| Guernsey and Alderney |
| Guinea |
| Guinea-Bissau |
| Guyana |
| Haiti |
| Heard Island and McDonald Islands |
| Honduras |
| Hong Kong S.A.R. |
| Hungary |
| Iceland |
| India |
| Indonesia |
| Iran |
| Iraq |
| Ireland |
| Israel |
| Italy |
| Jamaica |
| Japan |
| Jersey |
| Jordan |
| Kazakhstan |
| Kenya |
| Kiribati |
| Kosovo |
| Kuwait |
| Kyrgyzstan |
| Laos |
| Latvia |
| Lebanon |
| Lesotho |
| Liberia |
| Libya |
| Liechtenstein |
| Lithuania |
| Luxembourg |
| Macau S.A.R. |
| Madagascar |
| Malawi |
| Malaysia |
| Maldives |
| Mali |
| Malta |
| Man (Isle of) |
| Marshall Islands |
| Martinique |
| Mauritania |
| Mauritius |
| Mayotte |
| Mexico |
| Micronesia |
| Moldova |
| Monaco |
| Mongolia |
| Montenegro |
| Montserrat |
| Morocco |
| Mozambique |
| Myanmar |
| Namibia |
| Nauru |
| Nepal |
| Netherlands |
| New Caledonia |
| New Zealand |
| Nicaragua |
| Niger |
| Nigeria |
| Niue |
| Norfolk Island |
| North Korea |
| North Macedonia |
| Northern Mariana Islands |
| Norway |
| Oman |
| Pakistan |
| Palau |
| Palestinian Territory Occupied |
| Panama |
| Papua new Guinea |
| Paraguay |
| Peru |
| Philippines |
| Pitcairn Island |
| Poland |
| Portugal |
| Puerto Rico |
| Qatar |
| Reunion |
| Romania |
| Russia |
| Rwanda |
| Saint Helena |
| Saint Kitts And Nevis |
| Saint Lucia |
| Saint Pierre and Miquelon |
| Saint Vincent And The Grenadines |
| Saint-Barthelemy |
| Saint-Martin (French part) |
| Samoa |
| San Marino |
| Sao Tome and Principe |
| Saudi Arabia |
| Senegal |
| Serbia |
| Seychelles |
| Sierra Leone |
| Singapore |
| Sint Maarten (Dutch part) |
| Slovakia |
| Slovenia |
| Solomon Islands |
| Somalia |
| South Africa |
| South Georgia |
| South Korea |
| South Sudan |
| Spain |
| Sri Lanka |
| Sudan |
| Suriname |
| Svalbard And Jan Mayen Islands |
| Swaziland |
| Sweden |
| Switzerland |
| Syria |
| Taiwan |
| Tajikistan |
| Tanzania |
| Thailand |
| The Bahamas |
| Togo |
| Tokelau |
| Tonga |
| Trinidad And Tobago |
| Tunisia |
| Türkiye |
| Turkmenistan |
| Turks And Caicos Islands |
| Tuvalu |
| Uganda |
| Ukraine |
| United Arab Emirates |
| United Kingdom |
| United States |
| United States Minor Outlying Islands |
| Uruguay |
| Uzbekistan |
| Vanuatu |
| Vatican City State (Holy See) |
| Venezuela |
| Vietnam |
| Virgin Islands (British) |
| Virgin Islands (US) |
| Wallis And Futuna Islands |
| Western Sahara |
| Yemen |
| Zambia |
| Zimbabwe |
### 章节名称
YAMLResume 支持以下章节,每个都有一个章节名称。
| 英语 |
| ------------ |
| Awards |
| Basics |
| Certificates |
| Education |
| Interests |
| Languages |
| Location |
| Profiles |
| Projects |
| Publications |
| References |
| Skills |
| Volunteer |
| Work |
### 技能级别
YAMLResume 为技能章节呈现以下技能级别选项。
| 英语 |
| ------------ |
| Novice |
| Beginner |
| Intermediate |
| Advanced |
| Expert |
| Master |
### 术语
YAMLResume 在我们的简历模板中使用一些固定术语。
| 术语 | 描述 |
| -------- | ------------------- |
| Courses | 用于教育章节的课程 |
| Keywords | 用于工作、项目章节,其中呈现关键词列表 |
| Score | 用于教育章节的学校成绩/分数 |
# 法语
URL: (/zh-cn/docs/locale/french)
法语是印欧语系的一门[罗曼语族语言](https://zh.wikipedia.org/wiki/罗曼语族)。虽然它与英语共用拉丁字母,但在排版、标点符号和语法方面具有鲜明的特征,在 YAMLResume 中需要特别注意。
## 语言学
### 字符集
法语使用基本的 26 个[拉丁字母](https://zh.wikipedia.org/wiki/拉丁字母),并在元音上使用四种变音符号(扬抑符、分音符、抑音符、锐音符),以及在 "ç" 中出现的软音符。此外还有两个合字 "œ" 和 "æ"。
| 特征 | 英语字符集 | 法语字符集 |
| -------- | -------------- | ---------------------------------------------------------------------------------------------- |
| **字母表** | 26 个字母 (`a-z`) | 26 个字母加上带有变音符号的字母和合字 |
| **变音符号** | 无 | 锐音符 (`é`)、抑音符 (`à`, `è`, `ù`)、扬抑符 (`â`, `ê`, `î`, `ô`, `û`)、分音符 (`ë`, `ï`, `ü`, `ÿ`)、软音符 (`ç`) |
| **特殊字符** | 仅限基本拉丁字符 | 包括合字 `œ` (例如 "cœur") 和 `æ` (例如 "ex æquo") |
### 习语
#### 日期
在法语中,星期和月份不大写(与英语不同)。例如,英语中的 "Sep 2021" 在法语中翻译为 "sept. 2021"。
YAMLResume 仅使用月份,因此有以下翻译表:
| English | French |
| --------------- | ----------------- |
| January (Jan) | janvier (janv.) |
| February (Feb) | février (févr.) |
| March (Mar) | mars (mars) |
| April (Apr) | avril (avr.) |
| May (May) | mai (mai) |
| June (Jun) | juin (juin) |
| July (Jul) | juillet (juil.) |
| August (Aug) | août (août) |
| September (Sep) | septembre (sept.) |
| October (Oct) | octobre (oct.) |
| November (Nov) | novembre (nov.) |
| December (Dec) | décembre (déc.) |
#### 大写
法语通常在标题和抬头中使用句首大写,但 YAMLResume 为了与简历标准保持一致,提供了大写的术语。
一个显著的区别是,在标准法语中,用作形容词的语言和国籍不大写(例如 "je parle français"),但在 YAMLResume 的列表中引用名词(语言本身)时,为了保持一致性,它们是大写的。
### 排版
#### 标点符号
法语在标点符号周围的间距方面有特定的规则:
* **高位标点**:冒号 (`:`)、分号 (`;`)、感叹号 (`!`) 和问号 (`?`) 之前需要一个不换行空格。
* **引号**:法语使用书名号 (`«` 和 `»`),并在其内部使用不换行空格(例如 `« Bonjour »`)。
* **小数点**:法语使用逗号作为小数点(例如 3,14)。
* **千位分隔符**:法语使用不换行空格作为千位分隔符(例如 1 000)。
YAMLResume 专门针对法语布局处理冒号间距(例如 ` :`)。
## 翻译
YAMLResume 對法語簡歷中使用的各種選項和術語採用以下翻譯。
### 教育学位
| English | French |
| ------------- | ------------------------------------ |
| Middle School | Collège |
| High School | Lycée |
| Diploma | Diplôme |
| Associate | Diplôme universitaire de technologie |
| Bachelor | Licence |
| Master | Master |
| Doctor | Doctorat |
### 语言
| English | French |
| ----------- | ----------- |
| Afrikaans | Afrikaans |
| Albanian | Albanais |
| Amharic | Amharique |
| Arabic | Arabe |
| Azerbaijani | Azéri |
| Belarusian | Biélorusse |
| Bengali | Bengali |
| Bhojpuri | Bhojpuri |
| Bulgarian | Bulgare |
| Burmese | Birman |
| Cantonese | Cantonais |
| Catalan | Catalan |
| Chinese | Chinois |
| Croatian | Croate |
| Czech | Tchèque |
| Danish | Danois |
| Dutch | Néerlandais |
| English | Anglais |
| Estonian | Estonien |
| Farsi | Persan |
| Filipino | Filipino |
| Finnish | Finnois |
| French | Français |
| German | Allemand |
| Greek | Grec |
| Gujarati | Gujarati |
| Hausa | Haoussa |
| Hebrew | Hébreu |
| Hindi | Hindi |
| Hungarian | Hongrois |
| Icelandic | Islandais |
| Igbo | Igbo |
| Indonesian | Indonésien |
| Irish | Irlandais |
| Italian | Italien |
| Japanese | Japonais |
| Javanese | Javanais |
| Kazakh | Kazakh |
| Khmer | Khmer |
| Korean | Coréen |
| Lahnda | Lahnda |
| Latvian | Letton |
| Lithuanian | Lituanien |
| Malay | Malais |
| Mandarin | Mandarin |
| Marathi | Marathi |
| Nepali | Népalais |
| Norwegian | Norvégien |
| Oromo | Oromo |
| Pashto | Pachto |
| Polish | Polonais |
| Portuguese | Portugisisk |
| Romanian | Roumain |
| Russian | Russe |
| Serbian | Serbe |
| Shona | Shona |
| Sinhala | Cingalais |
| Slovak | Slovaque |
| Slovene | Slovène |
| Somali | Somali |
| Spanish | Espagnol |
| Sundanese | Soundanais |
| Swahili | Swahili |
| Swedish | Suédois |
| Tagalog | Tagalog |
| Tamil | Tamoul |
| Telugu | Telugu |
| Thai | Thaï |
| Turkish | Turc |
| Ukrainian | Ukrainien |
| Urdu | Ourdou |
| Uzbek | Ouzbek |
| Vietnamese | Vietnamien |
| Yoruba | Yoruba |
| Zulu | Zoulou |
### 语言熟练程度
| English | French |
| -------------------------------- | ---------------------------- |
| Elementary Proficiency | Niveau élémentaire |
| Limited Working Proficiency | Niveau de travail limité |
| Minimum Professional Proficiency | Niveau professionnel minimum |
| Full Professional Proficiency | Niveau professionnel complet |
| Native or Bilingual Proficiency | Niveau natif ou bilingue |
### 位置(国家和地区)
| English | French |
| ------------------------------------ | ------------------------------------------ |
| Afghanistan | Afghanistan |
| Aland Islands | Îles Åland |
| Albania | Albanie |
| Algeria | Algérie |
| American Samoa | Samoa américaines |
| Andorra | Andorre |
| Angola | Angola |
| Anguilla | Anguilla |
| Antarctica | Antarctique |
| Antigua And Barbuda | Antigua-et-Barbuda |
| Argentina | Argentine |
| Armenia | Arménie |
| Aruba | Aruba |
| Australia | Australie |
| Austria | Autriche |
| Azerbaijan | Azerbaïdjan |
| Bahrain | Bahreïn |
| Bangladesh | Bangladesh |
| Barbados | Barbade |
| Belarus | Biélorussie |
| Belgium | Belgique |
| Belize | Belize |
| Benin | Bénin |
| Bermuda | Bermudes |
| Bhutan | Bhoutan |
| Bolivia | Bolivie |
| Bonaire, Sint Eustatius and Saba | Bonaire, Saint-Eustache et Saba |
| Bosnia and Herzegovina | Bosnie-Herzégovine |
| Botswana | Botswana |
| Bouvet Island | Île Bouvet |
| Brazil | Brésil |
| British Indian Ocean Territory | Territoire britannique de l'océan Indien |
| Brunei | Brunéi |
| Bulgaria | Bulgarie |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Cambodge |
| Cameroon | Cameroun |
| Canada | Canada |
| Cape Verde | Cap-Vert |
| Cayman Islands | Îles Caïmans |
| Central African Republic | République centrafricaine |
| Chad | Tchad |
| Chile | Chili |
| China | Chine |
| Christmas Island | Île Christmas |
| Cocos (Keeling) Islands | Îles Cocos (Keeling) |
| Colombia | Colombie |
| Comoros | Comores |
| Congo | Congo |
| Cook Islands | Îles Cook |
| Costa Rica | Costa Rica |
| Cote D'Ivoire (Ivory Coast) | Côte d'Ivoire |
| Croatia | Croatie |
| Cuba | Cuba |
| Curaçao | Curaçao |
| Cyprus | Chypre |
| Czech Republic | République tchèque |
| Democratic Republic of the Congo | République démocratique du Congo |
| Denmark | Danemark |
| Djibouti | Djibouti |
| Dominica | Dominique |
| Dominican Republic | République dominicaine |
| East Timor | Timor oriental |
| Ecuador | Équateur |
| Egypt | Égypte |
| El Salvador | Salvador |
| Equatorial Guinea | Guinée équatoriale |
| Eritrea | Érythrée |
| Estonia | Estonie |
| Ethiopia | Éthiopie |
| Falkland Islands | Îles Malouines |
| Faroe Islands | Îles Féroé |
| Fiji Islands | Fidji |
| Finland | Finlande |
| France | France |
| French Guiana | Guyane française |
| French Polynesia | Polynésie française |
| French Southern Territories | Terres australes françaises |
| Gabon | Gabon |
| Gambia The | Gambie |
| Georgia | Géorgie |
| Germany | Allemagne |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Grèce |
| Greenland | Groenland |
| Grenada | Grenade |
| Guadeloupe | Guadeloupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernesey et Alderney |
| Guinea | Guinée |
| Guinea-Bissau | Guinée-Bissau |
| Guyana | Guyana |
| Haiti | Haïti |
| Heard Island and McDonald Islands | Îles Heard-et-MacDonald |
| Honduras | Honduras |
| Hong Kong S.A.R. | Hong Kong S.A.R. |
| Hungary | Hongrie |
| Iceland | Islande |
| India | Inde |
| Indonesia | Indonésie |
| Iran | Iran |
| Iraq | Irak |
| Ireland | Irlande |
| Israel | Israël |
| Italy | Italie |
| Jamaica | Jamaïque |
| Japan | Japon |
| Jersey | Jersey |
| Jordan | Jordanie |
| Kazakhstan | Kazakhstan |
| Kenya | Kenya |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Koweït |
| Kyrgyzstan | Kirghizistan |
| Laos | Laos |
| Latvia | Lettonie |
| Lebanon | Liban |
| Lesotho | Lesotho |
| Liberia | Libéria |
| Libya | Libye |
| Liechtenstein | Liechtenstein |
| Lithuania | Lituanie |
| Luxembourg | Luxembourg |
| Macau S.A.R. | Macao S.A.R. |
| Madagascar | Madagascar |
| Malawi | Malawi |
| Malaysia | Malaisie |
| Maldives | Maldives |
| Mali | Mali |
| Malta | Malte |
| Man (Isle of) | Île de Man |
| Marshall Islands | Îles Marshall |
| Martinique | Martinique |
| Mauritania | Mauritanie |
| Mauritius | Maurice |
| Mayotte | Mayotte |
| Mexico | Mexique |
| Micronesia | Micronésie |
| Moldova | Moldavie |
| Monaco | Monaco |
| Mongolia | Mongolie |
| Montenegro | Monténégro |
| Montserrat | Montserrat |
| Morocco | Maroc |
| Mozambique | Mozambique |
| Myanmar | Myanmar |
| Namibia | Namibie |
| Nauru | Nauru |
| Nepal | Népal |
| Netherlands | Pays-Bas |
| New Caledonia | Nouvelle-Calédonie |
| New Zealand | Nouvelle-Zélande |
| Nicaragua | Nicaragua |
| Niger | Niger |
| Nigeria | Nigéria |
| Niue | Niue |
| Norfolk Island | Île Norfolk |
| North Korea | Corée du Nord |
| North Macedonia | Macédoine du Nord |
| Northern Mariana Islands | Îles Mariannes du Nord |
| Norway | Norvège |
| Oman | Oman |
| Pakistan | Pakistan |
| Palau | Palaos |
| Palestinian Territory Occupied | Palestine |
| Panama | Panama |
| Papua new Guinea | Papouasie-Nouvelle-Guinée |
| Paraguay | Paraguay |
| Peru | Pérou |
| Philippines | Philippines |
| Pitcairn Island | Îles Pitcairn |
| Poland | Pologne |
| Portugal | Portugal |
| Puerto Rico | Porto Rico |
| Qatar | Qatar |
| Reunion | La Réunion |
| Romania | Roumanie |
| Russia | Russie |
| Rwanda | Rwanda |
| Saint Helena | Sainte-Hélène |
| Saint Kitts And Nevis | Saint-Christophe-et-Niévès |
| Saint Lucia | Sainte-Lucie |
| Saint Pierre and Miquelon | Saint-Pierre-et-Miquelon |
| Saint Vincent And The Grenadines | Saint-Vincent-et-les-Grenadines |
| Saint-Barthelemy | Saint-Barthélemy |
| Saint-Martin (French part) | Saint-Martin |
| Samoa | Samoa |
| San Marino | Saint-Marin |
| Sao Tome and Principe | Sao Tomé-et-Principe |
| Saudi Arabia | Arabie saoudite |
| Senegal | Sénégal |
| Serbia | Serbie |
| Seychelles | Seychelles |
| Sierra Leone | Sierra Leone |
| Singapore | Singapour |
| Sint Maarten (Dutch part) | Saint-Martin |
| Slovakia | Slovaquie |
| Slovenia | Slovénie |
| Solomon Islands | Îles Salomon |
| Somalia | Somalie |
| South Africa | Afrique du Sud |
| South Georgia | Géorgie du Sud-et-les Îles Sandwich du Sud |
| South Korea | Corée du Sud |
| South Sudan | Soudan du Sud |
| Spain | Espagne |
| Sri Lanka | Sri Lanka |
| Sudan | Soudan |
| Suriname | Suriname |
| Svalbard And Jan Mayen Islands | Svalbard et Jan Mayen |
| Swaziland | Swaziland |
| Sweden | Suède |
| Switzerland | Suisse |
| Syria | Syrie |
| Taiwan | Taïwan |
| Tajikistan | Tadjikistan |
| Tanzania | Tanzanie |
| Thailand | Thaïlande |
| The Bahamas | Bahamas |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinité-et-Tobago |
| Tunisia | Tunisie |
| Türkiye | Turquie |
| Turkmenistan | Turkménistan |
| Turks And Caicos Islands | Îles Turques-et-Caïques |
| Tuvalu | Tuvalu |
| Uganda | Ouganda |
| Ukraine | Ukraine |
| United Arab Emirates | Émirats arabes unis |
| United Kingdom | Royaume-Uni |
| United States | États-Unis |
| United States Minor Outlying Islands | Îles mineures éloignées des États-Unis |
| Uruguay | Uruguay |
| Uzbekistan | Ouzbékistan |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Vatican |
| Venezuela | Venezuela |
| Vietnam | Viêt Nam |
| Virgin Islands (British) | Îles Vierges britanniques |
| Virgin Islands (US) | Îles Vierges américaines |
| Wallis And Futuna Islands | Wallis-et-Futuna |
| Western Sahara | Sahara occidental |
| Yemen | Yémen |
| Zambia | Zambie |
| Zimbabwe | Zimbabwe |
### 章节名称
| English | French |
| ------------ | -------------------------- |
| Awards | Récompenses |
| Basics | Informations de base |
| Certificates | Certificats |
| Education | Formation |
| Interests | Centres d'intérêt |
| Languages | Langues |
| Projects | Projets |
| Publications | Publications |
| References | Références |
| Skills | Compétences |
| Volunteer | Bénévolat |
| Work | Expérience professionnelle |
### 技能级别
| English | French |
| ------------ | ------------- |
| Novice | Novice |
| Beginner | Débutant |
| Intermediate | Intermédiaire |
| Advanced | Avancé |
| Expert | Expert |
| Master | Maître |
### 选项和术语
| English | French |
| -------- | --------- |
| Courses | Cours |
| Keywords | Mots-clés |
| Score | Score |
# 德语
URL: (/zh-cn/docs/locale/german)
德语 (Deutsch) 是一种[西日耳曼语言](https://zh.wikipedia.org/wiki/%E8%A5%BF%E6%97%A5%E8%80%B3%E6%9B%BC%E8%AF%AD%E6%94%AF),主要在中欧使用。它是德国、奥地利、瑞士、意大利南蒂罗尔、比利时德语区和列支敦士登使用最广泛的官方或共同官方语言。
## 语言学
### 字符集
| 以此功能 | 英语字符集 | 德语字符集 |
| -------- | ------------- | ----------------------- |
| **字母表** | 26个字母 (`a-z`) | 26个字母加上带变音符号的字母和 Eszett |
| **变音符号** | 无 | 变音符号 (`ä`, `ö`, `ü`) |
| **特殊字符** | 限于基本拉丁字符 | 包括 Eszett `ß` |
## 习语
### 日期
德语日期格式为日、月、年。月份名称首字母大写。
| 英语 | 德语 |
| --------- | --------- |
| January | Januar |
| February | Februar |
| March | März |
| April | April |
| May | Mai |
| June | Juni |
| July | Juli |
| August | August |
| September | September |
| October | Oktober |
| November | November |
| December | Dezember |
### 地点
在德语地址中,门牌号通常在街道名称之后,邮政编码在城市名称之前。
以下是德语中的典型顺序:
1. **街道和门牌号**:街道名称在前,紧接着是门牌号(例如 "Musterstraße 123")。
2. **邮政编码和城市**:5位数的邮政编码 (*Postleitzahl* 或 PLZ) 位于城市名称*之前*(例如 "10115 Berlin")。
3. **州**:与某些其他国家不同,联邦州 (*Bundesland*) 在标准地址中通常省略。
4. **国家**:国家名称位于最后一行。
### 大写
德语在主要语言中是独特的,因为它将**所有名词**首字母大写,无论它们是专有名词还是普通名词(例如 *Haus*, *Apfel*, *Freiheit*)。
其他词性,如形容词和动词,通常小写,除非它们被名词化(用作名词)或出现在句首。
此外,正式的“您” (*Sie*) 及其所有格 (*Ihr*) 在信函和正式写作中始终大写。
### 排版
#### 标点符号
德语标点符号规则在几个方面与英语有显著不同:
* **引号**:
* 标准德语风格 ("Gänsefüßchen") 使用低位开引号和高位关引号:`„` (U+201E) 和 `“` (U+201C)。例如:„Zitat“。
* 另一种风格(常用于书籍)使用指向**内部**的角引号:`»` (U+00BB) 和 `«` (U+00AB)。例如:»Zitat«。(与法语 `« Zitat »` 形成对比)。
* **撇号**:
* 它通常**不**用于所有格 's'(例如 "Deutschland**s** Hauptstadt",而不是 "Deutschland's")。
* 它用于表示省略的字母(例如 "Wie geht’s?")。
* **逗号**:
* 逗号必须用于分隔从句 (*Nebensätze*) 和主句。
* **数字**:
* **小数点**:德语使用逗号(例如 `12,34`)。
* **千位分隔符**:德语使用点或空格(例如 `1.234` 或 `1 234`)。
## 翻译
YAMLResume 对德语简历中使用的各种选项和术语采用以下翻译。
### 学位
| 英语 | 德语 |
| ------------- | ---------------------- |
| Middle School | Mittlere Reife |
| High School | Abitur |
| Diploma | Diplom |
| Associate | Fachhochschulabschluss |
| Bachelor | Bachelor |
| Master | Master |
| Doctor | Doktor |
| Afrikaans | Afrikaans |
### 语言
| 英语 | 德语 |
| ----------- | ----------------- |
| Afrikaans | Afrikaans |
| Albanian | Albanisch |
| Amharic | Amharisch |
| Arabic | Arabisch |
| Azerbaijani | Aserbaidschanisch |
| Belarusian | Belarussisch |
| Bengali | Bengalisch |
| Bhojpuri | Bhojpuri |
| Bulgarian | Bulgarisch |
| Burmese | Birmanisch |
| Cantonese | Kantonesisch |
| Catalan | Katalanisch |
| Chinese | Chinesisch |
| Croatian | Kroatisch |
| Czech | Tschechisch |
| Danish | Dänisch |
| Dutch | Niederländisch |
| 英语 | Englisch |
| Estonian | Estnisch |
| Farsi | Farsi |
| Filipino | Philippinisch |
| Finnish | Finnisch |
| French | Französisch |
| 德语 | Deutsch |
| Greek | Griechisch |
| Gujarati | Gujarati |
| Hausa | Hausa |
| Hebrew | Hebräisch |
| Hindi | Hindi |
| Hungarian | Ungarisch |
| Icelandic | Isländisch |
| Igbo | Igbo |
| Indonesian | Indonesisch |
| Irish | Irisch |
| Italian | Italienisch |
| Japanese | Japanisch |
| Javanese | Javanisch |
| Kazakh | Kasachisch |
| Khmer | Khmer |
| Korean | Koreanisch |
| Lahnda | Lahnda |
| Latvian | Lettisch |
| Lithuanian | Litauisch |
| Malay | Malaiisch |
| Mandarin | Mandarin |
| Marathi | Marathi |
| Nepali | Nepalesisch |
| Norwegian | Norwegisch |
| Oromo | Oromo |
| Pashto | Paschtu |
| Polish | Polnisch |
| Portuguese | Portugiesisch |
| Romanian | Rumänisch |
| Russian | Russisch |
| Serbian | Serbisch |
| Shona | Shona |
| Sinhala | Singhalesisch |
| Slovak | Slowakisch |
| Slovene | Slowenisch |
| Somali | Somalisch |
| Spanish | Spanisch |
| Sundanese | Sundanesisch |
| Swahili | Suaheli |
| Swedish | Schwedisch |
| Tagalog | Tagalog |
| Tamil | Tamil |
| Telugu | Telugu |
| Thai | Thailändisch |
| Turkish | Türkisch |
| Ukrainian | Ukrainisch |
| Urdu | Urdu |
| Uzbek | Usbekisch |
| Vietnamese | Vietnamesisch |
| Yoruba | Yoruba |
| Zulu | Zulu |
### 语言流利度
| 英语 | 德语 |
| -------------------------------- | ------------------------------- |
| Elementary Proficiency | Grundkenntnisse |
| Limited Working Proficiency | Gute Kenntnisse |
| Minimum Professional Proficiency | Berufliche Grundkenntnisse |
| Full Professional Proficiency | Verhandlungssichere Kenntnisse |
| Native or Bilingual Proficiency | Muttersprache oder zweisprachig |
### 地点(国家和地区)
| 英语 | 德语 |
| --------------------------------- | ----------------------------------------- |
| Afghanistan | Afghanistan |
| Aland Islands | Åland |
| Albania | Albanien |
| Algeria | Algerien |
| American Samoa | Amerikanisch-Samoa |
| Andorra | Andorra |
| Angola | Angola |
| Anguilla | Anguilla |
| Antarctica | Antarktis |
| Antigua And Barbuda | Antigua und Barbuda |
| Argentina | Argentinien |
| Armenia | Armenien |
| Aruba | Aruba |
| Australia | Australien |
| Austria | Österreich |
| Azerbaijan | Aserbaidschan |
| Bahrain | Bahrain |
| Bangladesh | Bangladesch |
| Barbados | Barbados |
| Belarus | Belarus |
| Belgium | Belgien |
| Belize | Belize |
| Benin | Benin |
| Bermuda | Bermuda |
| Bhutan | Bhutan |
| Bolivia | Bolivien |
| Bonaire, Sint Eustatius and Saba | Bonaire, Sint Eustatius und Saba |
| Bosnia and Herzegovina | Bosnien und Herzegowina |
| Botswana | Botswana |
| Bouvet Island | Bouvetinsel |
| Brazil | Brasilien |
| British Indian Ocean Territory | Britisches Territorium im Indischen Ozean |
| Brunei | Brunei |
| Bulgaria | Bulgarien |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Kambodscha |
| Cameroon | Kamerun |
| Canada | Kanada |
| Cape Verde | Kap Verde |
| Cayman Islands | Kaimaninseln |
| Central African Republic | Zentralafrikanische Republik |
| Chad | Tschad |
| Chile | Chile |
| China | China |
| Christmas Island | Weihnachtsinsel |
| Cocos (Keeling) Islands | Kokosinseln |
| Colombia | Kolumbien |
| Comoros | Komoren |
| Congo | Kongo |
| Cook Islands | Cookinseln |
| Costa Rica | Costa Rica |
| Croatia | Kroatien |
| Cuba | Kuba |
| Curaçao | Curaçao |
| Cyprus | Zypern |
| Czech Republic | Tschechien |
| Democratic Republic of the Congo | Demokratische Republik Kongo |
| Denmark | Dänemark |
| Djibouti | Dschibuti |
| Dominica | Dominica |
| Dominican Republic | Dominikanische Republik |
| East Timor | Osttimor |
| Ecuador | Ecuador |
| Egypt | Ägypten |
| El Salvador | El Salvador |
| Equatorial Guinea | Äquatorialguinea |
| Eritrea | Eritrea |
| Estonia | Estland |
| Ethiopia | Äthiopien |
| Falkland Islands | Falklandinseln |
| Faroe Islands | Färöer |
| Fiji Islands | Fidschi |
| Finland | Finnland |
| France | Frankreich |
| French Guiana | Französisch-Guayana |
| French Polynesia | Französisch-Polynesien |
| French Southern Territories | Französische Süd- und Antarktisgebiete |
| Gabon | Gabun |
| Gambia The | Gambia |
| Georgia | Georgien |
| 德语y | Deutschland |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Griechenland |
| Greenland | Grönland |
| Grenada | Grenada |
| Guadeloupe | Guadeloupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernsey und Alderney |
| Guinea | Guinea |
| Guinea-Bissau | Guinea-Bissau |
| Guyana | Guyana |
| Haiti | Haiti |
| Heard Island and McDonald Islands | Heard und McDonaldinseln |
| Honduras | Honduras |
| Hong Kong | Hongkong |
| Hungary | Ungarn |
| Iceland | Island |
| India | Indien |
| Indonesia | Indonesien |
| Iran | Iran |
| Iraq | Irak |
| Ireland | Irland |
| Israel | Israel |
| Italy | Italien |
| Jamaica | Jamaika |
| Japan | Japan |
| Jersey | Jersey |
| Jordan | Jordanien |
| Kazakhstan | Kasachstan |
| Kenya | Kenia |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Kuwait |
| Kyrgyzstan | Kirgisistan |
| Laos | Laos |
| Latvia | Lettland |
| Lebanon | Libanon |
| Lesotho | Lesotho |
| Liberia | Liberia |
| Libya | Libyen |
| Liechtenstein | Liechtenstein |
| Lithuania | Litauen |
| Luxembourg | Luxemburg |
| Macau | Macau |
| Madagascar | Madagaskar |
| Malawi | Malawi |
| Malaysia | Malaysia |
| Maldives | Malediven |
| Mali | Mali |
| Malta | Malta |
| Man (Isle of) | Isle of Man |
| Marshall Islands | Marshallinseln |
| Martinique | Martinique |
| Mauritania | Mauretanien |
| Mauritius | Mauritius |
| Mayotte | Mayotte |
| Mexico | Mexiko |
| Micronesia | Mikronesien |
| Moldova | Moldawien |
| Monaco | Monaco |
| Mongolia | Mongolei |
| Montenegro | Montenegro |
| Montserrat | Montserrat |
| Morocco | Marokko |
| Mozambique | Mosambik |
| Myanmar | Myanmar |
| Namibia | Namibia |
| Nauru | Nauru |
| Nepal | Nepal |
| Netherlands | Niederlande |
| New Caledonia | Neukaledonien |
| New Zealand | Neuseeland |
| Nicaragua | Nicaragua |
| Niger | Niger |
| Nigeria | Nigeria |
| Niue | Niue |
| Norfolk Island | Norfolkinsel |
| North Korea | Nordkorea |
| North Macedonia | Nordmazedonien |
| Northern Mariana Islands | Nördliche Marianen |
| Norway | Norwegen |
| Oman | Oman |
| Pakistan | Pakistan |
| Palau | Palau |
| Palestinian Territory Occupied | Palästinensische Gebiete |
| Panama | Panama |
| Papua new Guinea | Papua-Neuguinea |
| Paraguay | Paraguay |
| Peru | Peru |
| Philippines | Philippinen |
| Pitcairn Island | Pitcairninseln |
| Poland | Polen |
| Portugal | Portugal |
| Puerto Rico | Puerto Rico |
| Qatar | Katar |
| Reunion | Réunion |
| Romania | Rumänien |
| Russia | Russland |
| Rwanda | Ruanda |
| Saint Helena | St. Helena |
| Saint Kitts And Nevis | St. Kitts und Nevis |
| Saint Lucia | St. Lucia |
| Saint Pierre and Miquelon | Saint-Pierre und Miquelon |
| Saint Vincent And The Grenadines | St. Vincent und die Grenadinen |
| Saint-Barthelemy | Saint-Barthélemy |
| Saint-Martin (French part) | Saint-Martin (französischer Teil) |
| Samoa | Samoa |
| San Marino | San Marino |
| Sao Tome and Principe | São Tomé und Príncipe |
| Saudi Arabia | Saudi-Arabien |
| Senegal | Senegal |
| Serbia | Serbien |
| Seychelles | Seychellen |
| Sierra Leone | Sierra Leone |
| Singapore | Singapur |
| Sint Maarten (Dutch part) | Sint Maarten (niederländischer Teil) |
| Slovakia | Slowakei |
| Slovenia | Slowenien |
| Solomon Islands | Salomonen |
| Somalia | Somalia |
| South Africa | Südafrika |
| South Georgia | Südgeorgien |
| South Korea | Südkorea |
| South Sudan | Südsudan |
| Spain | Spanien |
| Sri Lanka | Sri Lanka |
| Sudan | Sudan |
| Suriname | Suriname |
| Svalbard And Jan Mayen Islands | Spitzbergen und Jan Mayen |
| Swaziland | Eswatini |
| Sweden | Schweden |
| Switzerland | Schweiz |
| Syria | Syrien |
| Taiwan | Taiwan |
| Tajikistan | Tadschikistan |
| Tanzania | Tansania |
| Thailand | Thailand |
| The Bahamas | Bahamas |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinidad und Tobago |
| Tunisia | Tunesien |
| Türkiye | Türkei |
| Turkmenistan | Turkmenistan |
| Turks And Caicos Islands | Turks- und Caicosinseln |
| Tuvalu | Tuvalu |
| Uganda | Uganda |
| Ukraine | Ukraine |
| United Arab Emirates | Vereinigte Arabische Emirate |
| United Kingdom | Vereinigtes Königreich |
| United States | Vereinigte Staaten |
| Uruguay | Uruguay |
| Uzbekistan | Usbekistan |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Vatikanstadt (Heiliger Stuhl) |
| Venezuela | Venezuela |
| Vietnam | Vietnam |
| Virgin Islands (British) | Britische Jungferninseln |
| Virgin Islands (US) | Amerikanische Jungferninseln |
| Wallis And Futuna Islands | Wallis und Futuna |
| Western Sahara | Westsahara |
| Yemen | Jemen |
| Zambia | Sambia |
| Zimbabwe | Simbabwe |
### 章节名称
| 英语 | 德语 |
| ------------ | ------------------------- |
| awards | Auszeichnungen |
| basics | Basisinformationen |
| certificates | Zertifikate |
| education | Ausbildung |
| interests | Interessen |
| languages | Sprachen |
| location | Ort |
| profiles | Profile |
| projects | Projekte |
| publications | Veröffentlichungen |
| references | Referenzen |
| skills | Fähigkeiten |
| volunteer | Ehrenamtliche Tätigkeiten |
| work | Berufserfahrung |
### 技能水平
| 英语 | 德语 |
| ------------ | --------------- |
| Novice | Einsteiger |
| Beginner | Anfänger |
| Intermediate | Fortgeschritten |
| Advanced | Erfahren |
| Expert | Experte |
| Master | Spezialist |
### 术语
| 术语 | 德语 |
| -------- | --------------- |
| courses | Kurse |
| keywords | Schlüsselwörter |
| score | Punkte |
# 多语言
URL: (/zh-cn/docs/locale)
每份简历都有特定的语言。好消息是 YAMLResume 设计为开箱即用地支持多语言。
从技术上讲,支持多语言需要做两件事:
* **[国际化](https://phrase.com/blog/posts/internationalization-vs-localization/#what-is-internationalization-i18n)**:
通常缩写为"i18n"(其中数字 18 代表"i"和"n"之间的 18 个字符),基本上是一套允许产品支持多语言的实践,i18n 主要包括将产品翻译成多种语言并根据用户的选择动态切换语言
* **[本地化](https://phrase.com/blog/posts/internationalization-vs-localization/#what-is-localization-l10n)**:
通常缩写为"l10n"(数字 10 代表"l"和"n"之间的字符),它超越了单纯的翻译,而是将产品适应目标语言的文化特色。
在实践中,i18n 总是先来,l10n 随后。
对于所有支持的语言,我们从设计和实现的角度关注以下方面:
* **[语言学](https://en.wikipedia.org/wiki/Linguistics)**:语言的理论方面,包括但不限于语言的字符集、语法和语法、历史等。
* **习语**:语言通常遵循的常见约定和习语。
* **[排版](https://en.wikipedia.org/wiki/Typesetting)**:语言经常遵循的最佳排版实践,如斜体、文本数字、字体样式、字距调整、连字等。
* **翻译**:YAMLResume 生成的简历使用的固定术语和选项的单纯翻译。
## 支持的语言
YAMLResume 需要知道简历是用哪种语言编写的,为了做到这一点,您需要在简历中设置顶级 `locale` 键:
```yml lineNumbers
---
content:
# ...
locale: # [!code highlight]
language: en # [!code highlight]
layouts:
- engine: markdown
# ...
```
## 支持的语言
您可以使用 `yamlresume languages list` 列出所有支持的语言。在撰写本文时,YAMLResume 支持以下语言:
```console
$ yamlresume languages list
| locale.language | Language Name | 1:03:48 PM
| --------------- | ------------------------------- |
| en | English |
| zh-hans | Simplified Chinese |
| zh-hant-hk | Traditional Chinese (Hong Kong) |
| zh-hant-tw | Traditional Chinese (Taiwan) |
| es | Spanish |
| fr | French |
| no | Norwegian |
| nl | Dutch |
| ja | Japanese |
| de | German |
```
查看以下页面了解每种语言的更多详细信息:
## 术语
我们在整个章节中使用了以下术语:
* **拉丁文字语言**:使用[拉丁文字](https://en.wikipedia.org/wiki/Latin_script)作为[书写系统](https://en.wikipedia.org/wiki/Writing_system)的语言。大多数[日耳曼语言](https://en.wikipedia.org/wiki/Germanic_languages)、[罗曼语言](https://en.wikipedia.org/wiki/Romance_languages)和许多其他语言如[印尼语](https://en.wikipedia.org/wiki/Indonesian_language)使用拉丁文字作为主要书写系统。
* **[CJK](https://en.wikipedia.org/wiki/CJK_characters)**:中文、日文和韩文语言。
* **[字符集](https://www.creatopy.com/blog/what-is-a-character-set/)**:特定字体或字体中可用的字符、符号、字形和标点符号的完整集合。
* **[字形](https://en.wikipedia.org/wiki/Glyph)**:排版中字符的特定形状、设计或表示。
* **[连字符](https://en.wikipedia.org/wiki/Syllabification)**,在行尾断词以改善文本整体外观和可读性的做法。
* **[对齐](https://en.wikipedia.org/wiki/Typographic_alignment#Justified)**:
文本在块内的对齐,使其与左右边距齐平,通常通过调整单词和字母之间的间距来实现,在每行文本中创建统一的外观。
* **[字距调整](https://en.wikipedia.org/wiki/Kerning)**:在比例字体中调整字符间距的过程,通常是为了达到视觉上令人愉悦的结果。
* **[连字](https://en.wikipedia.org/wiki/Ligature_\(writing\))**:将两个或多个字母连接在一起的字形,以增强文本的视觉吸引力并获得更好的可读性。
# 日语
URL: (/zh-cn/docs/locale/japanese)
日语(日本語)是一种主要在日本使用的东亚语言。它是日琉语系的一员。
## 语言学
### 字符集
日语书写系统结合使用了三种文字:汉字(采用的中国字符)、平假名和片假名。拉丁字母(罗马字)也用于特定目的。
### CJK 支持
YAMLResume 自动检测日语为 CJK 语言并应用特定的布局调整,例如使用“Lining”样式的数字而不是“OldStyle”以更好地匹配 CJK 字形。
## 惯用语
### 日期
日语日期格式为年、月、日顺序,使用特定的量词。
| 英语 | 日语 |
| --------- | --- |
| January | 1月 |
| February | 2月 |
| March | 3月 |
| April | 4月 |
| May | 5月 |
| June | 6月 |
| July | 7月 |
| August | 8月 |
| September | 9月 |
| October | 10月 |
| November | 11月 |
| December | 12月 |
日期范围使用全角波浪号(U+FF5E)作为分隔符(例如,2016年10月~2018年1月)。
### 地点
在生成的简历中,日本地址通常遵循国家、地区(都道府县)、城市、地址,最后是邮政编码的顺序。
注意:虽然标准的日本地址通常以邮政编码(〒)开头,但 YAMLResume 目前将其附加在末尾,以与生成的结构变量保持一致。
## 排版
### 标点符号
日语使用全角标点符号。
* **逗号**: 使用 `、` (表意逗号, U+3001) 代替拉丁逗号 `,`。
* **冒号**: 使用 `:` (全角冒号, U+FF1A) 代替拉丁冒号 `:`。
* **分隔符**: `、` 也用作列表分隔符。
## 翻译
YAMLResume 对日本简历中使用的各种选项和术语采用以下翻译。
### 学位
| 英语 | 日语 |
| ------------- | ----------- |
| Middle School | 中学校 |
| High School | 高等学校 |
| Diploma | 短期大学・高等専門学校 |
| Associate | 準学士 |
| Bachelor | 学士 |
| Master | 修士 |
| Doctor | 博士 |
### 语言
| 英语 | 日语 |
| ----------- | --------- |
| Afrikaans | アフリカーンス語 |
| Albanian | アルバニア語 |
| Amharic | アムハラ語 |
| Arabic | アラビア語 |
| Azerbaijani | アゼルバイジャン語 |
| Belarusian | ベラルーシ語 |
| Bengali | ベンガル語 |
| Bhojpuri | ボージュプリー語 |
| Bulgarian | ブルガリア語 |
| Burmese | ビルマ語 |
| Cantonese | 広東語 |
| Catalan | カタロニア語 |
| Chinese | 中国語 |
| Croatian | クロアチア語 |
| Czech | チェコ語 |
| Danish | デンマーク語 |
| Dutch | オランダ語 |
| English | 英語 |
| Estonian | エストニア語 |
| Farsi | ペルシャ語 |
| Filipino | フィリピン語 |
| Finnish | フィンランド語 |
| French | フランス語 |
| German | ドイツ語 |
| Greek | ギリシャ語 |
| Gujarati | グジャラート語 |
| Hausa | ハウサ語 |
| Hebrew | ヘブライ語 |
| Hindi | ヒンディー語 |
| Hungarian | ハンガリー語 |
| Icelandic | アイスランド語 |
| Igbo | イボ語 |
| Indonesian | インドネシア語 |
| Irish | アイルランド語 |
| Italian | イタリア語 |
| Japanese | 日本語 |
| Javanese | ジャワ語 |
| Kazakh | カザフ語 |
| Khmer | クメール語 |
| Korean | 韓国語 |
| Lahnda | ラーンダー語 |
| Latvian | ラトビア語 |
| Lithuanian | リトアニア語 |
| Malay | マレー語 |
| Mandarin | 標準中国語 |
| Marathi | マラーティー語 |
| Nepali | ネパール語 |
| Norwegian | ノルウェー語 |
| Oromo | オロモ語 |
| Pashto | パシュトー語 |
| Polish | ポーランド語 |
| Portuguese | ポルトガル語 |
| Romanian | ルーマニア語 |
| Russian | ロシア語 |
| Serbian | セルビア語 |
| Shona | ショナ語 |
| Sinhala | シンハラ語 |
| Slovak | スロバキア語 |
| Slovene | スロベニア語 |
| Somali | ソマリ語 |
| Spanish | スペイン語 |
| Sundanese | スンダ語 |
| Swahili | スワヒリ語 |
| Swedish | スウェーデン語 |
| Tagalog | タガログ語 |
| Tamil | タミル語 |
| Telugu | テルグ語 |
| Thai | タイ語 |
| Turkish | トルコ語 |
| Ukrainian | ウクライナ語 |
| Urdu | ウルドゥー語 |
| Uzbek | ウズベク語 |
| Vietnamese | ベトナム語 |
| Yoruba | ヨルバ語 |
| Zulu | ズールー語 |
### 语言流利度
| 英语 | 日语 |
| -------------------------------- | ------------ |
| Elementary Proficiency | 初級レベル |
| Limited Working Proficiency | 限定的な実務レベル |
| Minimum Professional Proficiency | 実務レベル |
| Full Professional Proficiency | 完全な実務レベル |
| Native or Bilingual Proficiency | ネイティブ・母国語レベル |
### 地点(国家和地区)
| 英语 | 日语 |
| ------------------------------------ | --------------------- |
| Afghanistan | アフガニスタン |
| Aland Islands | オーランド諸島 |
| Albania | アルバニア |
| Algeria | アルジェリア |
| American Samoa | 米領サモア |
| Andorra | アンドラ |
| Angola | アンゴラ |
| Anguilla | アンギラ |
| Antarctica | 南極 |
| Antigua And Barbuda | アンティグア・バーブーダ |
| Argentina | アルゼンチン |
| Armenia | アルメニア |
| Aruba | アルバ |
| Australia | オーストラリア |
| Austria | オーストリア |
| Azerbaijan | アゼルバイジャン |
| Bahrain | バーレーン |
| Bangladesh | バングラデシュ |
| Barbados | バルバドス |
| Belarus | ベラルーシ |
| Belgium | ベルギー |
| Belize | ベリーズ |
| Benin | ベナン |
| Bermuda | バミューダ |
| Bhutan | ブータン |
| Bolivia | ボリビア |
| Bosnia and Herzegovina | ボスニア・ヘルツェゴビナ |
| Botswana | ボツワナ |
| Bouvet Island | ブーベ島 |
| Brazil | ブラジル |
| British Indian Ocean Territory | 英領インド洋地域 |
| Brunei | ブルネイ |
| Bulgaria | ブルガリア |
| Burkina Faso | ブルキナファソ |
| Burundi | ブルンジ |
| Cambodia | カンボジア |
| Cameroon | カメルーン |
| Canada | カナダ |
| Cape Verde | カーボベルデ |
| Cayman Islands | ケイマン諸島 |
| Central African Republic | 中央アフリカ共和国 |
| Chad | チャド |
| Chile | チリ |
| China | 中国 |
| Christmas Island | クリスマス島 |
| Cocos (Keeling) Islands | ココス諸島 |
| Colombia | コロンビア |
| Comoros | コモロ |
| Congo | コンゴ共和国 |
| Cook Islands | クック諸島 |
| Costa Rica | コスタリカ |
| Croatia | クロアチア |
| Cuba | キューバ |
| Curaçao | キュラソー |
| Cyprus | キプロス |
| Czech Republic | チェコ |
| Democratic Republic of the Congo | コンゴ民主共和国 |
| Denmark | デンマーク |
| Djibouti | ジブチ |
| Dominica | ドミニカ国 |
| Dominican Republic | ドミニカ共和国 |
| East Timor | 東ティモール |
| Ecuador | エクアドル |
| Egypt | エジプト |
| El Salvador | エルサルバドル |
| Equatorial Guinea | 赤道ギニア |
| Eritrea | エリトリア |
| Estonia | エストニア |
| Ethiopia | エチオピア |
| Falkland Islands | フォークランド諸島 |
| Faroe Islands | フェロー諸島 |
| Fiji Islands | フィジー |
| Finland | フィンランド |
| France | フランス |
| French Guiana | 仏領ギアナ |
| French Polynesia | 仏領ポリネシア |
| French Southern Territories | フランス領南方・南極地域 |
| Gabon | ガボン |
| Gambia The | ガンビア |
| Georgia | ジョージア |
| Germany | ドイツ |
| Ghana | ガーナ |
| Gibraltar | ジブラルタル |
| Greece | ギリシャ |
| Greenland | グリーンランド |
| Grenada | グレナダ |
| Guadeloupe | グアドループ |
| Guam | グアム |
| Guatemala | グアテマラ |
| Guernsey and Alderney | ガーンジー |
| Guinea | ギニア |
| Guinea-Bissau | ギニアビサウ |
| Guyana | ガイアナ |
| Haiti | ハイチ |
| Heard Island and McDonald Islands | ハード島とマクドナルド諸島 |
| Honduras | ホンジュラス |
| Hong Kong | 香港 |
| Hungary | ハンガリー |
| Iceland | アイスランド |
| India | インド |
| Indonesia | インドネシア |
| Iran | イラン |
| Iraq | イラク |
| Ireland | アイルランド |
| Israel | イスラエル |
| Italy | イタリア |
| Jamaica | ジャマイカ |
| Japan | 日本 |
| Jersey | ジャージー |
| Jordan | ヨルダン |
| Kazakhstan | カザフスタン |
| Kenya | ケニア |
| Kiribati | キリバス |
| Kosovo | コソボ |
| Kuwait | クウェート |
| Kyrgyzstan | キルギス |
| Laos | ラオス |
| Latvia | ラトビア |
| Lebanon | レバノン |
| Lesotho | レソト |
| Liberia | リベリア |
| Libya | リビア |
| Liechtenstein | リヒテンシュタイン |
| Lithuania | リトアニア |
| Luxembourg | ルクセンブルク |
| Macau | マカオ |
| Madagascar | マダガスカル |
| Malawi | マラウイ |
| Malaysia | マレーシア |
| Maldives | モルディブ |
| Mali | マリ |
| Malta | マルタ |
| Man (Isle of) | マン島 |
| Marshall Islands | マーシャル諸島 |
| Martinique | マルティニーク |
| Mauritania | モーリタニア |
| Mauritius | モーリシャス |
| Mayotte | マヨット |
| Mexico | メキシコ |
| Micronesia | ミクロネシア連邦 |
| Moldova | モルドバ |
| Monaco | モナコ |
| Mongolia | モンゴル |
| Montenegro | モンテネグロ |
| Montserrat | モントセラト |
| Morocco | モロッコ |
| Mozambique | モザンビーク |
| Myanmar | ミャンマー |
| Namibia | ナミビア |
| Nauru | ナウル |
| Nepal | ネパール |
| Netherlands | オランダ |
| New Caledonia | ニューカレドニア |
| New Zealand | ニュージーランド |
| Nicaragua | ニカラグア |
| Niger | ニジェール |
| Nigeria | ナイジェリア |
| Niue | ニウエ |
| Norfolk Island | ノーフォーク島 |
| North Korea | 北朝鮮 |
| North Macedonia | 北マケドニア |
| Northern Mariana Islands | 北マリアナ諸島 |
| Norway | ノルウェー |
| Oman | オマーン |
| Pakistan | パキスタン |
| Palau | パラオ |
| Palestinian Territory Occupied | パレスチナ |
| Panama | パナマ |
| Papua new Guinea | パプアニューギニア |
| Paraguay | パラグアイ |
| Peru | ペルー |
| Philippines | フィリピン |
| Pitcairn Island | ピトケアン諸島 |
| Poland | ポーランド |
| Portugal | ポルトガル |
| Puerto Rico | プエルトリコ |
| Qatar | カタール |
| Reunion | レユニオン |
| Romania | ルーマニア |
| Russia | ロシア |
| Rwanda | ルワンダ |
| Saint Helena | セントヘレナ |
| Saint Kitts And Nevis | セントクリストファー・ネイビス |
| Saint Lucia | セントルシア |
| Saint Pierre and Miquelon | サンピエール島・ミクロン島 |
| Saint Vincent And The Grenadines | セントビンセント・グレナディーン |
| Saint-Barthelemy | サン・バルテルミー |
| Saint-Martin (French part) | サン・マルタン |
| Samoa | サモア |
| San Marino | サンマリノ |
| Sao Tome and Principe | サントメ・プリンシペ |
| Saudi Arabia | サウジアラビア |
| Senegal | セネガル |
| Serbia | セルビア |
| Seychelles | セーシェル |
| Sierra Leone | シエラレオネ |
| Singapore | シンガポール |
| Sint Maarten (Dutch part) | シント・マールテン |
| Slovakia | スロバキア |
| Slovenia | スロベニア |
| Solomon Islands | ソロモン諸島 |
| Somalia | ソマリア |
| South Africa | 南アフリカ |
| South Georgia | サウスジョージア・サウスサンドウィッチ諸島 |
| South Korea | 韓国 |
| South Sudan | 南スーダン |
| Spain | スペイン |
| Sri Lanka | スリランカ |
| Sudan | スーダン |
| Suriname | スリナム |
| Svalbard And Jan Mayen Islands | スヴァールバル諸島およびヤンマイエン島 |
| Swaziland | エスワティニ |
| Sweden | スウェーデン |
| Switzerland | スイス |
| Syria | シリア |
| Taiwan | 台湾 |
| Tajikistan | タジキスタン |
| Tanzania | タンザニア |
| Thailand | タイ |
| The Bahamas | バハマ |
| Togo | トーゴ |
| Tokelau | トケラウ |
| Tonga | トンガ |
| Trinidad And Tobago | トリニダード・トバゴ |
| Tunisia | チュニジア |
| Turkey | トルコ |
| Turkmenistan | トルクメニスタン |
| Turks And Caicos Islands | タークス・カイコス諸島 |
| Tuvalu | ツバル |
| Uganda | ウガンダ |
| Ukraine | ウクライナ |
| United Arab Emirates | アラブ首長国連邦 |
| United Kingdom | イギリス |
| United States Minor Outlying Islands | 合衆国領有小離島 |
| United States | アメリカ合衆国 |
| Uruguay | ウルグアイ |
| Uzbekistan | ウズベキスタン |
| Vanuatu | バヌアツ |
| Vatican City State (Holy See) | バチカン市国 |
| Venezuela | ベネズエラ |
| Vietnam | ベトナム |
| Virgin Islands (British) | 英領ヴァージン諸島 |
| Virgin Islands (US) | 米領ヴァージン諸島 |
| Wallis And Futuna Islands | ウォリス・フツナ |
| Western Sahara | 西サハラ |
| Yemen | イエメン |
| Zambia | ザンビア |
| Zimbabwe | ジンバブエ |
### 章节名称
| 英语 | 日语 |
| ------------ | -------- |
| awards | 受賞・表彰 |
| basics | 基本情報 |
| certificates | 資格・免状 |
| education | 学歴 |
| interests | 興味・関心 |
| languages | 言語 |
| location | 住所 |
| profiles | プロフィール |
| projects | プロジェクト |
| publications | 出版・著作 |
| references | 推薦人 |
| skills | スキル |
| volunteer | ボランティア活動 |
| work | 職歴 |
### 技能等级
| 英语 | 日语 |
| ------------ | ------ |
| Novice | 入門 |
| Beginner | 初級 |
| Intermediate | 中級 |
| Advanced | 上級 |
| Expert | エキスパート |
| Master | マスター |
### 术语
| 术语 | 日语 |
| -------- | ----- |
| courses | コース |
| keywords | キーワード |
| score | 成績 |
# 挪威语
URL: (/zh-cn/docs/locale/norwegian)
英语和挪威语都是[日耳曼语言](https://en.wikipedia.org/wiki/Germanic_languages),挪威语是北日耳曼语支的一部分。虽然两种语言有一些共同的基础,但挪威语具有独特的特征,需要 YAMLResume 特别考虑。
## 语言学
### 字符集
英语和挪威语的字符集相似——两种语言主要使用[拉丁字母](https://en.wikipedia.org/wiki/Latin_alphabet),但挪威语有额外的字母。以下是详细比较:
| 特征 | 英语字符集 | 挪威语字符集 |
| -------- | -------------- | --------------------------------------- |
| **字母表** | 26 个字母 (`a-z`) | 29 个字母 (`a-z` 加上 `æ`, `ø`, `å`) |
| **变音符号** | 无 | 三个额外的元音 (`æ`, `ø`, `å`),它们是不同的字母,不是变音符号 |
| **特殊字符** | 仅限于基本拉丁字符 | 包括三个额外的挪威语元音,它们被视为独立的字母 |
英语和挪威语书写系统之间的主要差异:
* **额外字母**:挪威语字母表包括三个额外的元音:`æ`、`ø` 和 `å`,它们是具有特定发音的不同字母。
* **字母顺序**:在挪威语字母顺序中,这些字母在最后:...x, y, z, æ, ø, å。
* **大小写变化**:挪威语使用大写和小写版本(`Æ/æ`、`Ø/ø`、`Å/å`)。
## 习语
### 日期
星期几和月份在挪威语中不大写(与英语不同)。例如,英语中的"Sep 2021"在挪威语中翻译为"sept. 2021",月份小写,缩写后加句号。
YAMLResume 只使用月份,因此翻译表:
| 英语 | 挪威语 |
| --------------- | ----------------- |
| January (Jan) | januar (jan.) |
| February (Feb) | februar (feb.) |
| March (Mar) | mars (mar.) |
| April (Apr) | april (apr.) |
| May (May) | mai (mai) |
| June (Jun) | juni (jun.) |
| July (Jul) | juli (jul.) |
| August (Aug) | august (aug.) |
| September (Sep) | september (sept.) |
| October (Oct) | oktober (okt.) |
| November (Nov) | november (nov.) |
| December (Dec) | desember (des.) |
### 大写
与英语相比,挪威语有更保守的大写规则。通常,只有专有名词、句子的第一个单词和代词"I"(挪威语中的"jeg")才大写。
YAMLResume 内部采用固定的选项和术语集用于所有简历模板。例如,YAMLResume 简历模板中的语言采用[LinkedIn 的语言熟练程度选项](https://www.linkedin.com/pulse/language-proficiency-linkedin-duaa-ali/):
* Elementary Proficiency
* Limited Working Proficiency
* Minimum Professional Proficiency
* Full Professional Proficiency
* Native or Bilingual Proficiency
这些翻译为挪威语如下:
* Grunnleggende nivå
* Begrenset arbeidskunnskap
* Minimum profesjonelt nivå
* Fullt profesjonelt nivå
* Morsmål eller tospråklig nivå
只有第一个单词大写,遵循挪威语大写约定。
## 排版
### 标点符号
挪威语在标点符号方面与英语有几个显著差异:
* **引号**:挪威语通常使用引导(`«»`)或直引号(`""`),标点符号通常放在引号外面。
* **小数点分隔符**:挪威语使用逗号作为小数点分隔符(例如,3,14),而不是像英语那样使用句号(3.14)。
* **千位分隔符**:挪威语使用空格或句号作为千位分隔符(例如,1 000 或 1.000),而不是逗号。
* **日期格式**:挪威语日期遵循 DD.MM.YYYY 或 DD/MM/YYYY 模式,与美国 MM/DD/YYYY 格式不同。
## 翻译
YAMLResume 采用以下翻译用于挪威语简历中使用的各种选项和术语。
### 教育学位
| 英语 | 挪威语 |
| ------------- | ------------------ |
| Middle School | Ungdomsskole |
| High School | Videregående skole |
| Diploma | Fagbrev |
| Associate | Associate |
| Bachelor | Bachelor |
| Master | Master |
| Doctor | Doktor |
### 语言
| 英语 | 挪威语 |
| ----------- | -------------- |
| Afrikaans | Afrikaans |
| Albanian | Albansk |
| Amharic | Amharisk |
| Arabic | Arabisk |
| Azerbaijani | Aserbajdsjansk |
| Belarusian | Hviterussisk |
| Bengali | Bengali |
| Bhojpuri | Bhojpuri |
| Bulgarian | Bulgarsk |
| Burmese | Burmesisk |
| Cantonese | Kantonesisk |
| Catalan | Katalansk |
| Chinese | Kinesisk |
| Croatian | Kroatisk |
| Czech | Tsjekkisk |
| Danish | Dansk |
| Dutch | Nederlandsk |
| English | Engelsk |
| Estonian | Estisk |
| Farsi | Persisk |
| Filipino | Filippinsk |
| Finnish | Finsk |
| French | Fransk |
| German | Tysk |
| Greek | Gresk |
| Gujarati | Gujarati |
| Hausa | Hausa |
| Hebrew | Hebraisk |
| Hindi | Hindi |
| Hungarian | Ungarsk |
| Icelandic | Islandsk |
| Igbo | Igbo |
| Indonesian | Indonesisk |
| Irish | Irsk |
| Italian | Italiensk |
| Japanese | Japansk |
| Javanese | Javanesisk |
| Kazakh | Kasakhisk |
| Khmer | Khmer |
| Korean | Koreansk |
| Lahnda | Lahnda |
| Latvian | Latvisk |
| Lithuanian | Litauisk |
| Malay | Malaysisk |
| Mandarin | Mandarin |
| Marathi | Marathi |
| Nepali | Nepalsk |
| Norwegian | Norsk |
| Oromo | Oromo |
| Pashto | Pashto |
| Polish | Polsk |
| Portuguese | Portugisisk |
| Romanian | Rumensk |
| Russian | Russisk |
| Serbian | Serbisk |
| Shona | Shona |
| Sinhala | Singalesisk |
| Slovak | Slovakisk |
| Slovene | Slovensk |
| Somali | Somalisk |
| Spanish | Spansk |
| Sundanese | Sundanesisk |
| Swahili | Swahili |
| Swedish | Svensk |
| Tagalog | Tagalog |
| Tamil | Tamil |
| Telugu | Telugu |
| Thai | Thai |
| Turkish | Tyrkisk |
| Ukrainian | Ukrainsk |
| Urdu | Urdu |
| Uzbek | Usbekisk |
| Vietnamese | Vietnamesisk |
| Yoruba | Yoruba |
| Zulu | Zulu |
### 语言熟练程度
| 英语 | 挪威语 |
| -------------------------------- | ----------------------------- |
| Elementary Proficiency | Grunnleggende nivå |
| Limited Working Proficiency | Begrenset arbeidskunnskap |
| Minimum Professional Proficiency | Minimum profesjonelt nivå |
| Full Professional Proficiency | Fullt profesjonelt nivå |
| Native or Bilingual Proficiency | Morsmål eller tospråklig nivå |
### 位置(国家和地区)
| 英语 | 挪威语 |
| ------------------------------------ | ------------------------------------- |
| Afghanistan | Afghanistan |
| Aland Islands | Åland |
| Albania | Albania |
| Algeria | Algerie |
| American Samoa | Amerikansk Samoa |
| Andorra | Andorra |
| Angola | Angola |
| Anguilla | Anguilla |
| Antarctica | Antarktis |
| Antigua And Barbuda | Antigua og Barbuda |
| Argentina | Argentina |
| Armenia | Armenia |
| Aruba | Aruba |
| Australia | Australia |
| Austria | Østerrike |
| Azerbaijan | Aserbajdsjan |
| Bahrain | Bahrain |
| Bangladesh | Bangladesh |
| Barbados | Barbados |
| Belarus | Belarus |
| Belgium | Belgia |
| Belize | Belize |
| Benin | Benin |
| Bermuda | Bermuda |
| Bhutan | Bhutan |
| Bolivia | Bolivia |
| Bonaire, Sint Eustatius and Saba | Bonaire, Sint Eustatius og Saba |
| Bosnia and Herzegovina | Bosnia-Hercegovina |
| Botswana | Botswana |
| Bouvet Island | Bouvetøya |
| Brazil | Brasil |
| British Indian Ocean Territory | Det britiske territoriet i Indiahavet |
| Brunei | Brunei |
| Bulgaria | Bulgaria |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Kambodsja |
| Cameroon | Kamerun |
| Canada | Canada |
| Cape Verde | Kapp Verde |
| Cayman Islands | Caymanøyene |
| Central African Republic | Den sentralafrikanske republikk |
| Chad | Tsjad |
| Chile | Chile |
| China | Kina |
| Christmas Island | Christmasøya |
| Cocos (Keeling) Islands | Kokosøyene (Keelingøyene) |
| Colombia | Colombia |
| Comoros | Komorene |
| Congo | Kongo |
| Cook Islands | Cookøyene |
| Costa Rica | Costa Rica |
| Cote D'Ivoire (Ivory Coast) | Elfenbenskysten |
| Croatia | Kroatia |
| Cuba | Cuba |
| Curaçao | Curaçao |
| Cyprus | Kypros |
| Czech Republic | Tsjekkia |
| Democratic Republic of the Congo | Den demokratiske republikken Kongo |
| Denmark | Danmark |
| Djibouti | Djibouti |
| Dominica | Dominica |
| Dominican Republic | Den dominikanske republikk |
| East Timor | Øst-Timor |
| Ecuador | Ecuador |
| Egypt | Egypt |
| El Salvador | El Salvador |
| Equatorial Guinea | Ekvatorial-Guinea |
| Eritrea | Eritrea |
| Estonia | Estland |
| Ethiopia | Etiopia |
| Falkland Islands | Falklandsøyene |
| Faroe Islands | Færøyene |
| Fiji Islands | Fijiøyene |
| Finland | Finland |
| France | Frankrike |
| French Guiana | Fransk Guyana |
| French Polynesia | Fransk Polynesia |
| French Southern Territories | Franske sørlige territorier |
| Gabon | Gabon |
| Gambia The | Gambia |
| Georgia | Georgia |
| Germany | Tyskland |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Hellas |
| Greenland | Grønland |
| Grenada | Grenada |
| Guadeloupe | Guadeloupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernsey og Alderney |
| Guinea | Guinea |
| Guinea-Bissau | Guinea-Bissau |
| Guyana | Guyana |
| Haiti | Haiti |
| Heard Island and McDonald Islands | Heard- og McDonaldøyene |
| Honduras | Honduras |
| Hong Kong S.A.R. | Hong Kong S.A.R. |
| Hungary | Ungarn |
| Iceland | Island |
| India | India |
| Indonesia | Indonesia |
| Iran | Iran |
| Iraq | Irak |
| Ireland | Irland |
| Israel | Israel |
| Italy | Italia |
| Jamaica | Jamaica |
| Japan | Japan |
| Jersey | Jersey |
| Jordan | Jordan |
| Kazakhstan | Kasakhstan |
| Kenya | Kenya |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Kuwait |
| Kyrgyzstan | Kirgisistan |
| Laos | Laos |
| Latvia | Latvia |
| Lebanon | Libanon |
| Lesotho | Lesotho |
| Liberia | Liberia |
| Libya | Libya |
| Liechtenstein | Liechtenstein |
| Lithuania | Litauen |
| Luxembourg | Luxembourg |
| Macau S.A.R. | Macau S.A.R. |
| Madagascar | Madagaskar |
| Malawi | Malawi |
| Malaysia | Malaysia |
| Maldives | Maldivene |
| Mali | Mali |
| Malta | Malta |
| Man (Isle of) | Man (Isle of) |
| Marshall Islands | Marshalløyene |
| Martinique | Martinique |
| Mauritania | Mauritania |
| Mauritius | Mauritius |
| Mayotte | Mayotte |
| Mexico | Mexico |
| Micronesia | Mikronesia |
| Moldova | Moldova |
| Monaco | Monaco |
| Mongolia | Mongolia |
| Montenegro | Montenegro |
| Montserrat | Montserrat |
| Morocco | Marokko |
| Mozambique | Mosambik |
| Myanmar | Myanmar |
| Namibia | Namibia |
| Nauru | Nauru |
| Nepal | Nepal |
| Netherlands | Nederland |
| New Caledonia | Ny-Caledonia |
| New Zealand | New Zealand |
| Nicaragua | Nicaragua |
| Niger | Niger |
| Nigeria | Nigeria |
| Niue | Niue |
| Norfolk Island | Norfolkøya |
| North Korea | Nord-Korea |
| North Macedonia | Nord-Makedonia |
| Northern Mariana Islands | Nord-Marianene |
| Norway | Norge |
| Oman | Oman |
| Pakistan | Pakistan |
| Palau | Palau |
| Palestinian Territory Occupied | Palestinsk okkupert område |
| Panama | Panama |
| Papua new Guinea | Papua Ny-Guinea |
| Paraguay | Paraguay |
| Peru | Peru |
| Philippines | Filippinene |
| Pitcairn Island | Pitcairnøyene |
| Poland | Polen |
| Portugal | Portugal |
| Puerto Rico | Puerto Rico |
| Qatar | Qatar |
| Reunion | Réunion |
| Romania | Romania |
| Russia | Russland |
| Rwanda | Rwanda |
| Saint Helena | Sankt Helena |
| Saint Kitts And Nevis | Saint Kitts og Nevis |
| Saint Lucia | Saint Lucia |
| Saint Pierre and Miquelon | Saint-Pierre og Miquelon |
| Saint Vincent And The Grenadines | Saint Vincent og Grenadinene |
| Saint-Barthelemy | Saint-Barthélemy |
| Saint-Martin (French part) | Saint-Martin (fransk del) |
| Samoa | Samoa |
| San Marino | San Marino |
| Sao Tome and Principe | São Tomé og Príncipe |
| Saudi Arabia | Saudi-Arabia |
| Senegal | Senegal |
| Serbia | Serbia |
| Seychelles | Seychellene |
| Sierra Leone | Sierra Leone |
| Singapore | Singapore |
| Sint Maarten (Dutch part) | Sint Maarten (nederlandsk del) |
| Slovakia | Slovakia |
| Slovenia | Slovenia |
| Solomon Islands | Salomonøyene |
| Somalia | Somalia |
| South Africa | Sør-Afrika |
| South Georgia | Sør-Georgia |
| South Korea | Sør-Korea |
| South Sudan | Sør-Sudan |
| Spain | Spania |
| Sri Lanka | Sri Lanka |
| Sudan | Sudan |
| Suriname | Surinam |
| Svalbard And Jan Mayen Islands | Svalbard og Jan Mayen |
| Swaziland | Swaziland |
| Sweden | Sverige |
| Switzerland | Sveits |
| Syria | Syria |
| Taiwan | Taiwan |
| Tajikistan | Tadsjikistan |
| Tanzania | Tanzania |
| Thailand | Thailand |
| The Bahamas | Bahamas |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinidad og Tobago |
| Tunisia | Tunisia |
| Türkiye | Tyrkia |
| Turkmenistan | Turkmenistan |
| Turks And Caicos Islands | Turks- og Caicosøyene |
| Tuvalu | Tuvalu |
| Uganda | Uganda |
| Ukraine | Ukraina |
| United Arab Emirates | De forente arabiske emirater |
| United Kingdom | Storbritannia |
| United States | USA |
| United States Minor Outlying Islands | USAs ytre småøyer |
| Uruguay | Uruguay |
| Uzbekistan | Usbekistan |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Vatikanstaten (Den hellige stol) |
| Venezuela | Venezuela |
| Vietnam | Vietnam |
| Virgin Islands (British) | Jomfruøyene (britiske) |
| Virgin Islands (US) | Jomfruøyene (USA) |
| Wallis And Futuna Islands | Wallis- og Futunaøyene |
| Western Sahara | Vest-Sahara |
| Yemen | Jemen |
| Zambia | Zambia |
| Zimbabwe | Zimbabwe |
### 章节名称
| 英语 | 挪威语 |
| ------------ | ------------------------- |
| Awards | Utmerkelser |
| Basics | Grunnleggende informasjon |
| Certificates | Sertifikater |
| Education | Utdanning |
| Interests | Interesser |
| Languages | Språk |
| Projects | Prosjekter |
| Publications | Publikasjoner |
| References | Referanser |
| Skills | Ferdigheter |
| Volunteer | Frivillig arbeid |
| Work | Arbeidserfaring |
### 技能级别
| 英语 | 挪威语 |
| ------------ | ------------ |
| Novice | Nybegynner |
| Beginner | Begynner |
| Intermediate | Viderekommen |
| Advanced | Avansert |
| Expert | Ekspert |
| Master | Mester |
### 选项和术语
| 英语 | 挪威语 |
| -------- | --------- |
| Courses | Kurs |
| Keywords | Nøkkelord |
| Score | Poeng |
# 西班牙语
URL: (/zh-cn/docs/locale/spanish)
英语和西班牙语都是[印欧语言](https://en.wikipedia.org/wiki/Indo-European_languages),难怪英语和西班牙语有一些相似之处,所以 YAMLResume 的大部分共同基础可以重用于英语和西班牙语。
## 语言学
### 字符集
英语和西班牙语的字符集非常相似——两种语言主要使用[拉丁字母](https://en.wikipedia.org/wiki/Latin_alphabet),由 26 个字母组成。然而,西班牙语有一个额外的字母 `ñ`,它代表一个独特的声音。以下是快速比较:
| 特征 | 英语字符集 | 西班牙语字符集 |
| -------- | -------------- | --------------------------------------------------------- |
| **字母表** | 26 个字母 (`a-z`) | 27 个字母 (`a-z` 加上 `ñ`) |
| **变音符号** | 无 | 包括重音符号(`á`, `é`, `í`, `ó`, `ú`)、分音符(`ü`)和特殊标点符号(`¿`, `¡`) |
| **特殊字符** | 仅限于基本拉丁字符 | 包括 `ñ` 和重音元音等额外字符 |
英语和西班牙语书写系统之间的主要差异:
* **额外字母**:西班牙语字母表包括字母 `ñ`,这在英语字母表中不存在。
* **[变音符号](https://en.wikipedia.org/wiki/Diacritic)**:西班牙语使用几个改变元音发音的变音符号。例如,重音符号表示重音和发音变化(例如,`é` vs. `e`)。
* **标点符号**:西班牙语使用英语中没有的反向标点符号(`¿` 用于问题,`¡` 用于感叹)。
## 习语
### 日期
星期几和月份在英语中大写,但在西班牙语中不大写。例如,英语中的"Sep 2021"在西班牙语中翻译为"sept 2021"。
YAMLResume 只使用月份,因此翻译表:
| 英语 | 西班牙语 |
| --------------- | ----------------- |
| January (Jan) | enero (ene) |
| February (Feb) | febrero (feb) |
| March (Mar) | marzo (mar) |
| April (Apr) | abril (abr) |
| May (May) | mayo (may) |
| June (Jun) | junio (jun) |
| July (Jul) | julio (jul) |
| August (Aug) | agosto (ago) |
| September (Sep) | septiembre (sept) |
| October (Oct) | octubre (oct) |
| November (Nov) | noviembre (nov) |
| December (Dec) | diciembre (dic) |
### 大写
英语倾向于大写许多单词,而西班牙语更保守,遵循更[严格的规则集](https://baselang.com/blog/basic-grammar/capitalization-in-spanish/)。
YAMLResume 内部采用固定的选项和术语集用于所有简历模板。例如,YAMLResume 简历模板中的语言采用[LinkedIn 的语言熟练程度选项](https://www.linkedin.com/pulse/language-proficiency-linkedin-duaa-ali/):
* Elementary Proficiency
* Limited Working Proficiency
* Minimum Professional Proficiency
* Full Professional Proficiency
* Native or Bilingual Proficiency
这些翻译为西班牙语如下:
* Competencia elemental
* Competencia limitada de trabajo
* Competencia profesional de trabajo
* Competencia profesional plena
* Competencia nativa o bilingüe
只有第一个单词大写。
## 排版
### 标点符号
西班牙语在标点符号方面与英语有几个显著差异:
* **引号**:在英语中,句号和逗号放在引号内,而在西班牙语中,它们通常放在外面。
* **反向符号**:西班牙语在疑问句和感叹句的开头和结尾使用反向问号 `¿` 和感叹号 `¡`,而英语不使用。
* **序列逗号**:英语经常在列表中的"and"前使用序列逗号(例如,"apples, oranges, and bananas"),而西班牙语在"y"前不使用逗号(例如,"manzanas, naranjas y plátanos")
* **数字格式**:英语使用句号作为小数点分隔符(例如,3.14),而西班牙语使用逗号(例如,3,14)。
## 翻译
YAMLResume 采用以下翻译用于西班牙语简历中使用的各种选项和术语
### 教育学位
| 英语 | 西班牙语 |
| ------------- | -------------------- |
| Middle School | Escuela secundaria |
| High School | Título de secundaria |
| Diploma | Diploma |
| Associate | Grado de asociado |
| Bachelor | Licenciatura |
| Master | Maestría |
| Doctor | Doctorado |
### 语言
| 英语 | 西班牙语 |
| ----------- | ----------- |
| Afrikaans | Afrikáans |
| Albanian | Albanés |
| Amharic | Amárico |
| Arabic | Árabe |
| Azerbaijani | Azerbaiyano |
| Belarusian | Bielorruso |
| Bengali | Bengalí |
| Bhojpuri | Bhojpuri |
| Bulgarian | Búlgaro |
| Burmese | Birmano |
| Cantonese | Cantonés |
| Catalan | Catalán |
| Chinese | Chino |
| Croatian | Croata |
| Czech | Checo |
| Danish | Danés |
| Dutch | Neerlandés |
| English | Inglés |
| Estonian | Estonio |
| Farsi | Persa |
| Filipino | Filipino |
| Finnish | Finés |
| French | Francés |
| German | Alemán |
| Greek | Griego |
| Gujarati | Gujarati |
| Hausa | Hausa |
| Hebrew | Hebreo |
| Hindi | Hindi |
| Hungarian | Húngaro |
| Icelandic | Islandés |
| Igbo | Igbo |
| Indonesian | Indonesio |
| Irish | Irlandés |
| Italian | Italiano |
| Japanese | Japonés |
| Javanese | Javanés |
| Kazakh | Kazajo |
| Khmer | Jemer |
| Korean | Coreano |
| Lahnda | Lahnda |
| Latvian | Letón |
| Lithuanian | Lituano |
| Malay | Malayo |
| Mandarin | Mandarín |
| Marathi | Marathi |
| Nepali | Nepalí |
| Norwegian | Noruego |
| Oromo | Oromo |
| Pashto | Pastún |
| Polish | Polaco |
| Portuguese | Portugués |
| Romanian | Rumano |
| Russian | Ruso |
| Serbian | Serbio |
| Shona | Shona |
| Sinhala | Cingalés |
| Slovak | Eslovaco |
| Slovene | Esloveno |
| Somali | Somalí |
| Spanish | Español |
| Sundanese | Sundanés |
| Swahili | Suajili |
| Swedish | Sueco |
| Tagalog | Tagalo |
| Tamil | Tamil |
| Telugu | Telugu |
| Thai | Tailandés |
| Turkish | Turco |
| Ukrainian | Ucraniano |
| Urdu | Urdu |
| Uzbek | Uzbeko |
| Vietnamese | Vietnamita |
| Yoruba | Yoruba |
| Zulu | Zulú |
### 语言熟练程度
| 英语 | 西班牙语 |
| -------------------------------- | ---------------------------------- |
| Elementary Proficiency | Competencia elemental |
| Limited Working Proficiency | Competencia limitada de trabajo |
| Minimum Professional Proficiency | Competencia profesional de trabajo |
| Full Professional Proficiency | Competencia profesional plena |
| Native or Bilingual Proficiency | Competencia nativa o bilingüe |
### 位置(国家和地区)
| 英语 | 西班牙语 |
| ------------------------------------ | -------------------------------------------- |
| Afghanistan | Afganistán |
| Aland Islands | Islas Åland |
| Albania | Albania |
| Algeria | Argelia |
| American Samoa | Samoa Americana |
| Andorra | Andorra |
| Angola | Angola |
| Anguilla | Anguila |
| Antarctica | Antártida |
| Antigua And Barbuda | Antigua y Barbuda |
| Argentina | Argentina |
| Armenia | Armenia |
| Aruba | Aruba |
| Australia | Australia |
| Austria | Austria |
| Azerbaijan | Azerbaiyán |
| Bahrain | Baréin |
| Bangladesh | Bangladés |
| Barbados | Barbados |
| Belarus | Bielorrusia |
| Belgium | Bélgica |
| Belize | Belice |
| Benin | Benín |
| Bermuda | Bermudas |
| Bhutan | Bután |
| Bolivia | Bolivia |
| Bonaire, Sint Eustatius and Saba | Bonaire, San Eustaquio y Saba |
| Bosnia and Herzegovina | Bosnia y Herzegovina |
| Botswana | Botsuana |
| Bouvet Island | Isla Bouvet |
| Brazil | Brasil |
| British Indian Ocean Territory | Territorio Británico del Océano Índico |
| Brunei | Brunéi |
| Bulgaria | Bulgaria |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Camboya |
| Cameroon | Camerún |
| Canada | Canadá |
| Cape Verde | Cabo Verde |
| Cayman Islands | Islas Caimán |
| Central African Republic | República Centroafricana |
| Chad | Chad |
| Chile | Chile |
| China | China |
| Christmas Island | Isla de Navidad |
| Cocos (Keeling) Islands | Islas Cocos |
| Colombia | Colombia |
| Comoros | Comoras |
| Congo | Congo |
| Cook Islands | Islas Cook |
| Costa Rica | Costa Rica |
| Cote D'Ivoire (Ivory Coast) | Costa de Marfil |
| Croatia | Croacia |
| Cuba | Cuba |
| Curaçao | Curazao |
| Cyprus | Chipre |
| Czech Republic | República Checa |
| Democratic Republic of the Congo | República Democrática del Congo |
| Denmark | Dinamarca |
| Djibouti | Yibuti |
| Dominica | Dominica |
| Dominican Republic | República Dominicana |
| East Timor | Timor Oriental |
| Ecuador | Ecuador |
| Egypt | Egipto |
| El Salvador | El Salvador |
| Equatorial Guinea | Guinea Ecuatorial |
| Eritrea | Eritrea |
| Estonia | Estonia |
| Ethiopia | Etiopía |
| Falkland Islands | Islas Malvinas |
| Faroe Islands | Islas Feroe |
| Fiji Islands | Fiyi |
| Finland | Finlandia |
| France | Francia |
| French Guiana | Guayana Francesa |
| French Polynesia | Polinesia Francesa |
| French Southern Territories | Tierras Australes y Antárticas Francesas |
| Gabon | Gabón |
| Gambia The | Gambia |
| Georgia | Georgia |
| Germany | Alemania |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Grecia |
| Greenland | Groenlandia |
| Grenada | Granada |
| Guadeloupe | Guadalupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernsey y Alderney |
| Guinea | Guinea |
| Guinea-Bissau | Guinea-Bisáu |
| Guyana | Guyana |
| Haiti | Haití |
| Heard Island and McDonald Islands | Islas Heard y McDonald |
| Honduras | Honduras |
| Hong Kong S.A.R. | Hong Kong |
| Hungary | Hungría |
| Iceland | Islandia |
| India | India |
| Indonesia | Indonesia |
| Iran | Irán |
| Iraq | Irak |
| Ireland | Irlanda |
| Israel | Israel |
| Italy | Italia |
| Jamaica | Jamaica |
| Japan | Japón |
| Jersey | Jersey |
| Jordan | Jordania |
| Kazakhstan | Kazajistán |
| Kenya | Kenia |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Kuwait |
| Kyrgyzstan | Kirguistán |
| Laos | Laos |
| Latvia | Letonia |
| Lebanon | Líbano |
| Lesotho | Lesoto |
| Liberia | Liberia |
| Libya | Libia |
| Liechtenstein | Liechtenstein |
| Lithuania | Lituania |
| Luxembourg | Luxemburgo |
| Macau S.A.R. | Macao |
| Madagascar | Madagascar |
| Malawi | Malaui |
| Malaysia | Malasia |
| Maldives | Maldivas |
| Mali | Malí |
| Malta | Malta |
| Man (Isle of) | Isla de Man |
| Marshall Islands | Islas Marshall |
| Martinique | Martinica |
| Mauritania | Mauritania |
| Mauritius | Mauricio |
| Mayotte | Mayotte |
| Mexico | México |
| Micronesia | Micronesia |
| Moldova | Moldavia |
| Monaco | Mónaco |
| Mongolia | Mongolia |
| Montenegro | Montenegro |
| Montserrat | Montserrat |
| Morocco | Marruecos |
| Mozambique | Mozambique |
| Myanmar | Myanmar |
| Namibia | Namibia |
| Nauru | Nauru |
| Nepal | Nepal |
| Netherlands | Países Bajos |
| New Caledonia | Nueva Caledonia |
| New Zealand | Nueva Zelanda |
| Nicaragua | Nicaragua |
| Niger | Níger |
| Nigeria | Nigeria |
| Niue | Niue |
| Norfolk Island | Isla Norfolk |
| North Korea | Corea del Norte |
| North Macedonia | Macedonia del Norte |
| Northern Mariana Islands | Islas Marianas del Norte |
| Norway | Noruega |
| Oman | Omán |
| Pakistan | Pakistán |
| Palau | Palaos |
| Palestinian Territory Occupied | Territorio Palestino Ocupado |
| Panama | Panamá |
| Papua new Guinea | Papúa Nueva Guinea |
| Paraguay | Paraguay |
| Peru | Perú |
| Philippines | Filipinas |
| Pitcairn Island | Islas Pitcairn |
| Poland | Polonia |
| Portugal | Portugal |
| Puerto Rico | Puerto Rico |
| Qatar | Catar |
| Reunion | Reunión |
| Romania | Rumania |
| Russia | Rusia |
| Rwanda | Ruanda |
| Saint Helena | Santa Elena |
| Saint Kitts And Nevis | San Cristóbal y Nieves |
| Saint Lucia | Santa Lucía |
| Saint Pierre and Miquelon | San Pedro y Miquelón |
| Saint Vincent And The Grenadines | San Vicente y las Granadinas |
| Saint-Barthelemy | San Bartolomé |
| Saint-Martin (French part) | San Martín (parte francesa) |
| Samoa | Samoa |
| San Marino | San Marino |
| Sao Tome and Principe | Santo Tomé y Príncipe |
| Saudi Arabia | Arabia Saudita |
| Senegal | Senegal |
| Serbia | Serbia |
| Seychelles | Seychelles |
| Sierra Leone | Sierra Leona |
| Singapore | Singapur |
| Sint Maarten (Dutch part) | San Martín (parte neerlandesa) |
| Slovakia | Eslovaquia |
| Slovenia | Eslovenia |
| Solomon Islands | Islas Salomón |
| Somalia | Somalia |
| South Africa | Sudáfrica |
| South Georgia | Georgia del Sur |
| South Korea | Corea del Sur |
| South Sudan | Sudán del Sur |
| Spain | España |
| Sri Lanka | Sri Lanka |
| Sudan | Sudán |
| Suriname | Surinam |
| Svalbard And Jan Mayen Islands | Svalbard y Jan Mayen |
| Swaziland | Suazilandia |
| Sweden | Suecia |
| Switzerland | Suiza |
| Syria | Siria |
| Taiwan | Taiwán |
| Tajikistan | Tayikistán |
| Tanzania | Tanzania |
| Thailand | Tailandia |
| The Bahamas | Bahamas |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinidad y Tobago |
| Tunisia | Túnez |
| Türkiye | Turquía |
| Turkmenistan | Turkmenistán |
| Turks And Caicos Islands | Islas Turcas y Caicos |
| Tuvalu | Tuvalu |
| Uganda | Uganda |
| Ukraine | Ucrania |
| United Arab Emirates | Emiratos Árabes Unidos |
| United Kingdom | Reino Unido |
| United States | Estados Unidos |
| United States Minor Outlying Islands | Islas Ultramarinas Menores de Estados Unidos |
| Uruguay | Uruguay |
| Uzbekistan | Uzbekistán |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Ciudad del Vaticano |
| Venezuela | Venezuela |
| Vietnam | Vietnam |
| Virgin Islands (British) | Islas Vírgenes Británicas |
| Virgin Islands (US) | Islas Vírgenes de los Estados Unidos |
| Wallis And Futuna Islands | Wallis y Futuna |
| Western Sahara | Sahara Occidental |
| Yemen | Yemen |
| Zambia | Zambia |
| Zimbabwe | Zimbabue |
### 章节名称
| 英语 | 西班牙语 |
| ------------ | ------------------- |
| Awards | Premios |
| Basics | Información básica |
| Certificates | Certificados |
| Education | Educación |
| Interests | Intereses |
| Languages | Idiomas |
| Location | Ubicación |
| Profiles | Perfiles |
| Projects | Proyectos |
| Publications | Publicaciones |
| References | Referencias |
| Skills | Competencias |
| Volunteer | Voluntariado |
| Work | Experiencia laboral |
### 技能级别
| 英语 | 西班牙语 |
| ------------ | ------------ |
| Novice | Novato |
| Beginner | Principiante |
| Intermediate | Intermedio |
| Advanced | Avanzado |
| Expert | Experto |
| Master | Maestro |
### 选项和术语
| 英语 | 西班牙语 |
| -------- | -------------- |
| Courses | Cursos |
| Keywords | Palabras clave |
| Score | Puntuación |
# 模式
URL: (/zh-cn/docs/compiler/schema)
## 概述
起草简历是一个漫长、无聊且繁琐的过程。人们经常需要花费数小时挑剔细节,但错误仍然会发生。例如,教育学位可能有拼写错误,电子邮件格式可能错误,课程名称可能太短等。
除了[静态类型定义](/zh-cn/docs/compiler/types)之外,YAMLResume 还提供了一个内置模式,可用于运行时验证。这是使 YAMLResume 成为**简历编译器**的核心——YAMLResume 提供**clang 风格的警告/错误消息**,帮助在简历起草的早期阶段捕获潜在错误。
例如,对于以下简历:
```yml lineNumbers title="invalid-resume.yml"
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
---
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@pp # [!code highlight]
url: https//ppresume.com/gallery # [!code highlight]
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
region: California
city: S # [!code highlight]
country: United States
postalCode: "95814"
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
startDate: Sep 1, 2016
endDate:
courses:
- D # [!code highlight]
- Programming Language Concepts
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
layouts:
- engine: latex
typography:
fontSize: 13pt # [!code highlight]
```
`yamlresume validate` 将为您提供潜在错误列表,并提供清晰的位置信息,帮助精确定位错误位置,同时,借助 [yaml-language-server](https://github.com/redhat-developer/yaml-language-server),您可以通过[自动完成](/zh-cn/docs/compiler/schema/json#auto-completion)、[悬停属性文档](/zh-cn/docs/compiler/schema/json#property-docs)、[格式验证](/zh-cn/docs/compiler/schema/json#format-validation)等功能获得更好的编辑体验。
在底层,YAMLResume 采用 [Zod](https://zod.dev) 在运行时验证简历数据。Zod 是一个 TypeScript 优先的模式验证库,允许您为简历数据定义模式,作为强大的安全网,确保简历数据可靠、一致,并准备好渲染成专业的 PDF。
模式验证是确保简历数据正确性的非常强大的工具。它可以在简历起草的整个生命周期中捕获错误,这对于从一开始就避免低级错误非常有帮助。
## 了解更多
# JSON Schema
URL: (/zh-cn/docs/compiler/schema/json)
## 概述
YAMLResume 提供了一个官方的 [JSON Schema](https://json-schema.org) 用于验证简历数据。
最新的官方 JSON Schema 托管在:
[https://yamlresume.com/schema.json](https://yamlresume.com/schema.json)。但是,如果您想要一个精简版本用于您的 IDE/编辑器,您也可以使用我们 GitHub 仓库中的 canary 版本 [schema.json](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/schema/schema.json)。
同时,随着 YAMLResume 的发展,官方 JSON Schema 将不断更新,因此我们还在以下位置提供所有归档版本的 JSON Schema:
`https://yamlresume.com/schemas//schema.json`。
目前我们有以下归档版本:
* [v0.11.0](/schemas/v0.11.0/schema.json)
* [v0.10.1](/schemas/v0.10.1/schema.json)
* [v0.10.0](/schemas/v0.10.0/schema.json)
* [v0.9.1](/schemas/v0.9.1/schema.json)
* [v0.8.1](/schemas/v0.8.1/schema.json)
* [v0.5.1](/schemas/v0.5.1/schema.json)
* [v0.6.0](/schemas/v0.6.0/schema.json)
* [v0.7.0](/schemas/v0.7.0/schema.json)
## 什么是 JSON Schema?
[JSON Schema](https://json-schema.org) 是一种基于 JSON 的格式,用于定义 JSON 数据的结构。它是验证和记录 JSON 数据的强大工具。
JSON Schema 允许您指定 JSON 数据的预期结构、类型和约束。使用 JSON Schema,您可以定义哪些属性是必需的,允许什么类型的值(如字符串、数字、数组或对象),甚至为值格式设置规则(如电子邮件地址或 URL)。
通过使用 JSON Schema,开发人员和工具可以自动验证 JSON 数据,以确保它在处理前符合预期格式。这有助于早期捕获错误,提高数据质量,并在现代代码编辑器中启用自动完成和内联文档等功能。
JSON Schema 得到广泛支持,可用于配置文件、API 负载,在 YAMLResume 的情况下,用于验证简历数据以确保一致性和正确性。
## 优势
在制作简历时将 YAMLResume 的 JSON Schema 集成到您的 IDE/编辑器中会带来几个好处:
* **自动完成**:当您开始输入时,您的 IDE/编辑器将建议属性及其预期类型,帮助您更快地起草简历并减少错误。
* **格式验证**:您的 IDE/编辑器将在您输入时突出显示任何格式错误(如无效日期或 URL),防止您提交错误信息。
* **属性文档**:获取每个属性的内联文档,解释其用途、允许的值和任何特殊格式要求。
### 自动完成
所有[枚举类型](/zh-cn/docs/compiler/types#enum-types)在输入时都会自动完成。您只需输入选项的前几个字母,IDE/编辑器就会建议有效选项列表,然后您可以使用上下箭头键选择正确的选项。
### 格式验证
每个键值对都会根据预定义模式进行实时验证。您的 IDE/编辑器将用精确的错误消息警告您,帮助避免低级错误,如错误的电子邮件格式、无效的学位选项、语言熟练程度级别的拼写错误等。
如果缺少必需的键,警告消息将默认升级到其父对象,因此您可以轻松找到缺少的键。
### 属性文档
最后但同样重要的是,您可以获取每个属性的内联文档,解释其用途、允许的值和任何特殊格式要求。您可以将鼠标悬停在属性键或值上以查看文档。
## 如何使用 JSON Schema?
您需要安装 [yaml-language-server](https://github.com/redhat-developer/yaml-language-server) 来为您的简历使用 YAMLResume 的 JSON 模式。根据您的 IDE/编辑器,您可能需要安装不同的[扩展](https://github.com/redhat-developer/yaml-language-server?tab=readme-ov-file#clients)。
安装后,您需要在简历文件顶部添加以下行:
```
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
```
然后您就可以享受[自动完成](#auto-completion)、[格式验证](#format-validation)和[属性文档](#property-docs)功能,一切尽在您的指尖。
## 工程实现
在底层,YAMLResume 的 JSON 模式是在 [Zod v4](https://zod.dev/json-schema) 的帮助下生成的,这是一个出色的 TypeScript 优先模式验证库。
我们在 [schema/resume.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/schema/resume.ts) 中定义模式,然后在[测试用例](https://github.com/yamlresume/yamlresume/blob/99de/packages/core/src/schema/resume.test.ts#L272-L277)中生成 JSON 模式。
这不是很酷吗?
# Zod Schema
URL: (/zh-cn/docs/compiler/schema/zod)
YAMLResume 采用 [zod](https://zod.dev) 在运行时验证简历数据。
本文档概述了 YAMLResume 中使用的所有 zod 模式。如果您对实现细节感兴趣,可以在[这里](https://github.com/yamlresume/yamlresume/tree/main/packages/core/src/schema)找到源代码。
## 简历模式
定义整体简历结构验证,包括内容和布局验证。
| 属性 | 类型 | 必需 |
| ---------- | --------------------------------- | -- |
| `content` | [`ContentSchema`](#contentschema) | ✅ |
| `layouts?` | [`LayoutsSchema`](#layoutsschema) | ⬜ |
| `locale?` | [`LocaleSchema`](#localeschema) | ⬜ |
### ContentSchema
定义整个简历内容的验证结构。
| 属性 | 类型 | 必需 |
| --------------- | --------------------------------------------------- | -- |
| `basics` | [`BasicsItemSchema`](#basicsitemschema) | ✅ |
| `education` | [`EducationItemSchema[]`](#educationitemschema) | ✅ |
| `awards?` | [`AwardItemSchema[]`](#awarditemschema) | ⬜ |
| `certificates?` | [`CertificateItemSchema[]`](#certificateitemschema) | ⬜ |
| `interests?` | [`InterestItemSchema[]`](#interestitemschema) | ⬜ |
| `languages?` | [`LanguageItemSchema[]`](#languageitemschema) | ⬜ |
| `location?` | [`LocationItemSchema`](#locationitemschema) | ⬜ |
| `projects?` | [`ProjectItemSchema[]`](#projectitemschema) | ⬜ |
| `profiles?` | [`ProfileItemSchema[]`](#profileitemschema) | ⬜ |
| `publications?` | [`PublicationItemSchema[]`](#publicationitemschema) | ⬜ |
| `references?` | [`ReferenceItemSchema[]`](#referenceitemschema) | ⬜ |
| `skills?` | [`SkillItemSchema[]`](#skillitemschema) | ⬜ |
| `volunteer?` | [`VolunteerItemSchema[]`](#volunteeritemschema) | ⬜ |
| `work?` | [`WorkItemSchema[]`](#workitemschema) | ⬜ |
#### AwardItemSchema
验证获得的单个奖项、荣誉或认可。
| 属性 | 类型 | 必需 | 验证规则 |
| ---------- | -------- | -- | ------------------------- |
| `awarder` | `string` | ✅ | 2-128 个字符 |
| `title` | `string` | ✅ | 2-128 个字符 |
| `date?` | `string` | ⬜ | 参见[日期模式](#date-schema) |
| `summary?` | `string` | ⬜ | 参见[摘要模式](#summary-schema) |
#### BasicsItemSchema
验证核心个人和联系信息。
| 属性 | 类型 | 必需 | 验证规则 |
| ----------- | -------- | -- | ------------------------- |
| `name` | `string` | ✅ | 2-128 个字符 |
| `email?` | `string` | ⬜ | 参见[电子邮件模式](#email-schema) |
| `headline?` | `string` | ⬜ | 2-128 个字符 |
| `phone?` | `string` | ⬜ | 参见[电话模式](#phone-schema) |
| `summary?` | `string` | ⬜ | 参见[摘要模式](#summary-schema) |
| `url?` | `string` | ⬜ | 参见[URL 模式](#url-schema) |
#### CertificateItemSchema
验证单个认证、证书或专业资格。
| 属性 | 类型 | 必需 | 验证规则 |
| -------- | -------- | -- | ----------------------- |
| `issuer` | `string` | ✅ | 2-128 个字符 |
| `name` | `string` | ✅ | 2-128 个字符 |
| `date?` | `string` | ⬜ | 参见[日期模式](#date-schema) |
| `url?` | `string` | ⬜ | 参见[URL 模式](#url-schema) |
#### EducationItemSchema
验证单个教育经历或学位课程。
| 属性 | 类型 | 必需 | 验证规则 |
| ------------- | ------------------- | -- | ------------------------- |
| `area` | `string` | ✅ | 2-64 个字符 |
| `degree` | [`Degree`](#degree) | ✅ | 必须来自预定义的[学位选项](#degree) |
| `institution` | `string` | ✅ | 2-128 个字符 |
| `startDate` | `string` | ✅ | 参见[日期模式](#date-schema) |
| `courses?` | `string[]` | ⬜ | 每个项目 2-128 个字符 |
| `endDate?` | `string` | ⬜ | 参见[日期模式](#date-schema) |
| `summary?` | `string` | ⬜ | 参见[摘要模式](#summary-schema) |
| `score?` | `string` | ⬜ | 2-32 个字符 |
| `url?` | `string` | ⬜ | 参见[URL 模式](#url-schema) |
#### InterestItemSchema
验证单个兴趣、爱好或个人活动。
| 属性 | 类型 | 必需 | 验证规则 |
| ----------- | ---------- | -- | --------------------------- |
| `name` | `string` | ✅ | 2-128 个字符 |
| `keywords?` | `string[]` | ⬜ | 参见[关键词模式](#keywords-schema) |
#### LanguageItemSchema
验证单个语言能力项目。
| 属性 | 类型 | 必需 | 验证规则 |
| ----------- | ----------------------- | -- | -------------------------- |
| `fluency` | [`Fluency`](#fluency) | ✅ | 必须来自预定义的[熟练程度选项](#fluency) |
| `language` | [`Language`](#language) | ✅ | 必须来自预定义的[语言选项](#language) |
| `keywords?` | `string[]` | ⬜ | 每个项目 1-32 个字符 |
#### LocationItemSchema
验证位置和地址信息。
| 属性 | 类型 | 必需 | 验证规则 |
| ------------- | --------------------- | -- | ------------------------ |
| `city` | `string` | ✅ | 2-128 个字符 |
| `address?` | `string` | ⬜ | 2-128 个字符 |
| `country?` | [`Country`](#country) | ⬜ | 必须来自预定义的[国家选项](#country) |
| `postalCode?` | `string` | ⬜ | 2-128 个字符 |
| `region?` | `string` | ⬜ | 2-128 个字符 |
#### ProfileItemSchema
验证单个在线个人资料或社交媒体存在。
| 属性 | 类型 | 必需 | 验证规则 |
| ---------- | --------------------- | -- | ------------------------ |
| `network` | [`Network`](#network) | ✅ | 必须来自预定义的[网络选项](#network) |
| `username` | `string` | ✅ | 2-128 个字符 |
| `url?` | `string` | ⬜ | 有效 URL,最多 256 个字符 |
#### ProjectItemSchema
验证单个项目、作品集作品或技术工作。
| 属性 | 类型 | 必需 | 验证规则 |
| -------------- | ---------- | -- | ------------------------- |
| `name` | `string` | ✅ | 2-128 个字符 |
| `startDate` | `string` | ✅ | 参见[日期模式](#date-schema) |
| `summary` | `string` | ✅ | 参见[摘要模式](#summary-schema) |
| `description?` | `string` | ⬜ | 4-128 个字符 |
| `endDate?` | `string` | ⬜ | 参见[日期模式](#date-schema) |
| `keywords?` | `string[]` | ⬜ | 每个项目 1-32 个字符 |
| `url?` | `string` | ⬜ | 有效 URL,最多 256 个字符 |
#### PublicationItemSchema
验证单个出版物、研究工作或学术论文。
| 属性 | 类型 | 必需 | 验证规则 |
| -------------- | -------- | -- | ------------------------- |
| `name` | `string` | ✅ | 2-128 个字符 |
| `publisher` | `string` | ✅ | 2-128 个字符 |
| `releaseDate?` | `string` | ⬜ | 参见[日期模式](#date-schema) |
| `summary?` | `string` | ⬜ | 参见[摘要模式](#summary-schema) |
| `url?` | `string` | ⬜ | 有效 URL,最多 256 个字符 |
#### ReferenceItemSchema
验证单个专业推荐人或推荐。
| 属性 | 类型 | 必需 | 验证规则 |
| --------------- | -------- | -- | ------------------------- |
| `name` | `string` | ✅ | 2-128 个字符 |
| `summary` | `string` | ✅ | 参见[摘要模式](#summary-schema) |
| `email?` | `string` | ⬜ | 参见[电子邮件模式](#email-schema) |
| `phone?` | `string` | ⬜ | 有效电话格式 |
| `relationship?` | `string` | ⬜ | 2-128 个字符 |
#### SkillItemSchema
验证单个技能、能力或技术能力。
| 属性 | 类型 | 必需 | 验证规则 |
| ----------- | ----------------- | -- | ---------------------- |
| `level` | [`Level`](#level) | ✅ | 必须来自预定义的[级别选项](#level) |
| `name` | `string` | ✅ | 2-128 个字符 |
| `keywords?` | `string[]` | ⬜ | 每个项目 1-32 个字符 |
#### VolunteerItemSchema
验证单个志愿者经历或社区服务。
| 属性 | 类型 | 必需 | 验证规则 |
| -------------- | -------- | -- | ------------------------- |
| `organization` | `string` | ✅ | 2-128 个字符 |
| `position` | `string` | ✅ | 2-128 个字符 |
| `startDate` | `string` | ✅ | 参见[日期模式](#date-schema) |
| `summary` | `string` | ✅ | 参见[摘要模式](#summary-schema) |
| `endDate?` | `string` | ⬜ | 参见[日期模式](#date-schema) |
| `url?` | `string` | ⬜ | 有效 URL,最多 256 个字符 |
#### WorkItemSchema
验证单个工作经历或就业职位。
| 属性 | 类型 | 必需 | 验证规则 |
| ----------- | ---------- | -- | ------------------------- |
| `name` | `string` | ✅ | 2-128 个字符 |
| `position` | `string` | ✅ | 2-128 个字符 |
| `startDate` | `string` | ✅ | 参见[日期模式](#date-schema) |
| `summary` | `string` | ✅ | 参见[摘要模式](#summary-schema) |
| `endDate?` | `string` | ⬜ | 参见[日期模式](#date-schema) |
| `keywords?` | `string[]` | ⬜ | 每个项目 1-32 个字符 |
| `url?` | `string` | ⬜ | 有效 URL,最多 256 个字符 |
### LocaleSchema
验证国际化和本地化的区域设置。
| 属性 | 类型 | 必需 | 验证规则 |
| ----------- | ----------------------------------- | -- | ---------------------------------- |
| `language?` | [`LocaleLanguage`](#localelanguage) | ⬜ | 必须来自预定义的[区域语言选项](#locale-language) |
### LayoutsSchema
定义整体布局验证配置。
| 属性 | 类型 | 必需 | 验证规则 |
| ----------- | --------------------------------------------------------------------------------------------------------------------------------------- | -- | ------- |
| `layouts[]` | [`HtmlLayoutSchema`](#htmllayoutschema) \| [`LatexLayoutSchema`](#latexlayoutschema) \| [`MarkdownLayoutSchema`](#markdownlayoutschema) | ⬜ | 布局配置数组。 |
#### 通用布局模式
##### MarginsSchema
验证文档布局的页边距设置。
| 属性 | 类型 | 必需 | 验证规则 |
| --------- | -------- | -- | -------------------------------- |
| `top?` | `string` | ⬜ | 参见[页边距大小模式](#margin-size-schema) |
| `bottom?` | `string` | ⬜ | 参见[页边距大小模式](#margin-size-schema) |
| `left?` | `string` | ⬜ | 参见[页边距大小模式](#margin-size-schema) |
| `right?` | `string` | ⬜ | 参见[页边距大小模式](#margin-size-schema) |
##### SectionsSchema
验证分节自定义设置。
| 属性 | 类型 | 必需 | 验证规则 |
| ---------- | --------------------------- | -- | ------------------------------- |
| `aliases?` | `Record` | ⬜ | 键必须是有效的分节 ID,值必须是字符串(2-128 个字符) |
| `order?` | `OrderableSectionID[]` | ⬜ | 有效可排序分节 ID 的数组 |
#### HtmlLayoutSchema
验证 HTML 布局配置。
| 属性 | 类型 | 必需 |
| ------------- | ----------------------------------------------- | -- |
| `engine` | `'html'` | ✅ |
| `advanced?` | [`HtmlAdvancedSchema`](#htmladvancedschema) | ⬜ |
| `sections?` | [`SectionsSchema`](#sectionsschema) | ⬜ |
| `template?` | [`HtmlTemplateSchema`](#htmltemplateschema) | ⬜ |
| `typography?` | [`HtmlTypographySchema`](#htmltypographyschema) | ⬜ |
##### HtmlAdvancedSchema
验证 HTML 的高级布局配置选项。
| 属性 | 类型 | 必需 | 验证规则 |
| -------------- | --------- | -- | ---------- |
| `showIcons?` | `boolean` | ⬜ | true/false |
| `title?` | `string` | ⬜ | - |
| `footer?` | `string` | ⬜ | - |
| `description?` | `string` | ⬜ | - |
| `keywords?` | `string` | ⬜ | - |
##### HtmlTemplateSchema
验证 HTML 模板配置。
| 属性 | 类型 | 必需 | 验证规则 |
| ---------- | ------------------------------- | -- | ----------------------------- |
| `template` | [`HtmlTemplate`](#htmltemplate) | ⬜ | 必须来自预定义的[模板选项](#htmltemplate) |
##### HtmlTypographySchema
验证 HTML 排版设置。
| 属性 | 类型 | 必需 | 验证规则 |
| ------------- | ------------------------------- | -- | ------------------------------- |
| `fontFamily?` | `string` | ⬜ | 逗号分隔的字体家族列表。 |
| `fontSize?` | [`HtmlFontSize`](#htmlfontsize) | ⬜ | 必须来自预定义的[字体大小选项](#htmlfontsize) |
#### LatexLayoutSchema
验证 LaTeX 布局配置。
| 属性 | 类型 | 必需 | 验证规则 |
| ------------- | ------------------------------------------------- | -- | -------------------------------- |
| `advanced?` | [`LatexAdvancedSchema`](#latexadvancedschema) | ⬜ | 参见[高级模式](#latexadvancedschema) |
| `engine` | `'latex'` | ✅ | 必须是 "latex" |
| `page?` | [`LatexPageSchema`](#latexpageschema) | ⬜ | 参见[页面模式](#latexpageschema) |
| `sections?` | [`SectionsSchema`](#sectionsschema) | ⬜ | 参见[分节模式](#sectionsschema) |
| `template?` | [`LatexTemplate`](#latextemplate) | ⬜ | 必须来自预定义的[模板选项](#template) |
| `typography?` | [`LatexTypographySchema`](#latextypographyschema) | ⬜ | 参见[排版模式](#latextypographyschema) |
##### LatexAdvancedSchema
验证 LaTeX 的高级配置选项。
| 属性 | 类型 | 必需 | 验证规则 |
| ------------ | ------------------------------------ | -- | ----------------------------------------- |
| `fontspec?` | `{ numbers?: LatexFontspecNumbers }` | ⬜ | 必须来自预定义的[fontspec 数字选项](#fontspecnumbers) |
| `showIcons?` | `boolean` | ⬜ | true/false |
##### LatexPageSchema
验证文档演示的页面级设置。
| 属性 | 类型 | 必需 | 验证规则 |
| ------------------ | --------------------------------- | -- | ---------------------------- |
| `margins?` | [`MarginsSchema`](#marginsschema) | ⬜ | 参见[页边距模式](#marginsschema) |
| `paperSize?` | [`PaperSize`](#papersize) | ⬜ | 必须来自预定义的[纸张大小选项](#papersize) |
| `showPageNumbers?` | `boolean` | ⬜ | true/false |
##### LatexTypographySchema
验证文档格式的排版设置。
| 属性 | 类型 | 必需 | 验证规则 |
| ------------- | ------------------------- | -- | --------------------------- |
| `fontSize?` | `string` | ⬜ | 必须来自预定义的[字体大小选项](#fontsize) |
| `fontFamily?` | `string` | ⬜ | 逗号分隔的字体家族列表。 |
| `links?` | `{ underline?: boolean }` | ⬜ | true/false |
#### MarkdownLayoutSchema
验证 Markdown 布局配置。
| 属性 | 类型 | 必需 | 验证规则 |
| ----------- | ----------------------------------- | -- | ------------------------- |
| `engine` | `'markdown'` | ✅ | 必须是 "markdown" |
| `sections?` | [`SectionsSchema`](#sectionsschema) | ⬜ | 参见[分节模式](#sectionsschema) |
## 原始验证模式
### 电子邮件模式
使用严格格式要求验证电子邮件地址。
**验证规则:**
* 必须是有效的电子邮件格式
* 模式:`^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$`
* 示例:`hi@ppresume.com`、`first.last@company.org`、`test+tag@domain.co.uk`
### 电话模式
使用灵活格式支持验证电话号码。
**验证规则:**
* 模式:`^[+]?[(]?[0-9\\s-]{1,15}[)]?[0-9\\s-]{1,15}$`
* 可能包括国家代码、括号、空格和连字符
* 示例:`555-123-4567`、`+44 20 7946 0958`、`(555) 123-4567`
### 摘要模式
使用长度约束验证摘要文本。
**验证规则:**
* 必须在 16 到 1024 个字符之间
* 示例:
* "具有 5 年以上全栈开发经验的软件工程师。"
* "热衷于用户体验和现代设计原则的创意设计师。"
* "在按时按预算交付复杂项目方面有良好记录的项目经理。"
### URL 模式
使用长度约束验证 URL。
**验证规则:**
* 必须是有效的 URL 格式
* 最大长度为 256 个字符
* 示例:`https://yamlresume.dev`、`https://ppresume.com`、`https://github.com/yamlresume/yamlresume`
### 关键词模式
使用单个项目约束验证关键词数组。
**验证规则:**
* 字符串数组
* 每个关键词必须在 1 到 32 个字符之间
* 示例:`["Javascript", "React", "Typescript"]`、`["Design", "UI", "UX"]`
### 日期模式
使用格式要求验证日期字符串。
**验证规则:**
* 必须在 4 到 32 个字符之间
* 必须可被 `Date.parse()` 解析
* 示例:`2025-01-01`、`Jul 2025`、`July 3, 2025`、`2025-02-02T00:00:03.123Z`
### 页边距大小模式
使用单位要求验证页边距大小字符串。
**验证规则:**
* 必须在 2 到 32 个字符之间
* 模式:`^\\d+(\\.\\d+)?(cm|pt|in)$`
* 必须是正数后跟有效单位:cm、pt 或 in
* 示例:`2.5cm`、`1in`、`72pt`、`0.5cm`、`12pt`
## 枚举验证模式
### 国家
世界上所有可能国家和地区的联合类型。
**验证规则:**
* 必须是预定义的国家选项之一
* 示例:`United States`、`China`、`United Kingdom`、`Germany`
### 学位
所有可能学位的联合类型。
**验证规则:**
* 必须是以下之一:`Associate`、`Bachelor`、`Diploma`、`Doctor`、`High School`、`Master`、`Middle School`
### 熟练程度
所有可能语言熟练程度的联合类型。
**验证规则:**
* 必须是以下之一:
* `Elementary Proficiency`
* `Full Professional Proficiency`
* `Limited Working Proficiency`
* `Minimum Professional Proficiency`
* `Native or Bilingual Proficiency`
### 语言
所有支持语言的联合类型。
**验证规则:**
* 必须是预定义的语言选项之一
* 示例:`English`、`Chinese`、`Spanish`、`French`、`German`
### 级别
所有可能技能熟练程度的联合类型。
**验证规则:**
* 必须是以下之一:`Advanced`、`Beginner`、`Expert`、`Intermediate`、`Master`、`Novice`
### 网络
所有可能社交网络选项的联合类型。
**验证规则:**
* 必须是预定义的网络选项之一
* 示例:`GitHub`、`LinkedIn`、`Twitter`、`Facebook`、`Instagram`
### LatexTemplate
所有可能模板选项的联合类型。
**验证规则:**
* 必须是以下之一:`moderncv-banking`、`moderncv-casual`、`moderncv-classic`
* 必须是以下之一:`moderncv-banking`、`moderncv-casual`、`moderncv-classic`
* 另请参阅:[模板](/zh-cn/docs/layouts/latex/templates)
### HtmlFontSize
所有可能 HTML 字体大小选项的联合类型。
**验证规则:**
* 必须是以下之一:`10px`、`11px`、`12px`、`13px`、`14px`、`15px`、`16px`、`17px`、`18px`、`19px`、`20px`、`21px`、`22px`、`23px`、`24px`
* HTML 引擎支持 10px 到 24px 的字体大小
* `16px` 是默认字体大小
### HtmlTemplate
所有可能 HTML 模板选项的联合类型。
**验证规则:**
* 必须是以下之一:`calm`
* 另请参阅:[模板](/zh-cn/docs/layouts/html/templates)
### LocaleLanguage
所有可能区域语言的联合类型。
**验证规则:**
* 必须是以下之一:`en`、`es`、`zh-hans`、`zh-hant-hk`、`zh-hant-tw`
* 另请参阅:[多语言](/zh-cn/docs/locale)
### LatexFontspecNumbers
所有可能 latex fontspec 数字选项的联合类型。
**验证规则:**
* 必须是以下之一:
* `Auto` - 允许根据选定的 `LocaleLanguage` 自动确定样式(默认)
* `Lining` - 标准衬线数字(CJK 语言的默认值)
* `OldStyle` - 不同高度的旧式数字(拉丁语言的默认值)
### LatexFontSize
所有可能字体大小选项的联合类型。
**验证规则:**
* 必须是以下之一:`10pt`、`11pt`、`12pt`
* `10pt` 是默认字体大小
### PaperSize
所有可能的 LaTeX 纸张大小选项的联合类型。
**验证规则:**
* 必须是以下之一:`a4`、`letter`
# HTML 引擎
URL: (/zh-cn/docs/layouts/html)
HTML 引擎生成干净、适用于网络的 HTML 版本简历。这特别适用于在网站中嵌入简历、在线分享或创建基于网络的作品集。
## 配置
要使用 HTML 引擎,请在布局配置中指定 `engine: html`。
```yaml
layouts:
- engine: html
template: calm
# ... 其他选项
```
## 章节
`sections` 选项允许您自定义章节标题及其顺序。更多信息,请参见[章节文档](./sections)。
```yml lineNumbers
layouts:
- engine: html
sections:
aliases:
work: "Professional Experience"
education: "Education"
skills: "Skills"
order:
- basics
- work
- education
```
## 模板
`template` 选项允许您从各种模板中选择。每个模板都有独特的设计和布局。您可以在[模板文档](./html/templates)中找到可用模板的列表。
```yml lineNumbers
layouts:
- engine: html
template: calm
```
## 排版
`typography` 选项允许您自定义简历中使用的字体样式。
### 字体大小
`fontSize` 选项允许您设置文档的基本字体大小。
HTML 引擎支持从 `14px` 到 `20px` 的字体大小。
### 字体家族
`fontFamily` 选项允许您指定字体家族名称和/或通用家族名称的优先列表。
这与 CSS 的 `font-family` 属性完全相同。
```yaml
layouts:
- engine: html
typography:
fontSize: 16px
fontFamily: "Merriweather, serif"
```
## 高级设置
`advanced` 选项允许您配置 HTML 引擎的高级设置。
```yml lineNumbers
layouts:
- engine: html
advanced:
showIcons: true
# HTML 文档的自定义标题。
title: "我的自定义简历标题"
# HTML 文档的自定义页脚。
footer: "由 YAMLResume 生成"
# HTML 文档的 Meta 描述。
description: "用于 SEO 的简历简短描述。"
# HTML 文档的 Meta 关键词。
keywords: "简历, CV, yamlresume"
```
# LaTeX 引擎
URL: (/zh-cn/docs/layouts/latex)
LaTeX 引擎是 YAMLResume 的核心引擎,旨在通过 LaTeX 模板生成高质量、外观专业的 PDF 简历。
## 配置
要使用 LaTeX 引擎,请在布局配置中指定 `engine: latex`。
```yaml
layouts:
- engine: latex
template: moderncv-banking
# ... 其他选项
```
## 页面
`page` 选项允许您自定义页面设置,如纸张大小、边距和是否显示页码。
```yml lineNumbers
layouts:
- engine: latex
page:
showPageNumbers: true
# a4 或 letter
paperSize: a4
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
```
## 章节
`sections` 选项允许您自定义章节标题及其顺序。更多信息,请参见[章节文档](./sections)。
```yml lineNumbers
layouts:
- engine: latex
sections:
aliases:
work: "Professional Experience"
education: "Education"
skills: "Skills"
order:
- basics
- work
- education
```
## 模板
`template` 选项允许您从各种模板中选择。每个模板都有独特的设计和布局。您可以在[模板文档](./latex/templates)中找到可用模板的列表。
```yml lineNumbers
layouts:
- engine: latex
template: moderncv-banking
```
## 排版
`typography` 选项允许您自定义简历中使用的字体样式。
### 字体大小
`fontSize` 选项允许您设置文档的基本字体大小。
LaTeX 引擎仅支持 `10pt`、`11pt` 和 `12pt`。
### 字体家族
`fontFamily` 选项允许您指定字体家族名称的优先列表。
这与 CSS 的 `font-family` 属性类似。
```yaml
layouts:
- engine: latex
typography:
fontSize: 11pt
fontFamily: "Merriweather, serif"
```
## 高级设置
`advanced` 选项允许您配置 LaTeX 引擎的高级设置。
```yml lineNumbers
layouts:
- engine: latex
advanced:
showIcons: true
fontspec:
numbers: Lining
```
# Markdown 引擎
URL: (/zh-cn/docs/layouts/markdown)
markdown 引擎生成简历的纯 Markdown 版本。当您需要将简历内容复制粘贴到申请人跟踪系统 (ATS) 或其他不支持 PDF 上传的表单时,这特别有用。
## 配置
要使用 markdown 引擎,请在布局配置中指定 `engine: markdown`。
```yml
layouts:
- engine: markdown
```
markdown 输出将与您的 PDF 一起生成(如果您也配置了 LaTeX 布局)或作为独立文件生成。
与 [LaTeX 布局](./latex) 不同,Markdown 布局是一个简单的布局,除了[章节别名](/docs/layouts/sections/aliases)和[章节重新排序](/docs/layouts/sections/reorder)外,没有额外的配置。
```yml lineNumbers title="resume.yml"
---
content:
# ...
locale:
language: en
layouts:
- engine: markdown
sections:
aliases:
work: Professional Experience
education: Academic Background
skills: Technical Skills
order:
- basics
- work
- education
- skills
```
章节的 `aliases` 和 `order` 将在最终的 markdown 输出中得到遵守。
# 别名
URL: (/zh-cn/docs/layouts/sections/aliases)
YAMLResume 为[除 `location` 和 `profiles`](#aliasable-sections) 之外的所有简历章节提供默认标题,这些标题会根据选择的[语言环境语言](/zh-cn/docs/layouts#locale)自动[翻译](docs/locale)。但是,您可能希望自定义这些标题以更好地适合您的档案或行业。`section aliases` 功能允许您用自己的自定义名称覆盖默认章节标题。
例如,您可能更喜欢 `work` 章节使用"Professional Experience"而不是"Work",或者 `skills` 章节使用"Technical Proficiencies"而不是"Skills"。
## 如何使用
您可以在 `resume.yml` 文件的 `layouts.[].sections` 配置中定义章节别名。在您的布局中添加一个 `sections` 对象,在其中添加一个 `aliases` 映射。
`aliases` 映射中的键是标准章节 ID,值是您要使用的自定义标题。
## 示例
以下是如何更改 `work`、`education` 和 `skills` 章节的标题:
```yml lineNumbers title="resume.yml"
---
content:
# ...
layouts:
- engine: latex
sections:
aliases:
work: Professional Experience
education: Academic Background
skills: Technical Skills
```
当您使用此配置构建简历时,生成的 PDF 将使用"Professional Experience"、"Academic Background"和"Technical Skills"作为这些章节的标题,覆盖默认或特定于语言环境的名称。
如果未为某个章节提供别名,YAMLResume 将回退到配置语言环境的默认标题。
## 可别名的章节
您可以为以下章节提供别名:
* `basics`
* `education`
* `work`
* `volunteer`
* `awards`
* `certificates`
* `publications`
* `skills`
* `languages`
* `interests`
* `references`
* `projects`
## 规则和约束
* 别名长度必须在 2 到 128 个字符之间。
# 章节
URL: (/zh-cn/docs/layouts/sections)
YAMLResume 提供灵活的选项来自定义简历的章节。您可以更改任何章节的标题并重排章节以最适合您的专业档案。这些自定义在您的 `resume.yml` 文件中的 `layouts.[].sections` 配置中处理。
```yml lineNumbers title="resume.yml"
---
content:
# ...
layouts:
- engine: latex
sections:
aliases:
work: "Professional Experience"
education: "Academic Background"
skills: "Technical Skills"
order:
- work
- education
- awards
- volunteer
```
## 了解更多
# 重排
URL: (/zh-cn/docs/layouts/sections/reorder)
默认情况下,YAMLResume 按标准顺序排列章节。但是,您可以通过提供自定义 `order` 列表轻松更改此设置。这允许您首先突出显示最重要的信息。
## 如何使用
例如,如果您想将"Skills"和"Projects"章节放在"Work"经历之前,您可以这样定义顺序:
```yml lineNumbers title="resume.yml"
---
content:
# ...
layouts:
- engine: latex
sections:
order:
- skills
- projects
- work
```
包含在 `order` 列表中的任何章节将首先出现,按您指定的顺序。未包含在列表中的章节将在后面追加,遵循其默认顺序。
## 示例
### 优先考虑工作经历
```yml lineNumbers
layouts:
- engine: latex
sections:
order:
- work
- education
```
结果:工作经历首先出现,然后是教育,然后是所有其他章节按默认顺序。
### 突出技能和语言
```yml lineNumbers
layouts:
- engine: latex
sections:
order:
- skills
- languages
- work
```
结果:技能和语言在顶部突出显示,然后是工作经历,然后是其余章节。
### 学术重点
```yml lineNumbers
layouts:
- engine: latex
sections:
order:
- education
- publications
- awards
- certificates
```
结果:学术章节首先出现,然后是其他章节按默认顺序。
## 默认章节顺序
当未指定自定义顺序时,章节按此默认顺序渲染:
1. `basics`(默认渲染到简历顶部作为摘要章节)
2. `education`
3. `work`
4. `languages`
5. `skills`
6. `awards`
7. `certificates`
8. `publications`
9. `references`
10. `projects`
11. `interests`
12. `volunteer`
## 实现细节
* **优先级**:在 `order` 中指定的章节按指定序列首先出现
* **回退**:其余章节按默认顺序跟随
* **去重**:顺序数组中的重复章节会被去重(保留第一次出现)
* **空章节**:没有内容的章节会自动过滤掉
* **灵活性**:用户可以指定任何可排序章节的子集
## 可排序的章节
以下章节可以重排:
* `basics`
* `education`
* `work`
* `volunteer`
* `awards`
* `certificates`
* `publications`
* `skills`
* `languages`
* `interests`
* `references`
* `projects`
# Calm
URL: (/zh-cn/docs/layouts/html/templates/calm)
## 实现
Calm 是一个灵感来自 moderncv LaTeX 模板的干净现代的 HTML 模板。
它具有简约设计,章节分隔清晰,以及针对网页浏览优化的优雅布局。
在底层,该模板使用:
* **CSS 重置**:自定义重置样式表,确保跨浏览器一致渲染
* **排版**:可自定义的字体大小,范围从 14px 到 20px
* **响应式设计**:适应不同屏幕尺寸的干净布局
* **语义化 HTML**:适当的 HTML5 结构,提升可访问性和 SEO
## 配置
```yml lineNumbers title="resume.yml"
content:
# ...
layouts:
- engine: html
template: calm # [!code highlight]
typography:
fontSize: 16px
```
## 特性
* **干净的设计**:专注于内容可读性的简约布局
* **现代排版**:具有可自定义大小的专业字体
* **网络就绪**:可以直接嵌入网站或通过 URL 分享
* **适合打印**:针对从网页浏览器打印为 PDF 优化
* **可自定义章节**:灵活的章节顺序和命名
## 预览
Calm 模板提供适合各种行业和经验水平的专业外观。其干净的设计确保您的内容成为焦点,同时保持视觉吸引力。
# 模板
URL: (/zh-cn/docs/layouts/html/templates)
YAMLResume 提供开箱即用的 HTML 模板,您可以使用 `yamlresume templates list` 命令列出所有模板。
```console
$ yamlresume templates list
| layouts.[].template | Engine | Template Name | Description |
| ------------------- | ------ | ---------------- | ------------------------------------------------- |
| moderncv-banking | latex | ModernCV Banking | ModernCV template with banking style |
| moderncv-casual | latex | ModernCV Casual | ModernCV template with casual style |
| moderncv-classic | latex | ModernCV Classic | ModernCV template with classic style |
| calm | html | Calm | Clean and minimalist design suitable for all professionals. |
| vscode | html | VS Code | Dark theme inspired by Visual Studio Code, tailored for developers. |
```
默认情况下,YAMLResume 对 HTML 输出使用 [calm](./templates/calm) 模板。您可以通过在 YAML 简历中设置 `layouts.[].template` 来更改模板。
```yml lineNumbers title="resume.yml"
content:
# ...
layouts:
- engine: html
# ...
template: calm # [!code highlight]
# ...
```
查看以下模板了解更多详情:
# VS Code
URL: (/zh-cn/docs/layouts/html/templates/vscode)
## 实现
VS Code 是一款受 Visual Studio Code "Dark+" 配色方案启发的深色主题。它专为开发者、软件工程师和技术专业人士量身定制,旨在让你的简历反映出你真实的编码环境。
该模板采用了“简历即代码”(Resume as Code)的美学理念,将你个人资料的不同部分视为代码元素:
* **姓名**:装饰为 `class`(例如:`class JohnDoe {`)
* **头衔/标语**:呈现为代码注释(例如:`// Full Stack Engineer`)
* **章节**:表示为函数调用(例如:`experience()`)
* **技能/语言**:样式设定为对象属性键(例如:`JavaScript: Expert`)
在底层实现上,该模板采用了:
* **字体排版**:使用等宽字体系列(`Consolas`, `Monaco`, `Courier New`, `monospace`)以营造真实的 IDE 质感
* **语法高亮**:使用 VS Code Dark+ 官方配色方案来区分关键字、字符串、类和函数
* **布局缩进**:引入垂直缩进指南(左边框)来直观地表示每个章节的作用域
## 配置
```yml lineNumbers title="resume.yml"
content:
# ...
layouts:
- engine: html
template: vscode # [!code highlight]
typography:
fontSize: 16px
```
## 特性
* **以开发者为中心**:完美展示技术熟练度以及对编码的热情
* **默认深色模式**:高对比度、保护眼睛的深色主题
* **类代码结构**:独特的视觉隐喻,让技术简历脱颖而出
* **响应式设计**:完全适配桌面端和移动端浏览,保持一致的代码语义
* **语法样式**:使用熟悉的 IDE 颜色来区分职位、日期和描述
## 预览
VS Code 模板提供了一种独特且现代的外观,能立即引起技术招聘人员和招聘经理的共鸣。它将你的职业历程转化为一份简洁、易读且视觉上非常熟悉的“源文件”。
# 模板
URL: (/zh-cn/docs/layouts/latex/templates)
YAMLResume 提供了几个开箱即用的模板,您可以使用 `yamlresume templates list` 命令列出所有模板。
```console
$ yamlresume templates list
| `layouts.[].template` | `Engine` | `Template Name` | `Description` |
| --------------------- | -------- | ------------------ | -------------------------------------- |
| `moderncv-banking` | `latex` | `ModernCV Banking` | `ModernCV template with banking style` |
| `moderncv-casual` | `latex` | `ModernCV Casual` | `ModernCV template with casual style` |
| `moderncv-classic` | `latex` | `ModernCV Classic` | `ModernCV template with classic style` |
```
默认情况下,YAMLResume 使用 [moderncv-banking](./moderncv-banking) 模板。您可以通过在 YAML 简历中设置 `layouts.[].template` 来更改模板。
```yml lineNumbers title="resume.yml"
content:
# ...
layouts:
- engine: latex
# ...
template: moderncv-classic # [!code highlight]
# ...
```
查看以下模板以获取更多详细信息:
# Moderncv Banking
URL: (/zh-cn/docs/layouts/latex/templates/moderncv-banking)
## 实现
Moderncv banking 是一个基于 [xdanaux/moderncv](https://github.com/xdanaux/moderncv) 的现代简洁简历模板。
在底层,我们使用以下代码作为 LaTeX 前言:
```latex lineNumbers
\documentclass[a4paper, serif, 11pt]{moderncv}
%% moderncv
% style and color
\moderncvstyle{banking}
\moderncvcolor{black}
% needed by moderncv for showing icons
\usepackage{fontawesome5}
```
对于 moderncv banking 样式,我们还采用了一些特殊的标点符号处理,以便与 CJK 配合使用。
从技术上讲,英语和中文有不同的冒号。英语冒号是 `:`,Unicode 为 `U+003A`,而中文冒号是 `:`,Unicode 为 `U+FF1A`。所以当简历语言是中文时,我们会通过覆盖一些神奇的 LaTeX 宏来为 moderncv 采用中文冒号:
```latex lineNumbers
% renew moderncv command to adapt for CJK colon
\renewcommand*{\cvitem}[3][.25em]{%
\ifstrempty{#2}{}{\hintstyle{#2}<= &templateTranslations.punctuations.Colon =>}{#3}%
\par\addvspace{#1}}
\renewcommand*{\cvitemwithcomment}[4][.25em]{%
\savebox{\cvitemwithcommentmainbox}{\ifstrempty{#2}{}{\hintstyle{#2}<= &templateTranslations.punctuations.Colon =>}#3}%
\setlength{\cvitemwithcommentmainlength}{\widthof{\usebox{\cvitemwithcommentmainbox}}}%
\setlength{\cvitemwithcommentcommentlength}{\maincolumnwidth-\separatorcolumnwidth-\cvitemwithcommentmainlength}%
\begin{minipage}[t]{\cvitemwithcommentmainlength}\usebox{\cvitemwithcommentmainbox}\end{minipage}%
\hfill% fill of \separatorcolumnwidth
\begin{minipage}[t]{\cvitemwithcommentcommentlength}\raggedleft\small\itshape#4\end{minipage}%
\par\addvspace{#1}}
```
查看我们的博客[文章](https://blog.ppresume.com/posts/multi-languagues-support#colon)了解更多详情。
## 预览
# Moderncv Casual
URL: (/zh-cn/docs/layouts/latex/templates/moderncv-casual)
## 实现
Moderncv casual 是一个基于 [xdanaux/moderncv](https://github.com/xdanaux/moderncv) 的现代休闲简历模板。
在底层,我们使用以下代码作为 LaTeX 前言:
```latex lineNumbers
\documentclass[a4paper, serif, 11pt]{moderncv}
%% moderncv
% style and color
\moderncvstyle{casual}
\moderncvcolor{black}
% needed by moderncv for showing icons
\usepackage{fontawesome5}
```
## 预览
# Moderncv Classic
URL: (/zh-cn/docs/layouts/latex/templates/moderncv-classic)
## 实现
Moderncv classic 是一个基于 [xdanaux/moderncv](https://github.com/xdanaux/moderncv) 的现代经典简历模板。
在底层,我们使用以下代码作为 LaTeX 前言:
```latex lineNumbers
\documentclass[a4paper, serif, 11pt]{moderncv}
%% moderncv
% style and color
\moderncvstyle{classic}
\moderncvcolor{black}
% needed by moderncv for showing icons
\usepackage{fontawesome5}
```
## 预览
# CLI
URL: (/zh-tw/docs/cli)
YAMLResume 提供了 CLI 工具來幫助您管理履歷。您可以按照 [安裝指南](/zh-tw/docs/installation) 來安裝它。
請注意,我們為您提供了一個 [docker 鏡像](/zh-tw/docs/installation#docker-users),其中已安裝了 `yamlresume` CLI 以及所有必要的依賴項。
對於本指南中的每個子命令,您可以通過在 `yamlresume/yamlresume` 後附加子命令在 docker 中運行它。
例如,在 yamlresume CLI 中建立新履歷:
```sh
yamlresume new my-resume.yml
```
您也可以在 docker 中運行:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
```
## 幫助
顯示 CLI 幫助和所有可用命令:
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build a resume on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
顯示 YAMLResume CLI 版本:
```console
$ yamlresume -V
0.5.0
```
## New
建立新履歷。預設履歷檔案名稱是 `resume.yml`,但您可以指定自訂檔案名稱:
```console
$ yamlresume new --help
Usage: yamlresume new [options] [filename]
create a new resume
Arguments:
filename output filename (default: "resume.yml")
Options:
-h, --help display help for command
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
## Build
從 YAML 構建履歷到 PDF。它將同時生成 latex 代碼和 PDF,如果您使用 [XeTeX](/zh-tw/docs/installation#xetex) 作為排版引擎,還會生成一些中間檔案 `.aux`、`.log` 等。
```console
$ yamlresume build --help
Usage: yamlresume build [options]
build a resume to LaTeX and PDF
Arguments:
resume-path the resume file path
Options:
--no-pdf only generate TeX file without PDF
--no-validate skip resume schema validation
-h, --help display help for command
$ yamlresume build my-resume.yml
◐ Generating resume PDF file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume PDF file successfully.
```
### `--no-pdf`
如果您只想生成 LaTeX 檔案而不生成 PDF,可以使用 `--no-pdf` 選項。
```console
$ yamlresume build --no-pdf my-resume.yml
```
### `--no-validate`
如果您想跳過履歷架構驗證,可以使用 `--no-validate` 選項。
```console
$ yamlresume build --no-validate my-resume.yml
```
## Dev
在檔案更改時從 YAML 構建履歷到 PDF。它接受與 [`build`](#build) 相同的選項,但是當 YAML 檔案更改時會自動重建履歷(即監視模式)。這對於您即時預覽履歷更改非常方便。
```console
$ yamlresume dev --help
Usage: yamlresume dev [options]
build a resume on file changes (watch mode)
Arguments:
resume-path the resume file path
Options:
--no-pdf only generate TeX file without PDF
--no-validate skip resume schema validation
-h, --help display help for command
```
## Validate
根據 YAMLResume [架構](/zh-tw/docs/compiler/schema) 驗證履歷。
```console
$ yamlresume validate --help
Usage: yamlresume validate [options]
validate a resume against the YAMLResume schema
Arguments:
resume-path the resume file path
Options:
-h, --help display help for command
```
例如,對於以下履歷:
```yml lineNumbers
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
---
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@pp
url: https://ppresume.com/gallery
summary: |
- 電腦科學專業,在資料結構、演算法和軟體開發方面有紮實的基礎
- 像素級完美的全端網路開發者,專門建立高品質、視覺吸引力的網站
- 熟悉資料庫(SQL、NoSQL),熟悉伺服器端技術(Node.js、Express 等)
- 團隊合作者,具有注重細節的思維和對設計和使用者體驗的敏銳眼光
location:
address: 123 Main Street
region: California
city: S
country: United States
postalCode: "95814"
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
startDate: Sep 1, 2016
endDate:
courses:
- D
- Programming Language Concepts
summary: |
- 掌握了 Java、C++ 和 Python 等程式設計語言
- 通過各種專案和作業獲得了軟體開發的實務經驗
- 通過小組專案和演示獲得了強大的溝通和團隊合作技能
layouts:
- engine: latex
typography:
fontSize: 13pt
```
`yamlresume validate` 將為您提供潛在錯誤清單,並提供清晰的位置資訊
```console
$ yamlresume validate my-resume.yml
invalid-resume.yml:9:12: warning: email is invalid.
email: hi@pp
^
invalid-resume.yml:19:11: warning: city should be 2 characters or more.
city: S
^
invalid-resume.yml:31:11: warning: courses should be 2 characters or more.
- D
^
invalid-resume.yml:41:17: warning: font size option is invalid, it must be one of the following: ["10pt", "11pt", "12pt"]
fontSize: 13pt
^
✖ Resume validation failed.
```
## Languages
列出所有可用語言。語言代碼遵循 [ISO 639 規範](https://www.iso.org/iso-639-language-code) 中的規範。您可以在 `locale.language` 中指定語言代碼以更改履歷的語言。更改履歷的語言將自動翻譯所有固定術語。您可以在我們的 [內容 -> 多語言](/zh-tw/docs/locale) 章节查看更多詳細資訊。
```console
$ yamlresume languages list
| locale.language | Language Name | 1:03:48 PM
| --------------- | ------------------------------- |
| en | English |
| zh-hans | Simplified Chinese |
| zh-hant-hk | Traditional Chinese (Hong Kong) |
| zh-hant-tw | Traditional Chinese (Taiwan) |
| es | Spanish |
| fr | French |
| no | Norwegian |
| nl | Dutch |
| ja | Japanese |
| de | German |
```
## Templates
列出所有可用模板。您可以通過在 YAML 履歷中設定 `layouts.[].template` 來更改履歷模板。更多詳細資訊請參見 [PPResume 模板](https://docs.ppresume.com/typesetting/templates)。
```console
$ yamlresume templates list
| `layouts.[].template` | `Engine` | `Template Name` | `Description` |
| --------------------- | -------- | ------------------ | -------------------------------------- |
| `moderncv-banking` | `latex` | `ModernCV Banking` | `ModernCV template with banking style` |
| `moderncv-casual` | `latex` | `ModernCV Casual` | `ModernCV template with casual style` |
| `moderncv-classic` | `latex` | `ModernCV Classic` | `ModernCV template with classic style` |
```
# 對比
URL: (/zh-tw/docs/comparisons)
## JSON Resume
[JSON Resume](https://jsonresume.org) 是構建履歷結構化資料格式開放標準的先驅。其第一個[官方發布](https://jsonresume.org/blog/first-official-release)是在 2014 年 7 月 31 日,距今已有 10 多年。
從其官方網站:
```markdown
## 起源和概念化
JSON Resume 被設想為解決履歷格式分散和不一致問題的解決方案。傳統履歷,通常以 Microsoft Word 或 PDF 等格式創建,在被不同系統解析時經常遇到相容性問題。認識到這個問題,Thomas Davis 和 Roland Sharp 發起了 JSON Resume 作為開源專案,為履歷創建通用、機器可讀的格式。
## 開發里程碑
該專案在 2010 年代初期開始獲得動力,重要的里程碑包括 JSON Resume 模式的創建、第一個 CLI 工具的開發以及 JSON Resume 註冊表的建立。這些里程碑是由社群貢獻和科技行業對標準化履歷格式需求日益增長的認識推動的。
```
JSON Resume 在構建履歷結構化資料格式的開放標準方面做得非常出色。然而,它缺少 YAMLResume 擁有的一些功能。
YAMLResume 深受 [JSON Resume](https://jsonresume.org/) 的啟發,在某些方面更加固執己見。例如,JSON Resume 對如何將機器可讀資料轉換為美觀、人類可讀的履歷隻字不提。
以下是一些顯著差異:
| 功能 | YAMLResume | JSON Resume |
| ----- | ---------- | ----------- |
| 資料格式 | YAML | JSON |
| 資料結構 | 所有頂級物件 | 一些嵌套物件 |
| 排版引擎 | LaTeX | 無 |
| 佈局規範 | 內建 | 未指定 |
| 富文字支援 | 是 | 否 |
我們將來會提供一個工具來將 JSON Resume 導入到 YAMLResume。
# 快速開始
URL: (/zh-tw/docs)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
import { Step, Steps } from "fumadocs-ui/components/steps";
## 簡介
創建履歷可能並不困難,但這絕對是一個枯燥、冗長且繁瑣的過程。
使用 YAMLResume,你可以用 YAML 創建和版本控制你的履歷,並輕鬆生成具有專業版式和排版的完美 PDF。
YAMLResume 是 [PPResume](https://ppresume.com) 的核心引擎,這是一個基於 LaTeX 的建構器。它已經幫助[世界各地成千上萬的人](https://blog.ppresume.com/posts/2024-recap)創建像素完美、外觀專業的履歷,並找到理想的工作。我們在這裡決定開源這個引擎,以便給人們拒絕[供應商鎖定](https://blog.ppresume.com/posts/no-vendor-lock-in)的權利和自由。
## 開始使用
### Docker 使用者
如果你是 docker 使用者,你很幸運,我們為你準備了一個 [docker 映像](https://hub.docker.com/r/yamlresume/yamlresume),其中安裝了 [yamlresume cli](https://www.npmjs.com/package/yamlresume) 及其所有依賴項,如 [XeTeX](https://www.tug.org/xetex/) 和一些[推薦字體](/zh-tw/docs/installation#font)。
你只需使用以下命令創建一個新履歷:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
```
相應地編輯 `my-resume.yml`,然後從 yaml 建構履歷到 pdf:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
```
### macOS 使用者
假設你正在使用 macOS 並將 [Homebrew](https://brew.sh/) 作為套件管理器。如果不是,請查看[安裝](/zh-tw/docs/installation)指南,了解你的作業系統的詳細說明。
#### 安裝 Node.js
你需要[安裝 Node.js](https://nodejs.org/en/download/package-manager/all#macos) 20.x 或更新版本。
```sh
brew install node
```
#### 安裝排版引擎
YAMLResume 需要一個[排版引擎](/zh-tw/docs/installation#typesetting-engine)來生成 PDF。目前它支援兩個排版引擎:
* [XeTeX](/zh-tw/docs/installation#xetex)
* [Tectonic](/zh-tw/docs/installation#tectonic)
<>
```sh
brew install mactex
```
```sh
brew install tectonic
```
>
#### 安裝 YAMLResume
安裝 `yamlresume` 非常簡單。你可以使用你喜歡的 Node.js 套件管理器來安裝它:
<>
```sh
npm install -g yamlresume
```
```sh
pnpm add -g yamlresume
```
```sh
yarn global add yamlresume
```
```console
bun add -g yamlresume
```
>
你也可以通過 [Homebrew 來安裝 `yamlresume`](http://formulae.brew.sh/formula/yamlresume):
```sh
brew install yamlresume
```
驗證 `yamlresume` 安裝成功:
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build a resume on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
#### \[可選] 安裝字體
##### Linux Libertine 字體
我們還建議安裝 [Linux Libertine 字體](/zh-tw/docs/installation#linux-libertine)以獲得最佳的 PDF 輸出外觀,但這是可選的。
```sh
brew install font-linux-libertine
```
##### Noto 字體
如果你需要創建 CJK(中文、日文、韓文)履歷,我們建議你安裝 [Noto 字體](https://fonts.google.com/noto):
```sh
brew install font-noto-sans-cjk font-noto-serif-cjk
```
#### 創建你的第一個 YAML 履歷
好的,我們已經準備好了一切,現在可以使用 `yamlresume new` 創建一個 yaml 履歷:
```console
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
相應地編輯 `resume.yml`,然後你可以使用 `yamlresume build` 生成 PDF:
```console
$ yamlresume build my-resume.yml
◐ Generating resume PDF file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resumep PDF file successfully.
```
你還可以使用 `yamlresume dev` 在檔案更改時建構履歷:
```console
$ yamlresume dev my-resume.yml
◐ Generating resume PDF file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resumep PDF file successfully.
◐ Watching file changes: my-resume.yml...
```
## 示例履歷
這是一個為[軟體工程師](https://github.com/yamlresume/yamlresume/blob/main/packages/cli/resources/resume.yml)量身定制的兩頁示例履歷的完整 YAML 代碼:
```yml lineNumbers
---
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@ppresume.com
url: https://ppresume.com/gallery
# All summary fields supports a limited rich text capabilities in markdown
# syntax:
#
# - bold, (e.g, `**bold**`)
# - italic, (e.g, `*italic*`)
# - ordered list, unordored list and nested sub list
# - links (e.g. `[link](https://ppresume.com)`)
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
city: Sacramento
region: California
country: United States
postalCode: "95814"
profiles:
- network: Line
url: https://line.com/PPResumeX
username: PPResumeX
- network: Twitter
url: https://twitter.com/PPResumeX
username: PPResumeX
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
# Valid degree options:
#
# - 'Middle School'
# - 'High School'
# - 'Diploma'
# - 'Associate'
# - 'Bachelor'
# - 'Master'
# - 'Doctor'
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
# Should be a valid date string that can be parsed by `new Date(dateStr)`
# in JavaScript, eg. '2020-01', '2020-02-03', 'Jul 1, 2023' etc.
#
# The date part would be removed in the final output as most of the time
# people won't really care about the exact date for your working
# experience or education background, etc.
# ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/Date
startDate: Sep 1, 2016
# Leave endDate blank to indicate "Present"
endDate: Jul 1, 2020
courses:
- Discrete Methods in Computer Science
- Programming Language Concepts
- Data Structures and Object-Oriented Design
- Operating Systems
- Computer Architecture
- Database Systems
- Computer Networking
- Introduction to the Theory of Computing
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
work:
- name: PPResume
url: https://ppresume.com
startDate: Dec 1, 2022
endDate: ""
position: Senior Software Engineer
summary: |
- Developed and implemented efficient and scalable code, ensuring high-quality and maintainable web applications
- Collaborated with cross-functional teams to gather project requirements and translate them into technical solutions
- Conducted thorough testing and debugging to identify and resolve any issues or bugs in the software
- Actively participated in code reviews, providing valuable feedback to improve code quality and adherence to best practices
- Mentored and guided junior developers, fostering a collaborative and growth-oriented team environment
keywords:
- Scalibility
- Growth
- Quality
- Mentorship
- name: PPResume
url: https://ppresume.com
startDate: Sep 1, 2020
endDate: Dec 1, 2022
position: Software Engineer
summary: |
- Created reusable React components to ensure code efficiency and maintainability
- Integrated with RESTful APIs to fetch and display dynamic data on the frontend
- Implemented client-side routing using React Router for smooth navigation between pages
- Actively participated in Agile development methodologies, attending daily stand-up meetings and sprint planning sessions
keywords:
- RESTful
- React
- Agile
languages:
# Valid language fluency options:
#
# - 'Elementary Proficiency'
# - 'Limited Working Proficiency'
# - 'Minimum Professional Proficiency'
# - 'Full Professional Proficiency'
# - 'Native or Bilingual Proficiency'
- language: English
fluency: Native or Bilingual Proficiency
keywords:
- TOEFL 110
- IELTS 7.5
- language: Chinese
fluency: Elementary Proficiency
keywords: []
skills:
# Valid skill level options:
#
# - 'Novice'
# - 'Beginner'
# - 'Intermediate'
# - 'Advanced'
# - 'Expert'
# - 'Master'
- name: Web Development
level: Expert
keywords:
- Python
- Ruby
- CSS
- React
- JavaScript
- name: DevOps
level: Intermediate
keywords:
- Python
- Kubernetes
- Docker
- Shell
- Ansible
- name: Design
level: Intermediate
keywords:
- Sketch
- Figma
- Photoshop
awards:
- title: Dean's List
awarder: University of Southern California
date: Oct 2016
summary: |
Awarded to students who achieve a high academic standing by maintaining a specified grade point average (GPA) during a semester.
certificates:
- name: AWS Certified Developer - Associate
url: https://aws.amazon.com/certification/
issuer: AWS
date: Mar 2021
publications:
- publisher: ACM Transactions on Interactive Intelligent Systems
url: https://dl.acm.org/journal/tiis
name: Enhancing Human-Computer Interaction through Augmented Reality
releaseDate: Dec 2017
summary: |
- Explores the potential of augmented reality (AR) in improving interaction between humans and computers
- Highlights benefits of AR in various areas such as gaming, education, healthcare, and design
- Discusses challenges and future directions of AR technology in enhancing user experience
references:
- name: Dr. Amanda Reynolds
phone: "(555) 123-4567"
relationship: Computer Science Professor
email: amanda.reynolds@usc.edu
summary: |
Andy Dufresne shows exceptional problem-solving skills and a solid understanding of programming concepts, he would bring immense value to any team or organization he becomes a part of.
projects:
- name: EduWeb
url: https://www.eduweb.xyz/
description: A web-based educational platform for interactive learning
startDate: Sep 2016
endDate: Dec 2016
summary: |
- Designed to enhance online learning experiences
- Facilitates students' engagement and collaboration through interactive features and user-friendly interface
- Offers a wide range of courses across various subjects
- Aims to improve the way students learn through the power of the web
keywords:
- Education
- Online Learning
- HCI
interests:
- name: Sports
keywords:
- Soccer
- Swimming
- Bicycling
- Hiking
- name: Music
keywords:
- Piano
- Guitar
volunteer:
- organization: USC Computer Science and Engineering Society
url: https://www.usccsesociety.org/
position: Tech Mentor
startDate: Sep 2015
endDate: Jul 2023
summary: |
- Volunteered as a Tech Mentor at USC Computer Science and Engineering Society
- Provided guidance and assistance to fellow students in their technical projects and coursework
- Assisted in organizing workshops, coding competitions, and networking events for the society members
- Contributed to fostering a collaborative and supportive environment within the student community
locale:
# Use `yamlresume languages list` to get the list of supported languages
language: en
layouts:
- engine: latex
page:
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
showPageNumbers: true
# Use `yamlresume templates list` to get the list of available templates
template: moderncv-banking
typography:
# LaTeX engine only supports 10pt, 11pt, and 12pt
fontSize: 11pt
- engine: markdown
```
這是[生成的 PDF](https://github.com/yamlresume/yamlresume/blob/main/packages/cli/resources/resume.pdf) 的截圖:
你可以查看 [PPResume 畫廊](https://ppresume.com/gallery)獲取更多示例,支援不同的[模板](https://ppresume.com/gallery/templates)和[多語言](https://ppresume.com/gallery/languages)。
## 了解更多
# 安裝
URL: (/zh-tw/docs/installation)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
YAMLResume 是一個 Node.js 工具,在底層,它將您的履歷從 YAML 格式轉換為 LaTeX 代碼,然後調用 LaTeX 排版引擎來編譯生成的 LaTeX 代碼為 PDF。此外,為了獲得最佳的 PDF 輸出,我們還建議安裝一些字型。簡而言之,您需要安裝以下內容才能開始使用 YAMLResume:
* Node.js
* [yamlresume 套件](https://www.npmjs.com/package/yamlresume)
* 排版引擎
* \[可選] 一些字型
這聽起來有點複雜,但不用擔心,我們會支援您。
## Docker 使用者
如果您是 docker 使用者,您很幸運,我們為您提供了一個 [docker 鏡像](https://hub.docker.com/r/yamlresume/yamlresume)。這個鏡像包含了所有預打包的內容,包括:
* [Node.js](/zh-tw/docs/installation#nodejs)
* [yamlresume CLI](/zh-tw/docs/installation#yamlresume)
* [XeTeX](/zh-tw/docs/installation#xetex)
* [一些推薦的字型](/zh-tw/docs/installation#font)
您可以使用以下命令立即建立新履歷:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
```
這個命令將在您的當前目錄中建立一個名為 `my-resume.yml` 的新履歷。步驟:
1. `docker run ... yamlresume/yamlresume` - 從 `yamlresume/yamlresume` 鏡像運行新容器,如果此鏡像在您的本地機器中不存在,它將從 [Docker Hub](https://hub.docker.com/r/yamlresume/yamlresume) 拉取。
2. `--rm` - 在退出時自動刪除容器
3. `-v $(pwd):/home/yamlresume` - 將當前目錄 (`$(pwd)`) 掛載到容器中的 `/home/yamlresume`,允許容器存取本地檔案
4. `new my-resume.yml` - 運行 yamlresume CLI [new](/zh-tw/docs/cli#new) 子命令來建立檔案名稱為 `my-resume.yml` 的新履歷
相應地編輯 `my-resume.yml`,然後從 yaml 構建履歷到 pdf:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
```
基本上,您可以以這種方式調用所有 `yamlresume` [CLI 子命令](/cli)——只需在 `yamlresume/yamlresume` 後附加子命令,然後按照相應的使用指南進行操作。
這裡的 `-v` 標誌非常重要,因為它將當前目錄 (`$(pwd)`) 掛載到容器中的 `/home/yamlresume`,允許本地目錄和容器之間進行雙向檔案同步。
如果您在從 [Docker Hub](https://hub.docker.com/r/yamlresume/yamlresume) 拉取 `yamlresume/yamlresume` 鏡像時遇到問題,不用擔心,我們為您提供了 [github 鏡像](https://github.com/yamlresume/yamlresume/pkgs/container/yamlresume)。
您可以通過以下方式獲取 [ghcr 鏡像](https://github.com/yamlresume/yamlresume/pkgs/container/yamlresume):
```sh
docker pull ghcr.io/yamlresume/yamlresume
```
### 權限問題
有時您在運行 Docker 容器時可能會遇到[權限問題](https://github.com/yamlresume/yamlresume/issues/24),因為 `yamlresume/yamlresume` 鏡像是使用 `USER yamlresume` 指令構建的,預設情況下以較少的權限運行。
解決此問題有兩種方法:
1. 使用您的主機使用者名稱/群組 ID 來運行容器:
```sh
docker run --rm -v $(pwd):/home/yamlresume -u $(id -u):$(id -g) yamlresume/yamlresume new my-resume.yml
```
這是運行容器的推薦方式。只要您的主機使用者有存取當前目錄的權限,您就可以使用您的主機使用者名稱/群組 ID 運行容器。
2. 使用 `-u root` 以 root 存取權限運行容器:
```sh
docker run --rm -v $(pwd):/home/yamlresume -u root yamlresume/yamlresume new my-resume.yml
```
這是最不推薦的運行容器的方式。不推薦這樣做因為它可能導致安全問題,所以您只應該在確信自己在做什麼的情況下才這樣做。
最後但同樣重要的是,如果您在 GitHub Actions 中運行 `yamlresume` Docker 容器,那麼根據 [GitHub 的文件](https://docs.github.com/en/actions/reference/runners/github-hosted-runners#docker-container-filesystem),可能需要 root 存取權限:
> 注意:GitHub Actions 必須由預設的 Docker 使用者 (root) 運行。確保您的 Dockerfile 不設定 USER 指令,否則您將無法存取 GITHUB\_WORKSPACE。
參考:[Understanding the Docker USER Instruction](https://www.docker.com/blog/understanding-the-docker-user-instruction/)
## 非 Docker 使用者
如果您不是 docker 使用者,請按照下面的相應說明根據您的作業系統安裝 yamlresume CLI 和所有必要的依賴項。在撰寫本文時,我們的指南涵蓋了 macOS、Windows 和一些 Linux 發行版(Ubuntu 和基於 RHEL 的發行版)。
### Node.js
需要 Node.js 20.x 或更新版本。
理論上 `yamlresume` 應該可以與 Node.js 18 一起工作,但是強烈建議使用 Node.js
20 或更新版本,因為 Node.js 18 LTS 計劃在 [2025 年 4 月 30
日](https://nodejs.org/en/blog/release/v18.20.8) 到達生命週期結束。
在不同的作業系統上可能有 100 多種安裝 Node.js 的方法,您可以查看官方的 [Node.js 下載](https://nodejs.org/en/download) 來開始。
我們建議使用[套件管理器](https://nodejs.org/en/download/package-manager/all)來安裝 Node.js。
對於 [Homebrew](https://brew.sh/) 使用者:
```sh
brew install node
```
對於 [Chocolatey](https://chocolatey.org/) 使用者:
```sh
choco install nodejs.install
```
對於 Ubuntu 24.10 或更新版本:
```sh
sudo apt install nodejs
```
對於 Ubuntu 24.04 或更舊版本,請查看 [NodeSource](https://downloads.nodesource.com/#debian) 來獲取 Node.js 20 或更新版本。
對於基於 RHEL 的 linux,如 Fedora、AlmaLinux、Rocky Linux 等:
```sh
sudo dnf install nodejs
```
### YAMLResume CLI
安裝 `yamlresume` 非常簡單。您可以使用您喜歡的 Node.js 套件管理器來安裝它:
<>
```console
npm install -g yamlresume
```
```console
pnpm add -g yamlresume
```
```console
yarn global add yamlresume
```
```console
bun add -g yamlresume
```
>
如果您使用的是 macOS 並且安裝了 [Homebrew](https://brew.sh),也可以透過 [Homebrew 安裝
yamlresume](http://formulae.brew.sh/formula/yamlresume):
```sh
brew install yamlresume
```
驗證 `yamlresume` 是否安裝成功:
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build a resume on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
如果您只是想試用 `yamlresume` 而不安裝它,您可以使用
`npx`、`pnpx` 或其他類似工具:
<>
```console
npx yamlresume help
```
```console
yarn dlx yamlresume help
```
```console
pnpx yamlresume help
```
```console
bun exec yamlresume help
```
>
### 排版引擎
在底層,`yamlresume` 完成編譯器的工作,將 YAML 履歷解析為 [AST](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/compiler/ast.ts),然後[將 AST 轉換為 LaTeX 代碼](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/compiler/codegen/latex.ts)。
作為一個小型編譯器,`yamlresume` 依賴排版引擎來編譯生成的 LaTeX 代碼為 PDF。因此,您必須首先安裝排版引擎,然後才能使用 `yamlresume` 生成履歷 PDF。
YAMLResume 目前支援兩個排版引擎:[XeTeX](#xetex) 和
[Tectonic](#tectonic)。
在撰寫本文時,[LaTeX](https://www.latex-project.org/) 仍然是 生成專業外觀 PDF
的最佳排版引擎選擇。 [Typst](https://typst.app/)
是一個很好的替代品,但它仍然處於早期階段,其 CJK
支援還不成熟,不適合生產使用。
之前我寫了一篇文章[關於排版引擎](https://blog.ppresume.com/posts/on-typesetting-engines),解釋了我在創立
[PPResume](https://ppresume.com) 時為什麼選擇 LaTeX 而不是其他排版引擎的原因。
#### XeTeX
[XeTeX](https://tug.org/xetex/) 是一個使用 [Unicode](https://en.wikipedia.org/wiki/Unicode) 並支援現代字型技術(如 [OpenType](https://en.wikipedia.org/wiki/OpenType)、[Graphite](https://fonts.adobe.com/fonts/graphite) 和 [Apple Advanced Typography (AAT)](https://en.wikipedia.org/wiki/Apple_Advanced_Typography))的 [TeX](https://en.wikipedia.org/wiki/TeX) 排版引擎。
它是一個非常成熟、穩定的排版引擎,被許多學術和科學人員廣泛使用。
最簡單的方法是安裝 **MacTeX** 發行版。
它包括 XeTeX 以及許多其他與 TeX 相關的程式和套件。您可以從 [MacTeX 網站](https://www.tug.org/mactex/) 下載它,或通過 homebrew 安裝:
```sh
# install the full mactex
brew install mactex
# or if you want to save some disk space
brew install mactex-no-gui
```
[MiKTeX 發行版](https://miktex.org) 是 Windows 的熱門選擇,包括 XeTeX。您可以從 [MiKTeX 網站](https://miktex.org/download) 下載它。
或者,您可以為 Windows 安裝 **TeX Live**,它也包括 XeTeX。從 [TeX Live 網站](https://www.tug.org/texlive/acquire-netinstall.html) 下載。
大多數 Linux 發行版通過其套件管理器提供 TeX Live。XeTeX 通常包含在 `texlive-xetex` 套件或更大的 `texlive-full` 元套件中。
對於 Ubuntu,如果您的網路良好並且有大約 10GB 的磁碟空間,您可以安裝完整的 texlive 發行版:
```sh
sudo apt install texlive-full
```
否則,您可以安裝最低要求的套件:
```sh
sudo apt install texlive-xetex texlive-fonts-extra texlive-lang-all
```
對於基於 RHEL 的 linux,如 Fedora、AlmaLinux、Rocky Linux,如果您有足夠的磁碟空間和良好的網路,您可以安裝完整的 TeX Live 發行版:
```sh
sudo dnf install texlive-scheme-full
```
否則您可以安裝最低要求的套件:
```sh
sudo dnf install \
texlive-scheme-medium \
texlive-moderncv \
texlive-ctex \
texlive-academicons
```
或者,您始終可以直接從 [TeX Live 網站](https://www.tug.org/texlive/acquire-netinstall.html) 使用他們的安裝程式安裝 TeX Live,這適用於不同的 Linux 發行版。
驗證 XeTeX 是否安裝成功:
```console
$ xetex -v
XeTeX 3.141592653-2.6-0.999994 (TeX Live 2022)
kpathsea version 6.3.4
Copyright 2022 SIL International, Jonathan Kew and Khaled Hosny.
There is NO warranty. Redistribution of this software is
covered by the terms of both the XeTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the XeTeX source.
Primary author of XeTeX: Jonathan Kew.
Compiled with ICU version 70.1; using 70.1
Compiled with zlib version 1.2.11; using 1.2.11
Compiled with FreeType2 version 2.11.1; using 2.11.1
Compiled with Graphite2 version 1.3.14; using 1.3.14
Compiled with HarfBuzz version 3.4.0; using 3.4.0
Compiled with libpng version 1.6.37; using 1.6.37
Compiled with pplib version v2.05 less toxic i hope
Using Mac OS X Core Text and Cocoa frameworks
```
#### Tectonic
[Tectonic](https://tectonic-typesetting.github.io) 是一個現代化、完整、自包含的 [TeX](https://en.wikipedia.org/wiki/TeX)/[LaTeX](https://www.latex-project.org/) 引擎,由 [XeTeX](https://tug.org/xetex/) 和 [TeXLive](https://www.tug.org/texlive/) 提供支援。
完整的 TeX Live 發行版通常佔用幾 GB 的磁碟空間,而 tectonic 的初始安裝只佔用 10+ MB。它自動下載支援檔案,所以您不必安裝完整的 LaTeX 發行版。當您開始使用新的 LaTeX 套件時,Tectonic 只需下載它需要的檔案並繼續處理。
Tectonic 提供官方[安裝指南](https://tectonic-typesetting.github.io/en-US/install.html),但這只會將 tectonic 放在您運行安裝命令的目錄中,`yamlresume` 需要在您的 `$PATH` 中有一個全域的 `tectonic` 命令,所以您需要通过一些 shell 技巧自己解決這個問題。
如果您是 macOS 使用者,您很幸運,因為 Homebrew 提供預構建的套件:
```sh
brew install tectonic
```
根據我的經驗,tectonic 與官方 XeTeX 仍然存在一些小的相容性問題,所以如果您不介意完整 TeX Live 發行版的長下載時間,XeTeX 仍然是這裡的推薦選擇。
### 字型
#### Linux Libertine
YAMLResume 採用 [Linux Libertine](https://www.dafont.com/linux-libertine.font) 作為拉丁字元的預設字型。強烈建議安裝它以獲得最佳的 PDF 輸出。
對於 Homebrew 使用者:
```sh
brew install font-linux-libertine
```
否則您可以從網站下載最新版本的 [Linux Libertine](https://www.dafont.com/linux-libertine.font) 并使用 macOS 的 [Font Book](https://support.apple.com/en-gb/guide/font-book/fntbk1000/mac) 安裝字型。
從網站下載最新版本的 [Linux
Libertine](https://www.dafont.com/linux-libertine.font)
並解壓縮檔案並安裝字型。
對於 Ubuntu 使用者,Linux Libertine 字型已包含在 `texlive-fonts-extra` 套件中,但是,如果您想手動安裝它,您可以這樣做:
```sh
sudo apt install fonts-linuxlibertine
```
對於基於 RHEL 的 linux,如 Fedora、AlmaLinux、Rocky Linux,您可以通過以下方式安裝 Linux Libertine 字型:
```sh
sudo dnf install linux-libertine-fonts
```
#### Google Noto
如果您需要 CJK 履歷,您還需要安裝 [Google Noto 字型](https://fonts.google.com/noto/) 以獲得[最佳的 unicode 覆蓋](https://github.com/ppresume/community/issues/63)。
對於 Homebrew 使用者:
```sh
brew install font-noto-sans-cjk font-noto-serif-cjk
```
下載 Noto
字型並按照[官方指南](https://fonts.google.com/noto/use#use-noto-fonts)在
Windows 上安裝。
對於 Ubuntu 使用者:
```sh
sudo apt install fonts-noto-cjk fonts-noto-cjk-extra
```
對於基於 RHEL 的 linux,如 Fedora、AlmaLinux、Rocky Linux,您可以通過以下方式安裝 Noto 字型:
```sh
sudo dnf install google-noto-sans-cjk-fonts google-noto-serif-cjk-fonts
```
## 故障排除
如果您在安裝 `yamlresume` 或其依賴項時遇到問題,您可以[提出問題](https://github.com/yamlresume/yamlresume/issues/new)。
您可以通過向 `yamlresume` 或其子命令傳遞 `--verbose` 標誌來啟用詳細日誌記錄。
### 感到疲憊?
如果您對安裝過程感到疲憊,您可以嘗試 [PPResume](https://ppresume.com),這是一個託管的商業履歷構建器解決方案,它開源了 YAMLResume。
# 架構
URL: (/zh-tw/docs/compiler/architecture)
像任何編譯器一樣,YAMLResume 也包含一個管道,通過多個階段將履歷資料從輸入轉換為輸出。
* **輸入階段**:接受 YAML 和 JSON 履歷文件作為輸入。
* **解析階段**:解析並驗證輸入文件中的履歷內容和佈局。
* **轉換階段**:使用管道轉換履歷內容和佈局資料。
* **程式碼生成階段**:使用 LaTeX 模板渲染履歷內容和佈局資料。
* **輸出階段**:生成最終的 PDF 文件。
以下是 YAMLResume 的架構圖:
## 資料處理管道
轉換管道負責處理來自 YAML 文件的原始履歷資料,並為其準備 LaTeX 渲染。它在兩個主要階段運行:內容轉換和佈局轉換:
* 內容轉換階段處理所有文字資料,應用本地化規則,轉義 LaTeX 特殊字元,並計算派生值。
* 佈局轉換階段將使用者提供的佈局設置與預設值合併,並應用特定於區域的排版規則。
對於像這樣的長資料處理管道,程式碼比文字更有說服力,如果您對實現感興趣,可以查看 [transform.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/preprocess/transform.ts) 了解詳情。
# 編譯器
URL: (/zh-tw/docs/compiler)
## 概述
YAMLResume 是一個履歷編譯器,使使用者能夠使用 YAML 創建履歷,然後生成具有精確排版的專業 PDF 文件。
YAMLResume 採用[關注點分離](https://en.wikipedia.org/wiki/Separation_of_concerns)作為核心設計原則,這使使用者能夠專注於履歷內容,而無需過多擔心樣式/佈局,在不更改內容的情況下交換模板,並在不同輸出格式之間保持一致性。
也就是說,使用者可以而且應該只專注於履歷的內容,YAMLResume 將處理其餘的事情,如排版、佈局、本地化、PDF 生成等。
關鍵功能:
* 定義了一個[標準結構化 YAML 格式](/zh-tw/docs/compiler/types),涵蓋[內容](/zh-tw/docs/compiler/types#resumecontent)和[佈局](/zh-tw/docs/compiler/types#resumecontent)
* 使用 [zod](https://zod.dev) 或 [JSON Schema](https://json-schema.org) 驗證履歷內容
* 使用[管道](/zh-tw/docs/compiler/architecture#data-processing-pipeline)轉換履歷內容資料
* 使用 [LaTeX 模板](/zh-tw/docs/layouts/latex/templates)渲染內容
* 通過 [XeTeX](/zh-tw/docs/installation#xetex) 或 [Tectonic](/zh-tw/docs/installation#tectonic) 編譯引擎生成 PDF
* 支援[多種語言](/zh-tw/docs/locale)和本地化
* 提供 [CLI](/zh-tw/docs/cli) 命令進行專案管理和構建自動化
查看以下即時演示,了解為什麼我稱 YAMLResume 為**履歷編譯器**:
[](https://asciinema.org/a/728098)
## 了解更多
# 類型
URL: (/zh-tw/docs/compiler/types)
本文檔概述了定義 YAMLResume 履歷結構的 TypeScript 類型。作為 TypeScript 專案,YAMLResume 採用靜態類型來確保資料一致性。此文件提供了用於表示履歷資訊的核心資料結構概述,包括個人詳細資訊、教育、經驗、技能等。
您可以查看
[types/index.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/models/types/index.ts)
了解真實來源的詳細資訊。
理解這些類型對於想要自定義或擴展 YAMLResume 功能的貢獻者和開發者至關重要。
本文檔為尋求創建有效 YAMLResume 的使用者提供權威參考,闡明可選和必填欄位之間的區別。為了確保在 YAMLResume 中成功編譯,最小履歷必須包含以下基本欄位:
* `content.basics.name`
* `education[number].area`
* `education[number].degree`
* `education[number].institution`
* `education[number].startDate`
因此,理論上最小可行履歷如下所示:
```yml lineNumbers
content:
basics:
name: Xiao Hanyu
education:
- area: Computer Science and Technology
degree: Bachelor
institution: Zhejiang University
startDate: Sep, 2007
```
## Resume
定義整體履歷結構,包括內容和佈局。
| 屬性 | 類型 | 必需 | 描述 |
| ---------- | --------------------- | -- | ------------ |
| `content` | [`Content`](#content) | ✅ | 定義整個履歷內容的結構。 |
| `layouts?` | [`Layouts`](#layouts) | ⬜ | 定義整體佈局配置。 |
| `locale?` | [`Locale`](#locale) | ⬜ | 定義整體區域配置。 |
以下是履歷結構的高級圖表:
### Content
定義整個履歷內容的結構。
| 屬性 | 類型 | 必需 | 描述 |
| --------------- | --------------------------------------- | -- | --------------- |
| `basics` | [`BasicsItem`](#basicsitem) | ✅ | 表示核心個人和聯繫資訊。 |
| `education` | [`EducationItem[]`](#educationitem) | ✅ | 包含教育經歷集合。 |
| `awards?` | [`AwardItem[]`](#awarditem) | ⬜ | 包含獎項和認可集合。 |
| `certificates?` | [`CertificateItem[]`](#certificateitem) | ⬜ | 包含認證和證書集合。 |
| `interests?` | [`InterestItem[]`](#interestitem) | ⬜ | 包含興趣、愛好或個人活動集合。 |
| `languages?` | [`LanguageItem[]`](#languageitem) | ⬜ | 包含語言能力集合。 |
| `location?` | [`LocationItem`](#locationitem) | ⬜ | 包含位置資訊。 |
| `projects?` | [`ProjectItem[]`](#projectitem) | ⬜ | 包含專案集合。 |
| `profiles?` | [`ProfileItem[]`](#profileitem) | ⬜ | 包含線上個人資料集合。 |
| `publications?` | [`PublicationItem[]`](#publicationitem) | ⬜ | 包含出版物集合。 |
| `references?` | [`ReferenceItem[]`](#referenceitem) | ⬜ | 包含推薦人集合。 |
| `skills?` | [`SkillItem[]`](#skillitem) | ⬜ | 包含技能集合。 |
| `volunteer?` | [`VolunteerItem[]`](#volunteeritem) | ⬜ | 包含志願者經歷集合。 |
| `work?` | [`WorkItem[]`](#workitem) | ⬜ | 包含工作經歷和就業歷史集合。 |
#### AwardItem
表示獲得的單個獎項、榮譽或認可。
| 屬性 | 類型 | 必需 | 描述 |
| ---------- | -------- | -- | --------------------------- |
| `awarder` | `string` | ✅ | 頒發獎項的組織或實體。 |
| `title` | `string` | ✅ | 獎項的名稱或標題。 |
| `date?` | `string` | ⬜ | 獲獎日期(例如:"2020"、"Oct 2020")。 |
| `summary?` | `string` | ⬜ | 關於獎項的簡短描述或詳細資訊。 |
#### BasicsItem
表示核心個人和聯繫資訊。
| 屬性 | 類型 | 必需 | 描述 |
| ----------- | -------- | -- | ----------------------- |
| `name` | `string` | ✅ | 全名。 |
| `email?` | `string` | ⬜ | 電子郵件地址。 |
| `headline?` | `string` | ⬜ | 簡短的專業標題或職位(例如:"軟體工程師")。 |
| `phone?` | `string` | ⬜ | 電話號碼。 |
| `summary?` | `string` | ⬜ | 專業摘要或目標聲明。 |
| `url?` | `string` | ⬜ | 個人網站或作品集 URL。 |
#### CertificateItem
表示單個認證、證書或專業資格。
| 屬性 | 類型 | 必需 | 描述 |
| -------- | -------- | -- | ------------------------------ |
| `issuer` | `string` | ✅ | 頒發證書的組織。 |
| `name` | `string` | ✅ | 證書名稱。 |
| `date?` | `string` | ⬜ | 獲得證書的日期(例如:"2021"、"Nov 2021")。 |
| `url?` | `string` | ⬜ | 與證書相關的 URL(例如:驗證連結)。 |
#### EducationItem
表示單個教育經歷或學位課程。
| 屬性 | 類型 | 必需 | 描述 |
| ------------- | ------------------- | -- | -------------------------------------- |
| `area` | `string` | ✅ | 學習領域(例如:"電腦科學")。 |
| `degree` | [`Degree`](#degree) | ✅ | 獲得的學位類型。 |
| `institution` | `string` | ✅ | 機構名稱。 |
| `startDate` | `string` | ✅ | 學習開始日期(例如:"2016"、"Sep 2016")。 |
| `courses?` | `string[]` | ⬜ | 所修課程列表。 |
| `endDate?` | `string` | ⬜ | 學習結束日期(例如:"2020"、"May 2020"),空值表示"現在"。 |
| `summary?` | `string` | ⬜ | 成就或詳細資訊的描述。 |
| `score?` | `string` | ⬜ | GPA 或學術成績。 |
| `url?` | `string` | ⬜ | 與機構或學位相關的 URL。 |
#### InterestItem
表示單個興趣、愛好或個人活動。
| 屬性 | 類型 | 必需 | 描述 |
| ----------- | ---------- | -- | --------------------- |
| `name` | `string` | ✅ | 興趣類別名稱(例如:"閱讀"、"攝影")。 |
| `keywords?` | `string[]` | ⬜ | 與興趣相關的關鍵詞。 |
#### LanguageItem
表示單個語言能力專案。
| 屬性 | 類型 | 必需 | 描述 |
| ----------- | ----------------------- | -- | ----------------------- |
| `fluency` | [`Fluency`](#fluency) | ✅ | 語言熟練程度。 |
| `language` | [`Language`](#language) | ✅ | 語言。 |
| `keywords?` | `string[]` | ⬜ | 與語言技能相關的特定關鍵詞(例如:"翻譯")。 |
#### LocationItem
表示位置和地址資訊。
| 屬性 | 類型 | 必需 | 描述 |
| ------------- | --------------------- | -- | -------- |
| `city` | `string` | ✅ | 城市名稱。 |
| `address?` | `string` | ⬜ | 街道地址。 |
| `country?` | [`Country`](#country) | ⬜ | 國家代碼或名稱。 |
| `postalCode?` | `string` | ⬜ | 郵政編碼。 |
| `region?` | `string` | ⬜ | 州、省或地區。 |
#### ProfileItem
表示單個線上個人資料或社交媒體存在。
| 屬性 | 類型 | 必需 | 描述 |
| ---------- | --------------------- | -- | ---------- |
| `network` | [`Network`](#network) | ✅ | 網路或平台名稱。 |
| `username` | `string` | ✅ | 平台上的使用者名稱。 |
| `url?` | `string` | ⬜ | 個人資料的 URL。 |
#### ProjectItem
表示單個專案、作品集作品或技術工作。
| 屬性 | 類型 | 必需 | 描述 |
| -------------- | ---------- | -- | ----------------------------- |
| `name` | `string` | ✅ | 專案名稱。 |
| `startDate` | `string` | ✅ | 專案開始日期(例如:"2021"、"Jan 2021")。 |
| `summary` | `string` | ✅ | 專案的詳細成就。 |
| `description?` | `string` | ⬜ | 專案描述。 |
| `endDate?` | `string` | ⬜ | 專案結束日期(例如:"2022"、"Jul 2022")。 |
| `keywords?` | `string[]` | ⬜ | 專案中使用的關鍵詞或技術。 |
| `url?` | `string` | ⬜ | 與專案相關的 URL(例如:倉庫、即時演示)。 |
#### PublicationItem
表示單個出版物、研究工作或學術論文。
| 屬性 | 類型 | 必需 | 描述 |
| -------------- | -------- | -- | --------------------------- |
| `name` | `string` | ✅ | 出版物的名稱或標題。 |
| `publisher` | `string` | ✅ | 作品的出版商。 |
| `releaseDate?` | `string` | ⬜ | 發布日期(例如:"2023"、"Mar 2023")。 |
| `summary?` | `string` | ⬜ | 出版物的摘要或摘要。 |
| `url?` | `string` | ⬜ | 與出版物相關的 URL(例如:DOI、連結)。 |
#### ReferenceItem
表示單個專業推薦人或推薦。
| 屬性 | 類型 | 必需 | 描述 |
| --------------- | -------- | -- | ------------------ |
| `name` | `string` | ✅ | 推薦人姓名。 |
| `summary` | `string` | ✅ | 關於推薦人的簡短說明。 |
| `email?` | `string` | ⬜ | 推薦人的電子郵件地址。 |
| `phone?` | `string` | ⬜ | 推薦人的電話號碼。 |
| `relationship?` | `string` | ⬜ | 與推薦人的關係(例如:"前經理")。 |
#### SkillItem
表示單個技能、能力或技術能力。
| 屬性 | 類型 | 必需 | 描述 |
| ----------- | ----------------- | -- | --------------- |
| `level` | [`Level`](#level) | ✅ | 技能熟練程度。 |
| `name` | `string` | ✅ | 技能名稱。 |
| `keywords?` | `string[]` | ⬜ | 與技能相關的特定關鍵詞或技術。 |
#### VolunteerItem
表示單個志願者經歷或社區服務。
| 屬性 | 類型 | 必需 | 描述 |
| -------------- | -------- | -- | -------------------------------- |
| `organization` | `string` | ✅ | 組織名稱。 |
| `position` | `string` | ✅ | 擔任的角色或職位。 |
| `startDate` | `string` | ✅ | 志願者工作開始日期(例如:"2019"、"Jun 2019")。 |
| `summary` | `string` | ✅ | 職責或成就摘要。 |
| `endDate?` | `string` | ⬜ | 志願者工作結束日期(例如:"2020"、"Dec 2020")。 |
| `url?` | `string` | ⬜ | 與組織或工作相關的 URL。 |
#### WorkItem
表示單個工作經歷或就業職位。
| 屬性 | 類型 | 必需 | 描述 |
| ----------- | ---------- | -- | ----------------------------- |
| `name` | `string` | ✅ | 公司或雇主名稱。 |
| `position` | `string` | ✅ | 職位或擔任的職位。 |
| `startDate` | `string` | ✅ | 就業開始日期(例如:"2021"、"Apr 2021")。 |
| `summary` | `string` | ✅ | 職責和成就摘要。 |
| `endDate?` | `string` | ⬜ | 就業結束日期(例如:"2023"、"Aug 2023")。 |
| `keywords?` | `string[]` | ⬜ | 與角色或使用的技術相關的關鍵詞。 |
| `url?` | `string` | ⬜ | 與公司或工作相關的 URL。 |
### Locale
定義國際化和本地化的區域設置。
| 屬性 | 類型 | 必需 | 描述 |
| ----------- | ----------------------------------- | -- | --------------- |
| `language?` | [`LocaleLanguage`](#localelanguage) | ⬜ | 履歷內容和模板術語的選定語言。 |
### Layouts
支援多種輸出格式的佈局項陣列。
| 屬性 | 類型 | 必需 | 描述 |
| ----------- | -------------------------------------------------------------------- | -- | --------- |
| `layouts[]` | [`LatexLayout`](#latexlayout) \| [`MarkdownLayout`](#markdownlayout) | ⬜ | 多個輸出佈局配置。 |
#### 通用佈局類型
##### Margins
定義文件佈局的頁邊距設置。
| 屬性 | 類型 | 必需 | 描述 |
| --------- | -------- | -- | ----------------- |
| `top?` | `string` | ⬜ | 上邊距值(例如:"2.5cm")。 |
| `bottom?` | `string` | ⬜ | 下邊距值(例如:"2.5cm")。 |
| `left?` | `string` | ⬜ | 左邊距值(例如:"1.5cm")。 |
| `right?` | `string` | ⬜ | 右邊距值(例如:"1.5cm")。 |
##### Sections
定義分節別名設置以自定義分節名稱。
| 屬性 | 類型 | 必需 | 描述 |
| ---------- | --------------------------- | -- | -------------------- |
| `aliases?` | `Record` | ⬜ | 用於分節名稱的自定義別名,覆蓋預設翻譯。 |
| `order?` | `OrderableSectionID[]` | ⬜ | 最終輸出中分節的自定義順序。 |
#### HtmlLayout
HTML 佈局配置。
| 屬性 | 類型 | 必需 | 描述 |
| ------------- | ----------------------------------- | -- | ------------ |
| `engine` | `'html'` | ✅ | 生成履歷的引擎。 |
| `advanced?` | [`HtmlAdvanced`](#htmladvanced) | ⬜ | 定義進階佈局配置選項。 |
| `sections?` | [`Sections`](#sections) | ⬜ | 定義分節自定義設置。 |
| `template?` | [`HtmlTemplate`](#htmltemplate) | ⬜ | 定義選定的模板。 |
| `typography?` | [`HtmlTypography`](#htmltypography) | ⬜ | 定義文件格式的排版設置。 |
##### HtmlAdvanced
定義 HTML 的進階配置選項。
| 屬性 | 類型 | 必需 | 描述 |
| -------------- | --------- | -- | ------------------ |
| `showIcons?` | `boolean` | ⬜ | 是否顯示連結和社交主页的圖示。 |
| `title?` | `string` | ⬜ | HTML 文件的自定義標題。 |
| `footer?` | `string` | ⬜ | HTML 文件的自定義頁尾。 |
| `description?` | `string` | ⬜ | HTML 文件的 Meta 描述。 |
| `keywords?` | `string` | ⬜ | HTML 文件的 Meta 關鍵字。 |
##### HtmlTypography
定義 HTML 文件格式的排版設置。
| 屬性 | 類型 | 必需 | 描述 |
| ------------- | ------------------------------- | -- | ---------------- |
| `fontFamily?` | `string` | ⬜ | 要使用的逗號分隔的字體家族列表。 |
| `fontSize?` | [`HtmlFontSize`](#htmlfontsize) | ⬜ | 文件的基礎字體大小。 |
#### LatexLayout
LaTeX 佈局配置。
| 屬性 | 類型 | 必需 | 描述 |
| ------------- | ------------------------------------- | -- | ------------- |
| `advanced?` | [`LatexAdvanced`](#latexadvanced) | ⬜ | 定義高級配置選項。 |
| `engine` | `'latex'` | ✅ | 生成履歷的引擎。 |
| `page?` | [`LatexPage`](#latexpage) | ⬜ | 定義文件演示的頁面級設置。 |
| `sections?` | [`Sections`](#sections) | ⬜ | 定義分節自定義設置。 |
| `template?` | [`LatexTemplate`](#latextemplate) | ⬜ | 定義選定的模板。 |
| `typography?` | [`LatexTypography`](#latextypography) | ⬜ | 定義文件格式的排版設置。 |
##### LatexAdvanced
定義 LaTeX 的高級配置選項。
| 屬性 | 類型 | 必需 | 描述 |
| ------------ | ------------------------------------ | -- | ------------------- |
| `fontspec?` | `{ numbers?: LatexFontspecNumbers }` | ⬜ | LaTeX fontspec 包配置。 |
| `showIcons?` | `boolean` | ⬜ | 是否顯示連結和社交主頁的圖示。 |
##### LatexPage
定義 LaTeX 的文件演示頁面級設置。
| 屬性 | 類型 | 必需 | 描述 |
| ------------------ | ------------------------- | -- | -------- |
| `margins?` | [`Margins`](#margins) | ⬜ | 定義頁邊距設置。 |
| `paperSize?` | [`PaperSize`](#papersize) | ⬜ | 定義紙張大小。 |
| `showPageNumbers?` | `boolean` | ⬜ | 是否顯示頁碼。 |
##### LatexTypography
定義 LaTeX 的文件格式排版設置。
| 屬性 | 類型 | 必需 | 描述 |
| ------------- | --------------------------------- | -- | ---------------- |
| `fontSize?` | [`LatexFontSize`](#latexfontsize) | ⬜ | 文件的基礎字體大小。 |
| `fontFamily?` | `string` | ⬜ | 要使用的逗號分隔的字體家族列表。 |
| `links?` | `{ underline?: boolean }` | ⬜ | 連結樣式設置。 |
#### MarkdownLayout
Markdown 佈局配置。
| 屬性 | 類型 | 必需 | 描述 |
| ----------- | ----------------------- | -- | ---------- |
| `engine` | `'markdown'` | ✅ | 生成履歷的引擎。 |
| `sections?` | [`Sections`](#sections) | ⬜ | 定義分節自定義設置。 |
## 枚舉類型
### 內容 Enum
#### Country
世界上所有可能國家和地區的聯合類型。
#### Degree
所有可能學位的聯合類型。
* `Associate`
* `Bachelor`
* `Diploma`
* `Doctor`
* `High School`
* `Master`
* `Middle School`
#### Fluency
所有可能語言熟練程度的聯合類型。
* `Elementary Proficiency`
* `Full Professional Proficiency`
* `Limited Working Proficiency`
* `Minimum Professional Proficiency`
* `Native or Bilingual Proficiency`
#### Language
所有支援語言的聯合類型。
#### Level
所有可能技能熟練程度的聯合類型。
* `Advanced`
* `Beginner`
* `Expert`
* `Intermediate`
* `Master`
* `Novice`
#### Network
所有可能社交網路選項的聯合類型。
### 佈局 Enum
#### HtmlFontSize
所有可能 HTML 字體大小選項的聯合類型。
HTML 引擎支援 14px 到 20px 的字體大小:
* `14px`、`15px`、`16px` (預設)、`17px`、`18px`、`19px`、`20px`
#### HtmlTemplate
所有可能 HTML 模板選項的聯合類型。
另請參閱:[模板](/zh-tw/docs/layouts/html/templates)
* `calm`
#### LatexFontSize
所有可能字體大小選項的聯合類型。
目前只支援 3 個選項:
* `10pt` - 10pt 字體大小(預設)
* `11pt` - 11pt 字體大小
* `12pt` - 12pt 字體大小
#### LatexFontspecNumbers
所有可能 latex fontspec 數字選項的聯合類型。
* `Auto` - 允許根據選定的 `LocaleLanguage` 自動確定樣式(預設)
* `Lining` - 標準襯線數字(CJK 語言的預設值)
* `OldStyle` - 不同高度的舊式數字(拉丁語言的預設值)
#### LatexTemplate
所有可能模板選項的聯合類型。
另請參閱:[模板](/zh-tw/docs/layouts/latex/templates)
* `moderncv-banking`
* `moderncv-casual`
* `moderncv-classic`
#### PaperSize
所有可能的 LaTeX 紙張大小選項的聯合類型。
* `a4` (預設)
* `letter`
### 語言 Enum
#### LocaleLanguage
所有可能區域語言的聯合類型。
另請參閱:[多語言](/zh-tw/docs/locale)
* `en`
* `es`
* `zh-hans`
* `zh-hant-hk`
* `zh-hant-tw`
# 內容
URL: (/zh-tw/docs/content)
本章深入探討您履歷的核心:內容。
內容是您履歷的核心。它是讓您的履歷從眾多履歷中脫穎而出的關鍵,[佈局](/zh-tw/docs/layouts)和設計只是錦上添花。
我們將介紹 YAMLResume 中內容創建的兩個關鍵方面:
* **富文字**:如何使用 Markdown 為您的描述添加格式,如粗體、斜體、連結和列表。
* **多語言支援**:如何創建不同語言的履歷,考慮語言和文化差異。
探索以下指南,掌握您履歷的內容。
# 富文字
URL: (/zh-tw/docs/content/rich-text)
在 YAMLResume 中,您不会被純文字限制。不同章节(如 `work`、`education`、`projects` 等)的 `summary` 欄位支援有限的 [Markdown](https://en.wikipedia.org/wiki/Markdown) 語法,以允許富文字格式。這使您能夠創建更具表現力和可讀性的履歷內容。
## 支援的語法
以下是您可以使用的 Markdown 功能的快速概述:
### 粗體和斜體
您可以使用粗體或斜體樣式來強調文字。
* **粗體:** `**your bold text**`
* **斜體:** `*your italic text*`
* **兩者:** `***your bold and italic text***`
### 連結
您可以在文字中嵌入超連結。
* **語法:** `[link text](https://example.com)`
### 列表
支援有序和無序列表,包括嵌套。
YAML 中的 `|`(管道)字元用於創建"字面塊標量",這是一種編寫[多行字串](https://stackoverflow.com/a/21699210/2310396)同時保留換行符的方法。這對於像 `summary` 這樣的欄位特別有用,您可能想要包含列表或段落。在 `|` 下縮排的所有內容都將被視為單個字串,並保持換行符。
#### 無序列表
每個列表項使用連字元(`-`)或星號(`*`)。
```yml lineNumbers
summary: |
- First item
- Second item
- Third item
```
#### 有序列表
使用數字後跟句點來創建有序列表。
```yml lineNumbers
summary: |
1. First item
2. Second item
3. Third item
```
#### 嵌套列表
您可以縮排列表來創建嵌套結構。
```yml lineNumbers
summary: |
- Team player with a detail-oriented mindset.
- Experienced in databases (SQL, NoSQL).
- Proficient in PostgreSQL and MongoDB.
- Familiar with Redis for caching.
- Strong foundation in data structures and algorithms.
```
## 完整示例
以下是一個 `work` 條目的 `summary` 欄位,它結合了多個支援的語法功能:
```yml lineNumbers
---
content:
basics:
# ...
summary: |
This is a sample YAML resume that support limited set of markdown rich text syntax (bold, italics, links, lists):
- Computer Science major with **strong foundation** in data structures, *algorithms*, and software development
1. Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
2. Experiened in databases (SQL, NoSQL), familiar with server-side technologies ([Node.js](https://nodejs.org/en), Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
```
以下是生成的 PDF:
## 不支援什麼?
YAMLResume 僅支援上面列出的語法。其他常見的 Markdown 功能,如標題、塊引用、圖像、水平規則和表格**不受支援,在處理過程中將被忽略**。
# CLI
URL: (/zh-tw/docs/contributing/cli)
YAMLResume 採用單倉庫(mono-repo)結構,這意味著所有包都包含在單個倉庫中。得益於 [pnpm workspace](https://pnpm.io/workspaces),這種方法簡化了包之間的依賴管理和版本控制。
在撰寫本文時,YAMLResume 倉庫有兩個包:
* [yamlresume/cli](https://github.com/yamlresume/yamlresume/tree/main/packages/cli):YAMLResume 的 CLI 介面。
* [yamlresume/core](https://github.com/yamlresume/yamlresume/tree/main/packages/core):包含 YAMLResume 的核心引擎。它處理基於官方[模式](/zh-tw/docs/compiler/schema)的解析、驗證和渲染履歷。
## yamlresume/core 構建
`yamlresume/cli` 依賴於 `yamlresume/core` 才能正常工作。因此,當您想要測試 `yamlresume/cli` 時,您需要確保 `yamlresume/core` 也已構建並可用。
您可以使用以下命令來做到這一點:
```bash
# build for dev purpose
pnpm core build
# build for production, which will minify the output and generate TypeScript
# DTS files `.d.ts`
pnpm core build:prod
# watch for file changes and build automatically
pnpm core build:watch
```
## yamlresume/cli 構建
一旦 `yamlresume/core` 構建完成,您可以通過兩種方式運行 CLI 命令:
1. 本地構建 `yamlresume/cli` 並使用 `dist/cli.js` 運行 node.js:
```bash
pnpm cli build
node packages/cli/dist/cli.js [options]
```
2. 借助 [tsx](https://tsx.is/) 直接運行 `yamlresume/cli`:
```bash
pnpm cli dev [options]
# this command will translate to
# tsx src/cli.ts
```
## 演示
`yamlresume/core` 構建:
```console
$ pnpm core build
> @yamlresume/yamlresume@0.7.1 core /Users/hanyu/work/yamlresume/yamlresume
> pnpm --filter @yamlresume/core build
> @yamlresume/core@0.7.1 build /Users/hanyu/work/yamlresume/yamlresume/packages/core
> tsup
CLI Building entry: src/index.ts
CLI Using tsconfig: tsconfig.json
CLI tsup v8.4.0
CLI Using tsup config: /Users/hanyu/work/yamlresume/yamlresume/packages/core/tsup.config.ts
CLI Target: esnext
CLI Cleaning output folder
ESM Build start
ESM dist/index.js 160.91 KB
ESM ⚡️ Build success in 111ms
```
`yamlresume/cli` 構建:
```console
$ pnpm cli build
> @yamlresume/yamlresume@0.7.1 cli /Users/hanyu/work/yamlresume/yamlresume
> pnpm --filter yamlresume build
> yamlresume@0.7.1 build /Users/hanyu/work/yamlresume/yamlresume/packages/cli
> tsup
CLI Building entry: src/cli.ts
CLI Using tsconfig: tsconfig.json
CLI tsup v8.4.0
CLI Using tsup config: /Users/hanyu/work/yamlresume/yamlresume/packages/cli/tsup.config.ts
CLI Target: esnext
CLI Cleaning output folder
ESM Build start
ESM dist/cli.js 11.36 KB
ESM ⚡️ Build success in 42ms
```
通過 `pnpm cli dev` 使用 tsx 測試 `yamlresume/cli`:
```console
$ pnpm cli dev help
> @yamlresume/yamlresume@0.7.1 cli /Users/hanyu/work/yamlresume/yamlresume
> pnpm --filter yamlresume dev help
> yamlresume@0.7.1 dev /Users/hanyu/work/yamlresume/yamlresume/packages/cli
> tsx src/cli.ts help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
使用 Node.js 測試 `yamlresume/cli`:
```console
$ node packages/cli/dist/cli.js -V
0.7.1
```
# Docker
URL: (/zh-tw/docs/contributing/docker)
除了 [CLI 包](https://www.npmjs.com/package/yamlresume),YAMLResume 還提供了 [docker 鏡像](https://hub.docker.com/r/yamlresume/yamlresume)以便於快速上手。
正如我們[文件](/zh-tw/docs/installation#docker-users)中所述,您可以使用以下命令運行 yamlresume docker 容器:
```bash
docker run --rm -v $(pwd):/app -w /app yamlresume/yamlresume
```
但是,如果您感興趣,可以自定義 Docker 鏡像以滿足您的需求。
## 構建 Docker 鏡像
YAMLResume 的 Docker 鏡像在兩個階段中定義和生成:
### Dockerfile.base
[Dockerfile.base](https://github.com/yamlresume/yamlresume/blob/main/Dockerfile.base) 包含運行 YAMLResume 的基礎環境,包括所有必要的依賴,如來自 [TeX Live](https://www.tug.org/texlive/) 的 [XeTeX](/zh-tw/docs/installation#xetex) 和 [Google Noto 字體](/zh-tw/docs/installation#google-noto)。
這是一個基礎鏡像,主要用於加速 GitHub Actions 上的構建過程——通過 `apt install texlive-xetex` 安裝 texlive 大約需要 [30 分鐘](https://github.com/yamlresume/yamlresume/actions/runs/15438395862),這對於每次 docker 構建來說太長了,所以我們決定構建並[發布這個基礎鏡像一次](https://hub.docker.com/r/yamlresume/yamlresume-base),並在每次後續構建中重複使用。
通常您不需要自己構建這個鏡像,您可以直接重複使用 dockerhub 上發布的鏡像。
### Dockerfile
[Dockerfile](https://github.com/yamlresume/yamlresume/blob/main/Dockerfile) 定義了如何構建 `yamlresume/yamlresume` 鏡像,它非常簡單直接,只是通過 `npm install -g yamlresume@latest` 從 npmjs 安裝 `yamlresume`,並根據 Docker 的[安全最佳實踐](https://www.docker.com/blog/understanding-the-docker-user-instruction/)創建必要的用戶和組。
在本地構建 yamlresume 鏡像是一個簡單的任務。您只需要運行
```bash
docker build -t yamlresume/yamlresume .
```
如果您遇到為不同架構構建 docker 鏡像的問題,您可能需要查看 [docker 多平台構建](https://docs.docker.com/build/building/multi-platform/)。
我在 [X 上寫了一些技巧](https://x.com/xiaohanyu1988/status/1931178628785778722),如果您感興趣可以看看。
# 貢獻指南
URL: (/zh-tw/docs/contributing)
首先,感謝您考慮為 YAMLResume 做出貢獻!正是像您這樣的人讓開源變得偉大。我們歡迎任何類型的貢獻,不僅僅是程式碼。您可以幫助:
* 報告錯誤
* 討論程式碼的當前狀態
* 提交修復
* 提出新功能
* 改進文件
以下是一些特定工作的快捷方式:
## 開始使用
### 先決條件
* [Node.js](https://nodejs.org/)(版本 >= 20,檢查 `.nvmrc` 或 `package.json` engines 欄位)
* [pnpm](https://pnpm.io/)(版本 >= 10,檢查 `package.json` packageManager 欄位)
* Git
### 設置
1. **Fork 倉庫:** 在 [YAMLResume GitHub 頁面](https://github.com/yamlresume/yamlresume) 點擊 "Fork" 按鈕。這會創建您自己的專案副本。
2. **克隆您的 fork:**
```bash
git clone https://github.com//yamlresume.git
cd yamlresume
```
3. **安裝依賴:**
```bash
pnpm install
```
此命令為整個工作區安裝所有必要的依賴。
## 開發工作流
### 構建包
* 一次性構建所有包:
```bash
pnpm build
```
* 構建所有包並監聽變化:
```bash
pnpm build:watch
```
* 生產構建(包括類型定義、壓縮):
```bash
pnpm build:prod
```
### 運行測試
* 運行所有包的測試:
```bash
pnpm test
```
* 在監聽模式下運行測試:
```bash
pnpm test:watch
```
* 運行測試並生成覆蓋率報告:
```bash
pnpm test:cov
```
查看[測試](./contributing/test)了解更多詳情和用例。
### 程式碼格式化和程式碼檢查
我們使用 [Biome](https://biomejs.dev/) 進行程式碼格式化和程式碼檢查。在提交之前,確保您的程式碼符合專案的樣式指南。
* 檢查並自動修復問題:
```bash
pnpm check
```
* 運行檢查但不應用修復(對 CI 有用):
```bash
pnpm check:ci
```
我們還使用 [addlicense](https://github.com/google/addlicense) 確保源文件具有正確的許可證頭。您需要安裝它才能運行以下命令。
* 添加缺失的許可證頭:
```bash
pnpm license:add
```
* 檢查缺失的許可證頭:
```bash
pnpm license:check
```
## 提交貢獻
### 報告問題
如果您發現錯誤或有功能請求,請在 GitHub 上[打開一個問題](https://github.com/yamlresume/yamlresume/issues)。提供盡可能多的詳細資訊,包括:
* 清晰描述性的標題。
* 重現錯誤的步驟(如果適用)。
* 預期行為和實際行為。
* 截圖或程式碼片段(如果有幫助)。
* 您的環境詳情(作業系統、Node 版本、pnpm 版本)。
### Pull Request(PR)
我們喜歡 Pull Request!以下是快速指南:
1. **創建分支:** 從 `main` 分支開始,創建描述性的分支名稱(例如,`fix/login-bug`、`feat/new-template-option`)。
```bash
git checkout main
git pull origin main
git checkout -b your-branch-name
```
2. **進行更改:** 編寫您的程式碼或文件改進。
3. **測試您的更改:** 確保所有測試通過:
```bash
pnpm test
```
4. **檢查程式碼品質:** 確保格式化和程式碼檢查通過:
```bash
pnpm check
```
5. **提交您的更改:** 我們使用[約定式提交](https://www.conventionalcommits.org/)進行提交訊息,由 `commitlint` 強制執行。這有助於自動化變更日誌和版本控制。典型的提交訊息看起來像 `feat: add new command` 或 `fix: resolve issue with parsing`。如果需要,您可以使用 `pnpm commitlint` 幫助格式化您的訊息,或者如果您已安裝,可以使用 [git cz](https://github.com/commitizen/cz-cli) 等工具。
```bash
git add .
git commit -m "feat: your descriptive commit message"
```
6. **推送您的分支:**
```bash
git push origin your-branch-name
```
7. **打開 Pull Request:** 轉到 GitHub 上的 YAMLResume 倉庫,點擊"New pull request"按鈕。將您的分支與 `main` 分支進行比較。
8. **描述您的 PR:** 提供您所做更改的清晰描述。連結任何相關的問題(例如,"Closes #123")。
9. **審查:** 維護者將審查您的 PR。解決任何反饋或請求的更改。
10. **合併:** 一旦獲得批准,您的 PR 將被合併。感謝您的貢獻!
## 許可證
通過為 YAMLResume 做出貢獻,您同意您的貢獻將根據其[MIT 許可證](LICENSE)進行許可。
# 新語言
URL: (/zh-tw/docs/contributing/new-language)
import { Step, Steps } from "fumadocs-ui/components/steps";
YAMLResume 設計為從底層支援[多語言](/zh-tw/docs/locale),允許用戶使用他們偏好的語言創建履歷。
在撰寫本文時,YAMLResume 支援以下語言:
* [英語](/zh-tw/docs/locale/english)
* [中文](/zh-tw/docs/locale/chinese)
* [挪威語](/zh-tw/docs/locale/norwegian)
* [西班牙語](/zh-tw/docs/locale/spanish)
如果您偏好的語言未列出,您可以按照以下步驟貢獻,為新語言添加支援。
## 註冊您的語言
要為 YAMLResume 添加新的 `locale.language` 選項,首先在 [models/resume.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/models/resume.ts) 中註冊您的語言,通過向 `LOCALE_LANGUAGE_OPTIONS` 添加新條目。
**檢查清單:**
* [ ] 將您的語言添加到 `LOCALE_LANGUAGE_OPTIONS`。
* [ ] [構建並測試新的 CLI](/zh-tw/docs/contributing/cli#yamlresumecli-build),使用 `pnpm cli dev languages list`,確保您的語言出現在列表中。
## 添加翻譯
為 YAMLResume 中使用的所有相關[選項](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/translations/options.ts)、[標點符號和術語](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/translations/template.ts)提供翻譯。這確保用戶可以使用準確標籤、選項、術語翻譯和章節名稱生成新語言的履歷。以下是添加挪威語翻譯的參考 [PR](https://github.com/yamlresume/yamlresume/pull/44)。
**檢查清單:**
* [ ] 為[國家名稱](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/models/country.ts)添加翻譯
* [ ] 為 `degrees`、`fluency`、`languages`、`sections` 和 `skills` 添加選項翻譯
* [ ] 為 `comma`、`colon` 和 `separator` 添加標點符號翻譯
* [ ] 為 `courses`、`keywords` 和 `score` 添加術語翻譯
## 更新 Babel 配置
YAMLResume 使用 LaTeX 進行 PDF 生成,為了獲得最佳排版效果,我們需要設置適當的 [babel 包配置](https://latex3.github.io/babel/)。以下是挪威語的參考[提交](https://github.com/yamlresume/yamlresume/commit/b72a4441ad2542873f449bc35a265e7208eafbe7)。
**檢查清單:**
* [ ] 更新 [preamble.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/renderer/preamble.ts) 中的 `renderBabelConfig()` 函數,為您的語言包含 babel 包。
## 使用新語言測試
[構建](/zh-tw/docs/contributing/cli#yamlresumecore-build) `yamlresume/core` 和 `yamlresume/cli` 包,然後:
* [ ] 創建新履歷 `pnpm cli dev new my-resume.yml`
* [ ] 將 `locale.language` 設置為您剛添加的新語言
* [ ] 通過 `pnpm cli dev build my-resume.yml` 生成新語言的履歷來測試您的更改
* [ ] 確保兩個 PDF 輸出都按預期工作。
## 提交您的 PR
一旦您完成了上述步驟,請提交您的 Pull Request,並清楚描述更改和您添加的語言。維護者將審查您的 PR,並可能請求更改或澄清。
感謝您幫助讓 YAMLResume 為世界各地的更多人提供便利!
# 測試
URL: (/zh-tw/docs/contributing/test)
為了擁有流暢的開發體驗,擁有可靠的測試策略非常重要。這包括單元測試、整合測試和端到端測試,以確保應用程式的所有方面都按預期運行。
## 單元測試
您可以使用以下命令運行單元測試:
```bash
# run tests for yamlresume/cli package
pnpm cli test
# run tests for yamlresume/core package
pnpm core test
# run tests for all packages
pnpm test
```
如果您正在開發新功能,可以在文件變化時運行測試:
```bash
# watch and test for changes in yamlresume/cli package
pnpm cli test:watch
# watch and test for changes in yamlresume/core package
pnpm core test:watch
# watch and test for changes in all packages
pnpm test:watch
```
如果您正在開發依賴於 `yamlresume/core` 包的 CLI 功能,不要忘記[構建](./contributing/cli#yamlresumecore-build) `yamlresume/core` 包。
## 測試覆蓋率
YAMLResume 保持 **[100% 單元測試覆蓋率](https://app.codecov.io/gh/yamlresume/yamlresume)** 以追求高程式碼品質並防止回歸。您可以通過運行以下命令檢查測試覆蓋率報告:
```bash
# check test coverage for yamlresume/cli package
pnpm cli test:cov
# check test coverage for yamlresume/core package
pnpm core test:cov
# check test coverage for all packages
pnpm test:cov
```
# create-yamlresume
URL: (/zh-tw/docs/ecosystem/create-yamlresume)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
[create-yamlresume](https://yamlresume.dev/docs/ecosystem/create-yamlresume) 幫助您使用一行命令創建新的 [YAMLResume](https://yamlresume.dev) 專案。
## 使用方法
<>
```console
npx create-yamlresume my-resume
# or
npm init yamlresume my-resume
```
```console
pnpm create yamlresume my-resume
```
```console
yarn create yamlresume my-resume
```
```console
bun create yamlresume my-resume
```
>
## 功能
此工具將:
1. 使用您的專案名稱創建新目錄
2. 創建基本的 Node.js 專案結構,包括:
* 帶有 YAMLResume 依賴和有用腳本的 `package.json`
* 帶有適當排除規則的 `.gitignore` 文件
* 帶有基本使用說明的 `README.md`
3. 安裝所有必要的依賴
4. 使用 `yamlresume new` 創建新的示例履歷文件
5. 顯示可用命令和後續步驟
## 示例會話
```
$ pnpm create yamlresume
✔ What is your project name? … yamlresume
ℹ Using pnpm.
✔ What should your resume file be called? (without .yml extension) … resume
◐ Creating YAMLResume project in /private/tmp/yamlresume...
◐ Installing dependencies with pnpm...
Packages: +59
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 59, reused 59, downloaded 0, added 59, done
dependencies:
+ yamlresume 0.7.5
Done in 4s using pnpm v10.6.3
✔ Dependencies installed successfully!
◐ Creating resume file resume.yml...
✔ Created resume.yml successfully.
◐ Initializing git repository...
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m
Initialized empty Git repository in /tmp/yamlresume/.git/
✔ Git repository initialized!
[master (root-commit) 53c6210] init a new YAMLResume project
4 files changed, 421 insertions(+)
create mode 100644 .gitignore
create mode 100644 README.md
create mode 100644 package.json
create mode 100644 resume.yml
✔ Initial commit created!
ℹ
✨ Project created successfully!
ℹ
Next steps:
ℹ 1. cd yamlresume
ℹ 2. Edit your resume: resume.yml
ℹ 3. Build your resume: pnpm run build
ℹ 4. Watch for changes: pnpm run dev
ℹ 5. Show all commands: pnpm run yamlresume help
ℹ
Learn more:
ℹ 🏠 Homepage: https://yamlresume.dev
ℹ 📖 Documentation: https://yamlresume.dev/docs/
ℹ 🎨 Templates: https://yamlresume.dev/docs/layouts/latex/templates
ℹ 📝 Schema: https://yamlresume.dev/docs/compiler/schema
```
## 專案結構
生成的專案如下所示:
```
my-resume/
├── package.json # 帶有 yamlresume 依賴的專案配置
├── .gitignore # Git 忽略規則
├── README.md # 專案文件
└── resume.yml # 您的 YAML 履歷(您選擇的文件名)
```
## 可用命令
在生成的專案中,您可以運行:
* `npm run build` - 將您的履歷構建為 PDF
* `npm run dev` - 監聽變化並自動重新構建
* `npm run validate` - 根據模式驗證您的履歷
* `npm run yamlresume` - 運行 YAMLResume CLI
# 生態系統
URL: (/zh-tw/docs/ecosystem)
YAMLResume 提供了一套工具來幫助您更高效地創建、轉換和管理您的履歷。以下是一些可用的關鍵實用程式:
## create-yamlresume
[create-yamlresume](./ecosystem/create-yamlresume) 讓您可以通過一行命令輕鬆啟動新的 YAMLResume 專案。它將搭建您的專案目錄,安裝必要的依賴,並生成示例履歷文件,這樣您就可以立即開始。
* 使用 `npx create-yamlresume my-resume` 或類似的 `npm`、`yarn` 或 `pnpm` 命令搭建新專案。
* 包括即用型專案結構、用於構建和驗證履歷的腳本,以及示例 YAML 履歷文件。
## json2yamlresume
[json2yamlresume](./ecosystem/json2yamlresume) 是一個用於將 [JSON Resume](https://jsonresume.org/) 文件轉換為 YAMLResume 格式的 CLI 工具。
* 將 JSON Resume 文件轉換為 YAMLResume,根據需要轉換欄位和結構。
* 確保您的數據根據 YAMLResume 模式進行驗證。
這些工具幫助您從其他格式遷移,自動化專案設置,並簡化您與 YAMLResume 的工作流程。
## 了解更多
# json2yamlresume
URL: (/zh-tw/docs/ecosystem/json2yamlresume)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
[json2yamlresume](https://yamlresume.dev/docs/ecosystem/json2yamlresume) 是一個用於將 [JSON Resume](https://jsonresume.org/) 轉換為 [YAMLResume](https://yamlresume.dev/) 格式的[命令行工具](https://npmjs.com/package/json2yamlresume)。
## 功能
* **格式轉換**:無縫將 JSON Resume 轉換為 YAMLResume 格式
* **[結構轉換](#conversion-rules)**
* **CLI 介面**:簡單的命令行介面,便於轉換
* **驗證**:基於 YAMLResume 強大的[模式驗證](/zh-tw/docs/compiler/schema)構建
## 安裝
<>
```console
npm install -g json2yamlresume
```
```console
pnpm add -g json2yamlresume
```
```console
yarn global add json2yamlresume
```
```console
bun add -g json2yamlresume
```
>
## 使用方法
### 將 JSON Resume 轉換為 YAMLResume
```bash
$ json2yamlresume input.json output.yaml
# 或者調用命令時不指定可選的輸出路徑,在這種情況下
# 輸出將寫入與輸入文件相同的目錄,使用相同的名稱但擴展名為 .yml
$ json2yamlresume input.json
```
### 顯示幫助
```bash
$ json2yamlresume --help
Usage: json2yamlresume [options] [output-file]
Convert JSON Resume to YAMLResume format
Arguments:
input-file Input JSON Resume file path
output-file Output YAMLResume file path
Options:
-V, --version output the version number
-h, --help display help for command
```
### 顯示版本
```bash
$ json2yamlresume --version
0.7.4
```
## 示例
以下是 JSON Resume 格式的示例履歷:
```json lineNumbers title="json-resume.json"
{
"basics": {
"name": "John Doe",
"label": "Software Engineer",
"email": "john@example.com",
"location": {
"city": "San Francisco",
"countryCode": "US"
},
"profiles": [
{
"network": "GitHub",
"username": "johndoe",
"url": "https://github.com/johndoe"
}
]
},
"work": [
{
"name": "Tech Corp",
"position": "Senior Developer",
"startDate": "2020-01",
"summary": "Led development of web applications.",
"highlights": [
"Increased performance by 40%",
"Mentored 5 junior developers"
]
}
],
"education": [
{
"institution": "University of California",
"area": "Computer Science",
"studyType": "Bachelor of Science",
"startDate": "2018"
}
]
}
```
您可以調用以下命令將 JSON Resume 轉換為 YAMLResume:
```bash
$ json2yamlresume json-resume.json yamlresume.yml
```
以下是 YAMLResume 格式的輸出:
```yaml lineNumbers title="yamlresume.yml"
---
content:
basics:
name: John Doe
headline: Software Engineer
email: john@example.com
education:
- institution: University of California
area: Computer Science
degree: Bachelor of Science
startDate: "2018"
location:
city: San Francisco
country: US
profiles:
- network: GitHub
username: johndoe
url: https://github.com/johndoe
work:
- name: Tech Corp
position: Senior Developer
startDate: 2020-01
summary: |-
- Increased performance by 40%
- Mentored 5 junior developers
```
## 轉換規則
### 1. location/profiles 移動到頂級
* `basics.location` → 頂級 `location`
* `basics.profiles` → 頂級 `profiles`
* `basics.label` → `basics.headline`
### 2. education 欄位映射
* `education[].studyType` → `education[].degree`
### 3. highlights 合併到 summary 欄位
轉換器將 `highlights` 數組合併到這些章節的 `summary` 欄位中作為 markdown 無序列表:
* `work[]`
* `volunteer[]`
* `projects[]`
示例:
```json
{
"summary": "Led development team.",
"highlights": ["Increased performance", "Mentored developers"]
}
```
變為:
```yaml
summary: |-
Led development team.
- Increased performance
- Mentored developers
```
請記住,YAMLResume 的 summary 欄位支援[富文本](/zh-tw/docs/content/rich-text)!
### 4. references 欄位映射
* `references[].reference` → `references[].summary`
## 支援的 JSON Resume 章節
轉換器支援所有標準 JSON Resume 章節:
* ✅ `basics`
* ✅ `work`
* ✅ `volunteer`
* ✅ `education`
* ✅ `awards`
* ✅ `certificates`
* ✅ `publications`
* ✅ `skills`
* ✅ `languages`
* ✅ `interests`
* ✅ `references`
* ✅ `projects`
# 字體
URL: (/zh-tw/docs/guide/font)
如果文字是資訊傳遞的載體,那麼文字本身的視覺特徵——即字體——會影響資訊的品質。
原則上,履歷的排版應該簡潔明了。對於字體,首先您永遠不應該使用過於花哨的字體,其次字體的類型不應該太多——最好限制在三種以內。這裡我們將討論字體的一些基礎知識和排版要點。
## 字體分類
### 襯線 vs. 無襯線
就襯線而言,拉丁字母的字體分為兩個家族:襯線字體和無襯線字體[^1]。
襯線是附加在字母筆畫末端的小線條。帶有襯線的字體稱為襯線字體。相比之下,沒有襯線的字體稱為無襯線字體,其中 *sans* 是法語中「沒有」的意思。
### 比例 vs. 等寬
根據字母寬度是否相同,字體可以分為等寬字體和比例字體。顧名思義,等寬字體中的所有字母佔據相同的水平空間,而比例字體中則不然。
在傳統印刷中,比例字體可以提高單詞的可讀性。由於技術限制,早期的計算機和打字機無法調整字母的寬度。所以所有字符都被製作成相同的寬度,因此等寬字體應運而生。隨著計算機技術的改進,GUI(圖形用戶界面)已成為主流並不斷發展,技術限制不再存在,所以比例字體變得非常流行,因為它們對人類來說更自然易讀。
### CJK 字體
[CJK](https://en.wikipedia.org/wiki/CJK_characters) 的字體樣式有點複雜。一般來說,CJK 語言中也有襯線字體和無襯線字體。
#### 宋體
**[宋體](https://en.wikipedia.org/wiki/Ming_typefaces)**:在簡體中文中稱為宋體/明體,在繁體中文中稱為宋體/明體,在日語中稱為みんちょうたい/明朝體,在韓語中稱為명조체/明朝體,是 CJK 的襯線字體。
宋體通常用於正文、標題和註釋。當用於標題時,字符的粗細通常會增加以區別於正文。目前它是印刷中最常用的字體。
#### 黑體
**[黑體](https://en.wikipedia.org/wiki/Sans-serif)**,在簡體中文中稱為黑體,在繁體中文中稱為黑體,是 CJK 的無襯線字體。
黑體常用於標題、引言、標誌等。黑體也用於正文中強調特定詞語。由於中文字符筆畫眾多,黑體在小字符中清晰度較差,傳統印刷很少使用黑體作為正文;然而,隨著字符創建技術的完善,加上互聯網和數字出版的發展,許多黑體字體被開發用於正文,少數書籍開始使用黑體作為正文字體。
除了宋體和黑體,*中文還有兩種廣泛使用的額外字體樣式*。
#### 楷體
**[楷體](https://en.wikipedia.org/wiki/Regular_script)**:在簡體中文中稱為楷體,在繁體中文中稱為楷體,是現代中文寫作中最常用的樣式。
楷體主要用於標題、引言、對話、摘要和與正文不同的其他段落。然而,由於與宋體接近,楷體較少用於強調。
#### 仿宋體
**[仿宋體](https://en.wikipedia.org/wiki/Fangsong)**,在簡體中文中稱為仿宋體,在繁體中文中稱為仿宋體,是一種楷書字體。它主要用於引言、摘要和與正文不同的其他段落。同時,它也是中國政府製作官方文件使用的標準字體。
## 字體設計和使用
數字出版已經發展多年,西方語言字符集很小,所以有很多不同的人根據各種需求設計的字體。
對於等寬字體,主要關注每個字母的設計,除此之外,在比例字體中,字母之間的空間也應該認真考慮。
### 字母構成
每種字體中的字母都有一致的結構,字體用戶應該了解這些基本概念:
* 基線:字母「H」或「n」站立的無形線
* 大寫高度:從基線到大寫字母如「H」或「E」頂部的距離
* x 高度:小寫字母「x」從底部到頂部的距離
* 上升部:小寫字母如「b」、「d」、「f」、「h」、「k」、「l」在「x」頂部以上的上升部分,其高度稱為上升高度,上升部對齊的頂線稱為上升線
* 下降部:小寫字母如「g」、「j」、「p」、「q」、「y」在基線以下的下降部分,其高度稱為下降高度,下降部對齊的底線稱為下降線
### 字母間距
字母間距,或跟踪,指的是字母之間的空間。字母間距調整分為字體設計師方面和字體用戶方面;它影響一行或文本塊的密度。
對於字體設計師,字母間距的調整是設計中的重要程序。在比例字體中,單個字母左側的間距不一定與右側相同。目的是確保字母與兩側任何其他字母相鄰時的可讀性。
對於字體用戶,字母間距的調整意味著在原始排版後通過軟件手動重新排列字母之間的空間,以獲得特殊對齊[^2],或更好的佈局效果[^3]。
### 字距調整
字距調整指的是在比例字體中增加或減少特定字母對之間空間的過程。這些字母對稱為字距對。字距調整更關注視覺間距而不是實際間距。
許多字體的設計師在設計時會注意字距對,並將字距調整值存儲在字體文件中。這樣,排版軟件可以根據這些值自動調整字距對的間距,從而產生更好的佈局效果。
每個字母都有獨特的形狀,所以在字體的設計和實現過程中,所有字距對中的字母必須配合產生最佳的視覺效果。事實上,這是關鍵程序和困難所在[^4]。
### 連字
連字是將兩個或多個字母連接在一起的字形。
印刷中的連字起源於手寫中的連字符。在活字印刷誕生後,許多連字被直接製作成字體。然而,在 1950 年代無襯線字體的廣泛使用和 1970 年代照相排版之後,塊字母的使用變得罕見。最早能夠使用連字進行數字排版的數字排版軟件是 [Donald Knuth](https://en.wikipedia.org/wiki/Donald_Knuth) 創建的 TeX。這一趨勢也影響了 1985 年後的桌面出版。在早期,軟件無法用連字替換字母(但 TeX 可以),大多數為計算機新製作的字體都不包含連字。此外,在個人計算機的早期,大多數計算機都是英文的,沒有實際使用連字的需要,因為英語中不是強制使用連字。隨著 [OpenType](https://en.wikipedia.org/wiki/OpenType) 等數字排版技術的發展,連字逐漸回歸實踐[^5]。
在日常商業文件中,缺乏連字不被視為拼寫錯誤,但對於廣告、圖書出版等領域的專業排版,連字基本上是必需的。
### 斜體
斜體是通過在正常字體樣式基礎上傾斜字體實現的字體樣式;它可以指斜體類型或傾斜類型[^6]。
西方字體中有兩種傾斜字體:傾斜類型和斜體類型。傾斜時字符形狀發生變化的稱為「斜體類型」,而簡單地將原始字體向右傾斜而不改變字符形狀的稱為傾斜類型。由於傾斜斜體只是通過軟件算法簡單傾斜和扭曲,筆畫鬆散,最近越來越多的設計傾向於使用新設計的專業斜體類型。
理論上,斜體包括斜體類型和傾斜類型,但應該注意,實際上並非所有斜體類型都是傾斜的。
在實踐中,斜體通常應用於一段文本以強調或區別於襯線字體的正文。
### 舊式數字
舊式數字,也稱為[文本數字](https://en.wikipedia.org/wiki/Text_figures),為拉丁文字語言設計,具有不同的高度,類似於典型文本行的風格,因此得名。
相比之下,現代數字(也稱為現代、標題或現代數字)具有與大寫字符相同的高度。
YAMLResume 默認對拉丁文字語言履歷使用舊式數字,對其他語言使用現代數字。
> 高品質的排版通常更喜歡正文中的文本數字:它們與小寫字母和小型大寫字母更好地融合,不像現代數字的運行。現代數字在所有大寫設置中需要(因此替代名稱標題數字),在表格和電子表格中可能效果更好。
>
> — [文本數字](https://en.wikipedia.org/wiki/Text_figures#Design)
### 推薦的西方字體
現在有大量的字體,所以為您的履歷推薦一個通用的西方字體方案不是一件容易的事。
* 推薦,對正文使用襯線字體
* 推薦,對標題使用無襯線字體,但也可以使用襯線字體
* 推薦,使用斜體字體樣式強調正文中的文本,也可以使用相應的粗體樣式
以下是常用襯線字體列表:
* [Garamond](https://en.wikipedia.org/wiki/Garamond)
* [Palatino](https://en.wikipedia.org/wiki/Palatino)
* [Geogria](https://en.wikipedia.org/wiki/Georgia_\(typeface\))
* [Baskerville](https://en.wikipedia.org/wiki/Baskerville)
* [Minion](https://en.wikipedia.org/wiki/Minion_\(typeface\))
* [Hoefler Text](https://en.wikipedia.org/wiki/Hoefler_Text)
* [Linux Libertine](https://en.wikipedia.org/wiki/Linux_Libertine)
常用無襯線字體列表:
* [Helvetica](https://en.wikipedia.org/wiki/Helvetica)
* [Gill Sans](https://en.wikipedia.org/wiki/Gill_Sans)
* [Optima](https://en.wikipedia.org/wiki/Optima)
***
[^1]: [Serif vs Sans: The Final Battle](http://designreviver.com/inspiration/serif-vs-sans-the-final-battle/)
[^2]: 當佈局寬度較小時,通常不適合使用兩端對齊,因為應用兩端對齊會強制大多數軟件調整字母間距,通常最終的佈局效果會很差。
[^3]: 例如,TeX 排版系統的創新在於其優秀的[兩端對齊](https://en.wikipedia.org/wiki/TeX#Hyphenation_and_justification)算法,其原理是調整字母間距使佈局更加[兩端對齊](https://en.wikipedia.org/wiki/Typographic_alignment#Justified)。
[^4]: A Beginner's [Guide](https://designschool.canva.com/blog/kerning/) to Kerning Like a Designer
[^5]: [Ligature](https://en.wikipedia.org/wiki/Ligature)
[^6]: [Italic Type](https://en.wikipedia.org/wiki/Italic_type)
# 語法
URL: (/zh-tw/docs/guide/grammar)
## 內容
簡潔對履歷來說是最重要的。基本的客觀資訊是履歷的核心:
* 個人資訊
* 重要的聯繫資訊如電話、電子郵件必須清晰
* 教育背景
* 如果您是應屆畢業生,可以添加高中教育背景
* 專業技能
* 獎項
* 工作(實習)經歷
謹慎添加主觀資訊:
* 自我評價
* 個人愛好
* 社交活動、志願者經歷等,與申請職位沒有明確關係
謹慎添加與申請職位無關的客觀資訊:
* 照片
* 生日
* 家庭地址
* 國籍
* 政治身份
* 婚姻和家庭狀況
禁止內容:
* 「我的履歷」作為標題
* 來自不同來源的履歷模板上的標誌水印
## 拼寫
履歷中的拼寫錯誤在求職中是大忌。太多基礎拼寫錯誤會影響雇主對申請人的第一印象。大多數軟件都有拼寫檢查器,所以適當使用它以避免許多主要拼寫錯誤。當然,不要過度依賴軟件的拼寫檢查,最好找一個可信的朋友進行校對。
### 專有名詞
除了常見的拼寫錯誤外,專有名詞中還有高度頻繁的拼寫錯誤,因為它們對大小寫更敏感。相同字母組合的不同大小寫可能在不同領域有完全不同的含義,所以求職者必須非常謹慎。例如,小寫「i」的 [iOS](http://www.apple.com/ios/) 代表蘋果 iPhone 上的移動操作系統,而大寫「I」的 [IOS](https://en.wikipedia.org/wiki/Cisco_IOS) 是思科路由器上的專用系統。
限於我們的背景,本指南總結了 IT 領域內一些常見的專有名詞拼寫錯誤。
| 錯誤拼寫 | 修正 |
| ------------------------------ | -------------- |
| ajax | Ajax AJAX |
| android | Android |
| android studio | Android Studio |
| APP | App |
| AppStore, app store | App Store |
| Css, css | CSS |
| eclipse | Eclipse |
| git, GIT | Git |
| Html, html | HTML |
| Http, http | HTTP |
| json, Json | JSON |
| JAVA, java | Java |
| Javascript, javascript, JS, js | JavaScript |
| linux, LINUX | Linux |
| mysql | MySQL |
| node, Node, NodeJS, nodejs | Node.js |
| OC, oc, objective-c | Objective-C |
| python | Python |
| ruby | Ruby |
| sqlite | SQLite |
| xml, Xml | XML |
| xcode, XCODE, XCode | Xcode |
| ios, IOS | iOS |
| iphone, IPHONE | iPhone |
| jquery, JQuery | jQuery |
## 語法
與普通寫作相比,履歷寫作有一些特殊的語法要求。
* 一般使用過去時,但如果您正在描述當前工作或教育經歷,使用現在時
* 一般以過去時動詞開始一個項目,省略主語
* 嘗試使用簡單易懂的短句,而不是長而複雜的從句
* 按倒序列出教育背景和工作經歷,時間格式應精確到月份
* 使用標準時間格式如「2015.05」,或可以明確解釋的格式,如「June, 2016」,而不是像「05/06」這樣的年份縮寫,這在不同國家可能有不同的解釋
以下是履歷寫作中 100 個常用過去時單詞列表:
| | | | | |
| ------------- | ------------ | ------------ | ------------ | ------------ |
| Accelerated | Accomplished | Accounted | Accumulated | Achieved |
| Administrated | Arbitrated | Articulated | Boosted | Briefed |
| Broadened | Budgeted | Campaigned | Chaired | Championed |
| Clarified | Coached | Collaborated | Coordinated | Corroborated |
| Cultivated | Customized | Decided | Decreased | Delegated |
| Demonstrated | Designated | Developed | Devised | Diagnosed |
| Documented | Doubled | Economized | Edited | Educated |
| Empowered | Enabled | Encouraged | Endorsed | Enhanced |
| Facilitated | Focused | Forecasted | Generated | Harmonized |
| Harnessed | Identified | Illustrated | Impressed | Improved |
| Increased | Justified | Launched | Led | Magnified |
| Managed | Marketed | Mastered | Navigated | Negotiated |
| Observed | Obtained | Organized | Orchestrated | Participated |
| Pinpointed | Performed | Publicized | Published | Realigned |
| Recognized | Recommended | Selected | Separated | Spearheaded |
| Stimulated | Succeeded | Surpassed | Synchronized | Synergized |
| Tabulated | Targeted | Tested | Traded | Translated |
| Triggered | Triumphed | Troubleshot | Uncovered | Underwrote |
| Unearthed | Unified | Upgraded | Urged | Utilized |
| Validated | Verbalized | Verified | Vitalized | Yielded |
# 指南
URL: (/zh-tw/docs/guide)
## 履歷寫作和排版指南
履歷給人們留下職業生涯的第一印象。
在一張 A4 紙(210 mm × 297 mm)上,履歷結束了您人生的前一階段,開始了下一階段。
> 九層之台,起於累土。
>
> — [老子](https://en.wikipedia.org/wiki/Laozi),第六十四章
一份精美的履歷基於字體、標點符號、佈局和語法等細節。
本指南系統地解釋了履歷寫作和排版的要點,特別強調排版,幫助您製作形式和精神都美麗的履歷。對於每個主題,它首先解釋它是什麼,然後解釋為什麼如此,最後解釋如何去做。
本指南力求盡可能簡潔明了,對不同解釋有四個優先級:
* **必須**,排版中的強制性要求,違反是嚴重錯誤
* **推薦**,符合一般排版標準,強烈推薦
* **不應該**,需要排版中的高級知識或功能,或在不同語言和文化中多樣化,或隨公司規定而變化,如果不了解情況使用是危險的
* **禁止**,與一般排版標準衝突,禁止應用
# 發布
URL: (/zh-tw/docs/guide/publishing)
## 文件格式
履歷的常見文件格式包括:
* PDF
* Microsoft Word (doc, docx)
* 純文本
* HTML
這裡我們最推薦 PDF:
* PDF 具有出色的跨平台輸出品質,確保近 100% 一致的打印和顯示
* PDF 可以嵌入字體,在字體選擇上有很大的自由度
* 大多數平台都有默認的 PDF 閱讀器
* Windows 8 及以上版本有內置的 PDF 閱讀器
* macOS 有 [Preview](https://en.wikipedia.org/wiki/Preview_\(Mac_OS\)),iOS 有 [iBooks](http://www.apple.com/ibooks/)
* 許多瀏覽器(如 Chrome)都有內置的 [pdf.js](http://mozilla.github.io/pdf.js/),也可以默認打開 PDF
學習 MS Word 更容易,但以 Word 格式交付履歷有很大的缺點:
* Word 文件必須安裝額外的辦公軟件才能打開
* Windows 的 Microsoft Word、[WPS Office](https://wps.com)
* macOS 的 [iWork](https://en.wikipedia.org/wiki/IWork)
* Linux 的 [WPS Office](https://wps.com)、[LibreOffice](https://www.libreoffice.org/)
* 許多在線文件編輯系統如 [Google Docs](https://docs.google.com/) 也可以打開和編輯 Word 文件
* Word 文件在不同平台的不同軟件中可能顯示差異很大
* 實際上不是每個人都在他的計算機上安裝了 [Microsoft Word](https://products.office.com/en-us/word)
* 另一個事實是,Microsoft Word 的正版許可證可能要花費數百美元
* 為了嘗試確保一致的顯示和輸出,Word 文件最好只使用主要操作系統常見的幾種字體,這導致 Word 文件在字體選擇上自由度很小
當然,不同公司的不同 HR 經理可能有不同的要求和偏好。我們建議如果您用 Word 製作履歷,最好將其導出為 PDF 作為替代方案
## 郵件禮儀
除了公司的專有招聘系統外,求職申請提交履歷的主要方法應該是電子郵件。一些基本的電子郵件禮儀如下。
* 設置正確的郵件暱稱,不要使用非正式的過於花哨的暱稱,這會給雇主留下非常不專業的印象
* 在郵件標題中使用統一格式,保持清晰簡潔以傳達最重要的資訊
* 推薦格式:`Apply-Company Position-Name-[University/Education]-[Work Experience]`
* 郵件正文應該簡潔,不建議寫很長的求職信,包含大量個人主觀評價
* 最好在文本開頭添加標題和問候
* 正文內容
* 基本個人資訊,如工作狀態(在職或不在職)、職位、教育和工作經歷等
* 申請職位
* 申請方式,是否由他人推薦
* 添加包含姓名和聯繫資訊(電話/電子郵件)的署名
* 附加以與標題相同格式命名的履歷文件
# 標點符號
URL: (/zh-tw/docs/guide/punctuations)
標點符號是履歷寫作中最不起眼但也最容易出錯的部分。您能否正確和標準化地使用標點符號反映了求職者申請工作的態度。
標點符號的正確和標準化使用可能看起來容易,但並不像看起來那麼簡單。主要原因是不同的語言環境要麼對標點符號的使用沒有明確的規範,要麼有規範但許多地方沒有明確定義,或者有幾套[樣式指南](https://en.wikipedia.org/wiki/Style_guide)但它們不兼容甚至相互衝突;其次,實際排版經常遇到多語言混合的情況,然後問題會變得更加複雜。本指南試圖總結一些標點符號使用的一般規則供您參考。
* 必須,在逗號、句號、分號、冒號、感嘆號和問號後添加一個空格
* 必須,在開括號前和閉括號後添加一個空格,與單詞相同,但閉括號後跟逗號時不添加空格
* 推薦,在數字和其單位之間添加一個空格
* 推薦,在連字符周圍不添加空格,有時需要微調字母間距
* 推薦,在表示兩個平行事物的斜杠周圍不添加空格,如「A or B」
* 推薦,使用引號(`'`、`'`、`"`、`"`),而不是[撇號](https://en.wikipedia.org/wiki/Apostrophe)
* 不應該,在[項目符號列表](https://en.wikipedia.org/wiki/Bullet_\(typography\))的項目末尾添加任何標點符號
* 禁止,在行首懸掛標點符號,這可以通過軟件的自動設置或手動調整來避免
## 連接符號
連字符 (-)、短破折號 (–) 和長破折號 (—) 是三個容易混淆並導致錯誤的標點符號。它們的使用方法如下所述。
> 對於連字符,輸入一個連字符 (-);
>
> 對於短破折號,輸入兩個連字符 (--);
>
> 對於長破折號,輸入三個連字符 (---);
>
> 對於減號,在數學模式中輸入一個連字符 ($-$)。
>
> — Donald Knuth,[The TeXBook](https://en.wikipedia.org/wiki/Computers_and_Typesetting)
### 連字符 (-)
連字符主要用於:
* 複合詞,如「upper-case letter」
* 分隔數字或字符,如電話號碼「1-888-777-666」
* 在行末斷字以保持整個佈局整潔
關於行末斷字有一些規則:
* 盡量不要在連續三行以上中斷字最後一個單詞
* 避免分割專有名詞、人名等
* 避免跨頁斷字
* 原則上根據音節分割單詞,但斷字位置因單詞而異,所以必要時最好查字典[^7]
### 短破折號 (–)
短破折號的長度等於大寫「N」的寬度,是長破折號長度的一半。它主要用於:
* 表示數字、日期時間等的範圍,如一年中的日期「July–August 1968」
* 表示導航路徑的起點和終點,如「Boston–Hartford route」
使用短破折號時,通常不需要在其周圍添加空格。
### 長破折號 (—)
長破折號的長度等於大寫「M」的寬度,其使用最靈活和複雜。它通常用於:
* 詳細解釋某事,相當於括號或冒號
* 分割陳述性從句
* 表示對話被中斷,在這種情況下也可以使用省略號
此外,還有兩個或三個長破折號連接在一起的情況,但這裡不詳細說明[^8]。
***
[^7]: 專業排版軟件通常具有自動斷字功能,在一定程度上如果開啟可以定位斷字位置,但最好人工再次檢查。
[^8]: [Wikipedia/Dash](https://en.wikipedia.org/wiki/Dash) 演示了這個符號的詳細用法以及在不同操作系統上的輸入方法。
# 排版
URL: (/zh-tw/docs/guide/typesetting)
排版是「二維建築」。
如果文字和其字體是建築物的材料,那麼排版就是建築物的圖紙。在討論排版之前,我們需要澄清一些基本概念,特別是排版中常用的尺寸單位系統。
## 字體大小
字體大小是字符大小的標準測量。字體大小的國際通用單位是點。
[點](https://en.wikipedia.org/wiki/Point_\(typography\))通常縮寫為 pt,它是排版中最小的測量單位。事實上,點的大小在印刷歷史上一直在變化。自 18 世紀以來,點的大小從 0.18 到 0.4 毫米不等。隨著 1980 年代和 1990 年代[桌面出版](https://en.wikipedia.org/wiki/Desktop_publishing)的出現,[數字印刷](https://en.wikipedia.org/wiki/Digital_printing)在很大程度上取代了[活字印刷](https://en.wikipedia.org/wiki/Printing_press)並逐漸確立了 DTP 點作為事實標準。
DTP 點定義為 1/72 [英寸](https://en.wikipedia.org/wiki/Inch)。
大多數字體在設置為 10-12 pt 時效果最佳。換句話說,字符本身的筆畫和結構以及字母之間的間距在這種尺寸下都會呈現相對良好的視覺效果。字體越大,文本顯得越鬆散,所以您需要手動減少字母間距;另一方面,字體越小,文本顯得越緊湊,所以您需要手動增加字母間距。
| pt | mm | cm | pica | inch |
| -- | ------ | ------- | ---- | ---- |
| 1 | 0.3528 | 0.03528 | 1/12 | 1/72 |
## 行距
行距或行間距指的是兩行連續基線之間的距離。
理想的行距至少是文本字體大小的 120%,一般推薦 1.2-1.5 倍。不同字體有不同的 x 高度,原則上,應用的字體 x 高度越大,行距應該越大,相反,x 高度越小,行距越小。
## 頁面佈局
佈局是排版的輪廓,它就像漁網的綱繩,一旦綱繩拉起,所有的網眼自然展開。除了字體大小和行距的一般排版規則外,履歷佈局設計還有一些獨特的要求。原則上,最好將履歷控制在一頁內。
* 使語言清晰簡潔
* 在合理範圍內調整字體大小和行距
* 保持頁面邊距在 10-25 毫米,使左右邊距對稱
* 使用列表而不是平行句子來列出資訊
* 使用左對齊,謹慎使用兩端對齊,因為兩端對齊可能會在斷字和字母間距方面造成問題,因為單詞長度不同
# 佈局
URL: (/zh-tw/docs/layouts)
履歷的核心是內容,但佈局也很重要。許多基於 JSON/YAML 的履歷生成器只關注內容,而將佈局保持不變,這給用戶留下了很大的問題。
與其他履歷生成器不同,YAMLResume 提供了開箱即用的佈局解決方案,允許用戶專注於履歷的內容,同時生成具有像素完美佈局和排版的專業履歷。
從 v0.8.0 開始,YAMLResume 通過 `layouts` 陣列支援多種佈局和多種輸出引擎(LaTeX 和 Markdown)。
以下是 `resume.yml` 文件中佈局配置的示例:
```yml lineNumbers title="resume.yml"
---
content:
# ...
locale:
language: en
layouts:
- engine: latex
template: moderncv-banking
page:
showPageNumbers: true
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
typography:
fontSize: 11pt
- engine: markdown
```
## 引擎
YAMLResume 目前支援兩種引擎:
* [LaTeX](./layouts/latex):生成高品質 PDF 履歷。
* [Markdown](./layouts/markdown):生成純 Markdown 履歷。
## 了解更多
# 中文
URL: (/zh-tw/docs/locale/chinese)
[中文](https://zh.wikipedia.org/wiki/中文)屬於[漢藏語系](https://zh.wikipedia.org/wiki/漢藏語系),與拉丁文字語言有很大不同。約有 14 億人,即世界人口的 17%,將某種中文作為第一語言。
## 語言學
### 字符集
[漢字](https://zh.wikipedia.org/wiki/漢字)和[拉丁字符](https://en.wikipedia.org/wiki/Western_Latin_character_sets_\(computing\))代表了兩種根本不同的書面語言方法。
拉丁字符具有有限的字符集,相對較少的字符就能表示大量詞彙,每個字符代表特定的聲音或[音素](https://zh.wikipedia.org/wiki/音素),單詞通過按特定順序組合這些字符形成。而中文有數萬個字符來表達中文的完整範圍,每個字符代表一個[語素](https://zh.wikipedia.org/wiki/語素)或單詞,通常直接傳達意義,單詞通過組合單個字符形成,每個字符都有自己的意義和發音。
書寫系統的這種根本差異對語言學習、文本處理和文化交流具有重要影響。雖然拉丁字符相對容易學習和使用,但漢字需要大量的記憶和練習。
### 變體
雖然中文有許多地區變體,但兩種主要的書面形式是簡體中文和繁體中文。
以下是詳細說明:
**簡體中文**
* 主要在中國大陸和新加坡使用。
* 在20世紀中期發展,旨在提高識字率。
* 使用[簡體字](https://zh.wikipedia.org/wiki/簡化字),通常比繁體字筆畫更少。
**繁體中文**
* 主要在香港、澳門、台灣和許多海外華人社區使用。
* 中文的較舊形式。
* 使用[繁體字](https://zh.wikipedia.org/wiki/繁體字),筆畫更多更複雜。
需要注意的是,簡體和繁體中文都可以用來書寫各種中文方言,如[普通話](https://zh.wikipedia.org/wiki/普通話)、[粵語](https://zh.wikipedia.org/wiki/粵語)和[閩南語](https://zh.wikipedia.org/wiki/閩南語)。
同時,繁體中文至少有兩個變體,即香港變體 [zh-HK](https://simplelocalize.io/data/locale-code/zh-HK) 和台灣變體 [zh-TW](https://simplelocalize.io/data/locale-code/zh-TW)。zh-HK 和 zh-TW 中的大部分文字是相同的,只有少數細微差異。
例如,單詞"software"翻譯為 zh-HK 時是"軟件",而在 zh-TW 中是"軟體"。大約有幾十個英文單詞在 zh-HK 和 zh-TW 中翻譯不同,詳細資訊[在此](https://zh.wikipedia.org/wiki/繁體字#用語差異)。
一般來說,YAMLResume 對 zh-HK 和 zh-TW 之間的差異無能為力,因為用戶在編寫簡歷時必須決定使用哪種變體,並確保內容符合 zh-HK 或 zh-TW 的習語和慣例。但是,YAMLResume 需要正確處理 zh-HK 和 zh-TW 的一件事,因為一些國家和地區在 zh-HK 和 zh-TW 中有不同的名稱。例如,[沙烏地阿拉伯](https://en.wikipedia.org/wiki/Saudi_Arabia)在 zh-HK 中翻譯為"沙特阿拉伯",在 zh-TW 中翻譯為"沙烏地阿拉伯"。還有其他幾個國家。YAMLResume [處理](#location-countries-and-regions)了所有在 zh-HK 和 zh-TW 中有不同翻譯的國家和地區。
## 習語
### 日期
日期在英文和中文中的表示方式不同,例如英文中的"Jun 2018 – Present"應該翻譯為中文的"2018 年 6 月至今",年份和月份的位置應該顛倒,連字符"–"應該替換為"至"。
同時,中文不使用專門的月份詞彙,而是使用阿拉伯數字和字符"月"的組合,使其像計數遊戲一樣簡單。
| 英文 | 中文 |
| --------------- | ---- |
| January (Jan) | 1 月 |
| February (Feb) | 2 月 |
| March (Mar) | 3 月 |
| April (Apr) | 4 月 |
| May (May) | 5 月 |
| June (Jun) | 6 月 |
| July (Jul) | 7 月 |
| August (Aug) | 8 月 |
| September (Sep) | 9 月 |
| October (Oct) | 10 月 |
| November (Nov) | 11 月 |
| December (Dec) | 12 月 |
### 位置
地址格式在[英文](/locale/english#location)和中文慣例之間有所不同。與英文不同,在中文中呈現包含地址、城市和國家的地址時,一般部分(國家、省等)通常在前,而最具體的部分(城鎮、地址等)在後。
## 排版
### 字體
就像拉丁文字語言一樣,中文有其襯線字體[宋體](/zh-tw/docs/guide/font#song)和無襯線字體[黑體](/zh-tw/docs/guide/font#bold)。此外,它還有兩種額外的字體樣式,[常規](/zh-tw/docs/guide/font#regular)和[仿宋](/zh-tw/docs/guide/font#fangsong)。您可以查看[指南 -> 字體 -> CJK字體](/zh-tw/docs/guide/font#cjk-font)了解更多詳情。
YAMLResume 使用宋體作為中文簡歷的主要字體。
### 標點符號
中文標點符號,就像語言本身一樣,有其獨特的特點。需要注意的一個重要差別是[半角和全角](https://zh.wikipedia.org/wiki/半角和全角字元)標點符號之間的差異。
中文半角和全角標點符號之間的主要差別在於它們的視覺寬度和預期用途。
**半角標點符號**
* **較窄**:這些標點符號通常與拉丁字符或數字一起使用,例如在URL、電子郵件地址或程式碼片段中。
* **較少使用**:它們在標準中文文本中較少使用,通常用於一小部分拉丁文字語言短語或段落。
**全角標點符號**
* **較寬**:這些標點符號設計為匹配漢字的寬度,確保在中文文本中視覺平衡和一致的外觀。
* **更常用**:它們是中文文本中使用的標準標點符號。
使用正確類型的標點符號對於中文文本的正確格式和可讀性至關重要。不匹配的標點符號可能導致視覺不一致和潛在的混淆。
通過理解半角和全角標點符號之間的差異,您可以確保您的中文文本格式正確且視覺上吸引人。以下是半角和全角形式的標點符號表,分別用於拉丁文字和中文語言。
| | 英文 | 繁體中文 |
| --- | --- | ---- |
| 句號 | . | 。 |
| 問號 | ? | ? |
| 驚嘆號 | ! | ! |
| 逗號 | , | , |
| 冒號 | : | : |
| 分號 | ; | ; |
| 小括號 | () | () |
| 中括號 | \[] | [] |
| 花括號 | \{} | {} |
對於簡歷,使用正確的標點符號是作者的責任,但 YAMLResume 可以保證我們的簡歷模板始終使用正確的標點符號。我們現在有兩個案例:
#### 逗號
英文使用逗號`,`作為分隔符來分隔句子的部分和列表中的項目,而中文使用中文逗號`,`來分隔句子,使用專門的枚舉逗號([頓號](https://zh.wikipedia.org/wiki/逗號#東亞), `、`)來分隔列表中的項目(例如關鍵詞列表)。
#### 冒號
英文和中文也有[不同的](https://zh.wikipedia.org/wiki/半角和全角字元)冒號。[英文冒號](https://www.compart.com/en/unicode/U+003A)是`:`,Unicode 為`U+003A`,而[中文冒號](https://www.compart.com/en/unicode/U+FF1A)是`:`,Unicode 為`U+FF1A`。正如您始終可以信任的那樣,YAMLResume 也處理這個問題。我們在簡歷模板中為各種固定術語使用正確的冒號,如"Keywords:"(簡體中文為"關鍵字:",繁體中文為"關鍵字:")和"Courses:"(簡體中文為"課程:",繁體中文為"課程:")。
### 舊式數字
預設情況下,**YAMLResume 在中文簡歷中不使用[舊式數字](/zh-tw/docs/guide/font#old-style-numbers)**。為什麼?因為漢字都具有相同的高度和寬度(這就是為什麼漢字也被稱為"方塊字",意思是方形字符),基本上所有漢字本質上都是標題和等寬的。通過採用襯線樣式的數字,數字樣式更接近漢字。
### 斜體
預設情況下,**YAMLResume 在中文簡歷中不使用斜體**,因為中文中的斜體被認為是[不良做法](https://drwhispers.com/2021/11/16/italics-in-chinese/),為什麼?
在拉丁文字語言中,斜體通常與正文襯線區分開來,用於強調或區分文本的部分,但是,將漢字斜體化可能會破壞文本的自然流動和可讀性。
與拉丁字符不同,漢字是方形字符,傳統上不以斜體書寫,許多中文字體沒有每個字符的特定斜體字形。當將中文文本斜體化時,軟體通常只是傾斜字符,這可能導致視覺上不愉快和不專業的外觀。
## 翻譯
YAMLResume 採用以下翻譯用於中文簡歷中的各種選項和術語。
### 教育學位
| 英文 | 中文(簡體) | 中文(繁體,香港) | 中文(繁體,台灣) |
| ------------- | ------ | --------- | --------- |
| Middle School | 初中 | 初中 | 初中 |
| High School | 高中 | 高中 | 高中 |
| Diploma | 專科 | 專科 | 專科 |
| Associate | 副學士 | 副學士 | 副學士 |
| Bachelor | 學士 | 學士 | 學士 |
| Master | 碩士 | 碩士 | 碩士 |
| Doctor | 博士 | 博士 | 博士 |
### 語言
| 英文 | 中文(簡體) | 中文(繁體,香港) | 中文(繁體,台灣) |
| ----------- | ------ | --------- | --------- |
| Afrikaans | 南非荷蘭語 | 南非荷蘭語 | 南非荷蘭語 |
| Albanian | 阿爾巴尼亞語 | 阿爾巴尼亞語 | 阿爾巴尼亞語 |
| Amharic | 阿姆哈拉語 | 阿姆哈拉語 | 阿姆哈拉語 |
| Arabic | 阿拉伯語 | 阿拉伯語 | 阿拉伯語 |
| Azerbaijani | 阿塞拜疆語 | 阿塞拜疆語 | 亞塞拜然語 |
| Belarusian | 白俄羅斯語 | 白俄羅斯語 | 白俄羅斯語 |
| Bengali | 孟加拉語 | 孟加拉語 | 孟加拉語 |
| Bhojpuri | 博傑普爾語 | 博傑普爾語 | 博傑普爾語 |
| Bulgarian | 保加利亞語 | 保加利亞語 | 保加利亞語 |
| Burmese | 緬甸語 | 緬甸語 | 緬甸語 |
| Cantonese | 粵語 | 粵語 | 粵語 |
| Catalan | 加泰羅尼亞語 | 加泰羅尼亞語 | 加泰隆尼亞語 |
| Chinese | 中文 | 中文 | 中文 |
| Croatian | 克羅地亞語 | 克羅地亞語 | 克羅埃西亞語 |
| Czech | 捷克語 | 捷克語 | 捷克語 |
| Danish | 丹麥語 | 丹麥語 | 丹麥語 |
| Dutch | 荷蘭語 | 荷蘭語 | 荷蘭語 |
| English | 英語 | 英語 | 英語 |
| Estonian | 愛沙尼亞語 | 愛沙尼亞語 | 愛沙尼亞語 |
| Farsi | 波斯語 | 波斯語 | 波斯語 |
| Filipino | 菲律賓語 | 菲律賓語 | 菲律賓語 |
| Finnish | 芬蘭語 | 芬蘭語 | 芬蘭語 |
| French | 法語 | 法語 | 法語 |
| German | 德語 | 德語 | 德語 |
| Greek | 希臘語 | 希臘語 | 希臘語 |
| Gujarati | 古吉拉特語 | 古吉拉特語 | 古吉拉特語 |
| Hausa | 豪薩語 | 豪薩語 | 豪薩語 |
| Hebrew | 希伯來語 | 希伯來語 | 希伯來語 |
| Hindi | 印地語 | 印地語 | 印地語 |
| Hungarian | 匈牙利語 | 匈牙利語 | 匈牙利語 |
| Icelandic | 冰島語 | 冰島語 | 冰島語 |
| Igbo | 伊博語 | 伊博語 | 伊博語 |
| Indonesian | 印度尼西亞語 | 印度尼西亞語 | 印度尼西亞語 |
| Irish | 愛爾蘭語 | 愛爾蘭語 | 愛爾蘭語 |
| Italian | 意大利語 | 意大利語 | 意大利語 |
| Japanese | 日語 | 日語 | 日語 |
| Javanese | 爪哇語 | 爪哇語 | 爪哇語 |
| Kazakh | 哈薩克語 | 哈薩克語 | 哈薩克語 |
| Khmer | 高棉語 | 高棉語 | 高棉語 |
| Korean | 韓語 | 韓語 | 韓語 |
| Lahnda | 拉亨達語 | 拉亨達語 | 拉亨達語 |
| Latvian | 拉脫維亞語 | 拉脫維亞語 | 拉脫維亞語 |
| Lithuanian | 立陶宛語 | 立陶宛語 | 立陶宛語 |
| Malay | 馬來語 | 馬來語 | 馬來語 |
| Mandarin | 普通話 | 普通話 | 普通話 |
| Marathi | 馬拉地語 | 馬拉地語 | 馬拉地語 |
| Nepali | 尼泊爾語 | 尼泊爾語 | 尼泊爾語 |
| Norwegian | 挪威語 | 挪威語 | 挪威語 |
| Oromo | 奧羅莫語 | 奧羅莫語 | 奧羅莫語 |
| Pashto | 普什圖語 | 普什圖語 | 普什圖語 |
| Polish | 波蘭語 | 波蘭語 | 波蘭語 |
| Portuguese | 葡萄牙語 | 葡萄牙語 | 葡萄牙語 |
| Romanian | 羅馬尼亞語 | 羅馬尼亞語 | 羅馬尼亞語 |
| Russian | 俄語 | 俄語 | 俄語 |
| Serbian | 塞爾維亞語 | 塞爾維亞語 | 塞爾維亞語 |
| Shona | 紹納語 | 紹納語 | 紹納語 |
| Sinhala | 僧伽羅語 | 僧伽羅語 | 僧伽羅語 |
| Slovak | 斯洛伐克語 | 斯洛伐克語 | 斯洛伐克語 |
| Slovene | 斯洛文尼亞語 | 斯洛文尼亞語 | 斯洛文尼亞語 |
| Somali | 索馬里語 | 索馬里語 | 索馬里語 |
| Spanish | 西班牙語 | 西班牙語 | 西班牙語 |
| Sundanese | 巽他語 | 巽他語 | 巽他語 |
| Swahili | 斯瓦希里語 | 斯瓦希里語 | 斯瓦希里語 |
| Swedish | 瑞典語 | 瑞典語 | 瑞典語 |
| Tagalog | 他加祿語 | 他加祿語 | 他加祿語 |
| Tamil | 泰米爾語 | 泰米爾語 | 泰米爾語 |
| Telugu | 泰盧固語 | 泰盧固語 | 泰盧固語 |
| Thai | 泰語 | 泰語 | 泰語 |
| Turkish | 土耳其語 | 土耳其語 | 土耳其語 |
| Ukrainian | 烏克蘭語 | 烏克蘭語 | 烏克蘭語 |
| Urdu | 烏爾都語 | 烏爾都語 | 烏爾都語 |
| Uzbek | 烏茲別克語 | 烏茲別克語 | 烏茲別克語 |
| Vietnamese | 越南語 | 越南語 | 越南語 |
| Yoruba | 約魯巴語 | 約魯巴語 | 約魯巴語 |
| Zulu | 祖魯語 | 祖魯語 | 祖魯語 |
### 語言熟練度
| 英文 | 中文(簡體) | 中文(繁體,香港) | 中文(繁體,台灣) |
| -------------------------------- | ------- | --------- | --------- |
| Elementary Proficiency | 初級水平 | 初級水平 | 初級水平 |
| Limited Working Proficiency | 有限工作水平 | 有限工作水平 | 有限工作水平 |
| Minimum Professional Proficiency | 最低專業水平 | 最低專業水平 | 最低專業水平 |
| Full Professional Proficiency | 完全專業水平 | 完全專業水平 | 完全專業水平 |
| Native or Bilingual Proficiency | 母語或雙語水平 | 母語或雙語水平 | 母語或雙語水平 |
### 位置(國家和地區)
| 英文 | 中文(簡體) | 中文(繁體,香港) | 中文(繁體,台灣) |
| ------------------------------------ | --------------- | --------------- | --------------- |
| Afghanistan | 阿富汗 | 阿富汗 | 阿富汗 |
| Aland Islands | 奧蘭群島 | 奧蘭羣島 | 奧蘭群島 |
| Albania | 阿爾巴尼亞 | 阿爾巴尼亞 | 阿爾巴尼亞 |
| Algeria | 阿爾及利亞 | 阿爾及利亞 | 阿爾及利亞 |
| American Samoa | 美屬薩摩亞 | 美屬薩摩亞 | 美屬薩摩亞 |
| Andorra | 安道爾 | 安道爾 | 安道爾 |
| Angola | 安哥拉 | 安哥拉 | 安哥拉 |
| Anguilla | 安圭拉 | 安圭拉 | 安圭拉 |
| Antarctica | 南極洲 | 南極洲 | 南極洲 |
| Antigua And Barbuda | 安提瓜和巴布達 | 安提瓜和巴布達 | 安地卡及巴布達 |
| Argentina | 阿根廷 | 阿根廷 | 阿根廷 |
| Armenia | 亞美尼亞 | 亞美尼亞 | 亞美尼亞 |
| Aruba | 阿魯巴 | 阿魯巴 | 阿魯巴 |
| Australia | 澳大利亞 | 澳大利亞 | 澳大利亞 |
| Austria | 奧地利 | 奧地利 | 奧地利 |
| Azerbaijan | 阿塞拜疆 | 阿塞拜疆 | 亞塞拜然 |
| Bahrain | 巴林 | 巴林 | 巴林 |
| Bangladesh | 孟加拉 | 孟加拉 | 孟加拉 |
| Barbados | 巴巴多斯 | 巴巴多斯 | 巴貝多 |
| Belarus | 白俄羅斯 | 白俄羅斯 | 白俄羅斯 |
| Belgium | 比利時 | 比利時 | 比利時 |
| Belize | 伯利茲 | 伯利茲 | 貝里斯 |
| Benin | 貝寧 | 貝寧 | 貝南 |
| Bermuda | 百慕大 | 百慕大 | 百慕大 |
| Bhutan | 不丹 | 不丹 | 不丹 |
| Bolivia | 玻利維亞 | 玻利維亞 | 玻利維亞 |
| Bonaire, Sint Eustatius and Saba | 博內爾島、聖尤斯特歇斯和薩巴島 | 博內爾島、聖尤斯特歇斯和薩巴島 | 博內爾島、聖尤斯特歇斯和薩巴島 |
| Bosnia and Herzegovina | 波斯尼亞和黑塞哥維那 | 波斯尼亞和黑塞哥維那 | 波斯尼亞和黑塞哥維那 |
| Botswana | 博茨瓦納 | 博茨瓦納 | 波札那 |
| Bouvet Island | 布維島 | 布維島 | 布維島 |
| Brazil | 巴西 | 巴西 | 巴西 |
| British Indian Ocean Territory | 英屬印度洋領地 | 英屬印度洋領地 | 英屬印度洋領地 |
| Brunei | 文萊 | 文萊 | 汶萊 |
| Bulgaria | 保加利亞 | 保加利亞 | 保加利亞 |
| Burkina Faso | 布基納法索 | 布基納法索 | 布吉納法索 |
| Burundi | 布隆迪 | 布隆迪 | 蒲隆地 |
| Cambodia | 柬埔寨 | 柬埔寨 | 柬埔寨 |
| Cameroon | 喀麥隆 | 喀麥隆 | 喀麥隆 |
| Canada | 加拿大 | 加拿大 | 加拿大 |
| Cape Verde | 佛得角 | 佛得角 | 維德角 |
| Cayman Islands | 開曼群島 | 開曼羣島 | 開曼群島 |
| Central African Republic | 中非 | 中非 | 中非 |
| Chad | 乍得 | 乍得 | 查德 |
| Chile | 智利 | 智利 | 智利 |
| China | 中國 | 中國 | 中國 |
| Christmas Island | 聖誕島 | 聖誕島 | 聖誕島 |
| Cocos (Keeling) Islands | 科科斯(基林)群島 | 科科斯(基林)羣島 | 科科斯(基林)群島 |
| Colombia | 哥倫比亞 | 哥倫比亞 | 哥倫比亞 |
| Comoros | 科摩羅 | 科摩羅 | 葛摩 |
| Congo | 剛果 | 剛果 | 剛果 |
| Cook Islands | 庫克群島 | 庫克羣島 | 庫克群島 |
| Costa Rica | 哥斯達黎加 | 哥斯達黎加 | 哥斯大黎加 |
| Cote D'Ivoire (Ivory Coast) | 科特迪瓦 | 科特迪瓦 | 象牙海岸 |
| Croatia | 克羅地亞 | 克羅地亞 | 克羅埃西亞 |
| Cuba | 古巴 | 古巴 | 古巴 |
| Curaçao | 庫拉索 | 庫拉索 | 庫拉索 |
| Cyprus | 塞浦路斯 | 塞浦路斯 | 塞普勒斯 |
| Czech Republic | 捷克 | 捷克 | 捷克 |
| Democratic Republic of the Congo | 剛果(金) | 剛果(金) | 剛果(金) |
| Denmark | 丹麥 | 丹麥 | 丹麥 |
| Djibouti | 吉布提 | 吉布提 | 吉布提 |
| Dominica | 多米尼加 | 多米尼加 | 多明尼加 |
| Dominican Republic | 多明尼加共和國 | 多明尼加共和國 | 多明尼加共和國 |
| East Timor | 東帝汶 | 東帝汶 | 東帝汶 |
| Ecuador | 厄瓜多爾 | 厄瓜多爾 | 厄瓜多 |
| Egypt | 埃及 | 埃及 | 埃及 |
| El Salvador | 薩爾瓦多 | 薩爾瓦多 | 薩爾瓦多 |
| Equatorial Guinea | 赤道幾內亞 | 赤道幾內亞 | 赤道幾內亞 |
| Eritrea | 厄立特里亞 | 厄立特里亞 | 厄利垂亞 |
| Estonia | 愛沙尼亞 | 愛沙尼亞 | 愛沙尼亞 |
| Ethiopia | 埃塞俄比亞 | 埃塞俄比亞 | 衣索比亞 |
| Falkland Islands | 福克蘭群島 | 福克蘭羣島 | 福克蘭群島 |
| Faroe Islands | 法羅群島 | 法羅羣島 | 法羅群島 |
| Fiji Islands | 斐濟 | 斐濟 | 斐濟 |
| Finland | 芬蘭 | 芬蘭 | 芬蘭 |
| France | 法國 | 法國 | 法國 |
| French Guiana | 法屬圭亞那 | 法屬圭亞那 | 法屬蓋亞那 |
| French Polynesia | 法屬波利尼西亞 | 法屬波利尼西亞 | 法屬波利尼西亞 |
| French Southern Territories | 法屬南部領地 | 法屬南部領地 | 法屬南部領地 |
| Gabon | 加蓬 | 加蓬 | 加彭 |
| Gambia The | 岡比亞 | 岡比亞 | 甘比亞 |
| Georgia | 格魯吉亞 | 格魯吉亞 | 喬治亞 |
| Germany | 德國 | 德國 | 德國 |
| Ghana | 加納 | 加納 | 迦納 |
| Gibraltar | 直布羅陀 | 直布羅陀 | 直布羅陀 |
| Greece | 希臘 | 希臘 | 希臘 |
| Greenland | 格陵蘭島 | 格陵蘭島 | 格陵蘭島 |
| Grenada | 格林納達 | 格林納達 | 格瑞那達 |
| Guadeloupe | 瓜德羅普島 | 瓜德羅普島 | 瓜德羅普島 |
| Guam | 關島 | 關島 | 關島 |
| Guatemala | 危地馬拉 | 危地馬拉 | 瓜地馬拉 |
| Guernsey and Alderney | 根西島 | 根西島 | 根西島 |
| Guinea | 幾內亞 | 幾內亞 | 幾內亞 |
| Guinea-Bissau | 幾內亞比索 | 幾內亞比紹 | 幾內亞比索 |
| Guyana | 圭亞那 | 圭亞那 | 蓋亞那 |
| Haiti | 海地 | 海地 | 海地 |
| Heard Island and McDonald Islands | 赫德·唐納島及麥唐納島 | 赫德·唐納島及麥唐納島 | 赫德·唐納島及麥唐納島 |
| Honduras | 洪都拉斯 | 洪都拉斯 | 宏都拉斯 |
| Hong Kong S.A.R. | 中國香港 | 中國香港 | 中國香港 |
| Hungary | 匈牙利 | 匈牙利 | 匈牙利 |
| Iceland | 冰島 | 冰島 | 冰島 |
| India | 印度 | 印度 | 印度 |
| Indonesia | 印度尼西亞 | 印度尼西亞 | 印度尼西亞 |
| Iran | 伊朗 | 伊朗 | 伊朗 |
| Iraq | 伊拉克 | 伊拉克 | 伊拉克 |
| Ireland | 愛爾蘭 | 愛爾蘭 | 愛爾蘭 |
| Israel | 以色列 | 以色列 | 以色列 |
| Italy | 意大利 | 意大利 | 義大利 |
| Jamaica | 牙買加 | 牙買加 | 牙買加 |
| Japan | 日本 | 日本 | 日本 |
| Jersey | 澤西島 | 澤西島 | 澤西島 |
| Jordan | 約旦 | 約旦 | 約旦 |
| Kazakhstan | 哈薩克斯坦 | 哈薩克斯坦 | 哈薩克 |
| Kenya | 肯尼亞 | 肯尼亞 | 肯亞 |
| Kiribati | 基里巴斯 | 基里巴斯 | 吉里巴斯 |
| Kosovo | 科索沃 | 科索沃 | 科索沃 |
| Kuwait | 科威特 | 科威特 | 科威特 |
| Kyrgyzstan | 吉爾吉斯斯坦 | 吉爾吉斯斯坦 | 吉爾吉斯斯坦 |
| Laos | 寮人民民主共和國 | 寮人民民主共和國 | 寮人民民主共和國 |
| Latvia | 拉脫維亞 | 拉脫維亞 | 拉脫維亞 |
| Lebanon | 黎巴嫩 | 黎巴嫩 | 黎巴嫩 |
| Lesotho | 萊索托 | 萊索托 | 賴索托 |
| Liberia | 利比里亞 | 利比里亞 | 賴比瑞亞 |
| Libya | 利比亞 | 利比亞 | 利比亞 |
| Liechtenstein | 列支敦士登 | 列支敦士登 | 列支敦斯登 |
| Lithuania | 立陶宛 | 立陶宛 | 立陶宛 |
| Luxembourg | 盧森堡 | 盧森堡 | 盧森堡 |
| Macau S.A.R. | 中國澳門 | 中國澳門 | 中國澳門 |
| Madagascar | 馬達加斯加 | 馬達加斯加 | 馬達加斯加 |
| Malawi | 馬拉維 | 馬拉維 | 馬拉維 |
| Malaysia | 馬來西亞 | 馬來西亞 | 馬來西亞 |
| Maldives | 馬爾代夫 | 馬爾代夫 | 馬爾地夫 |
| Mali | 馬里 | 馬裏 | 馬裡 |
| Malta | 馬耳他 | 馬耳他 | 馬耳他 |
| Man (Isle of) | 馬恩島 | 馬恩島 | 馬恩島 |
| Marshall Islands | 馬紹爾群島 | 馬紹爾羣島 | 馬紹爾群島 |
| Martinique | 馬提尼克島 | 馬提尼克島 | 馬提尼克島 |
| Mauritania | 毛里塔尼亞 | 毛里塔尼亞 | 茅利塔尼亞 |
| Mauritius | 毛里求斯 | 毛里求斯 | 模里西斯 |
| Mayotte | 馬約特 | 馬約特 | 馬約特 |
| Mexico | 墨西哥 | 墨西哥 | 墨西哥 |
| Micronesia | 密克羅尼西亞 | 密克羅尼西亞 | 密克羅尼西亞 |
| Moldova | 摩爾多瓦 | 摩爾多瓦 | 摩爾多瓦 |
| Monaco | 摩納哥 | 摩納哥 | 摩納哥 |
| Mongolia | 蒙古 | 蒙古 | 蒙古 |
| Montenegro | 黑山 | 黑山 | 黑山 |
| Montserrat | 蒙特塞拉特 | 蒙特塞拉特 | 蒙特塞拉特 |
| Morocco | 摩洛哥 | 摩洛哥 | 摩洛哥 |
| Mozambique | 莫桑比克 | 莫桑比克 | 莫三比克 |
| Myanmar | 緬甸 | 緬甸 | 緬甸 |
| Namibia | 納米比亞 | 納米比亞 | 奈米比亞 |
| Nauru | 瑙魯 | 瑙魯 | 諾魯 |
| Nepal | 尼泊爾 | 尼泊爾 | 尼泊爾 |
| Netherlands | 荷蘭 | 荷蘭 | 荷蘭 |
| New Caledonia | 新喀里多尼亞 | 新喀里多尼亞 | 新喀里多尼亞 |
| New Zealand | 新西蘭 | 新西蘭 | 紐西蘭 |
| Nicaragua | 尼加拉瓜 | 尼加拉瓜 | 尼加拉瓜 |
| Niger | 尼日爾 | 尼日爾 | 尼日 |
| Nigeria | 尼日利亞 | 尼日利亞 | 奈及利亞 |
| Niue | 紐埃 | 紐埃 | 紐埃 |
| Norfolk Island | 諾福克島 | 諾福克島 | 諾福克島 |
| North Korea | 朝鮮 | 朝鮮 | 朝鮮 |
| North Macedonia | 北馬其頓 | 北馬其頓 | 北馬其頓 |
| Northern Mariana Islands | 北馬里亞納群島 | 北馬里亞納羣島 | 北馬里亞納群島 |
| Norway | 挪威 | 挪威 | 挪威 |
| Oman | 阿曼 | 阿曼 | 阿曼 |
| Pakistan | 巴基斯坦 | 巴基斯坦 | 巴基斯坦 |
| Palau | 帕勞 | 帕勞 | 帛琉 |
| Palestinian Territory Occupied | 巴勒斯坦 | 巴勒斯坦 | 巴勒斯坦 |
| Panama | 巴拿馬 | 巴拿馬 | 巴拿馬 |
| Papua new Guinea | 巴布亞新幾內亞 | 巴布亞新幾內亞 | 巴布亞紐幾內亞 |
| Paraguay | 巴拉圭 | 巴拉圭 | 巴拉圭 |
| Peru | 祕魯 | 祕魯 | 祕魯 |
| Philippines | 菲律賓 | 菲律賓 | 菲律賓 |
| Pitcairn Island | 皮特凱恩群島 | 皮特凱恩羣島 | 皮特凱恩群島 |
| Poland | 波蘭 | 波蘭 | 波蘭 |
| Portugal | 葡萄牙 | 葡萄牙 | 葡萄牙 |
| Puerto Rico | 波多黎各 | 波多黎各 | 波多黎各 |
| Qatar | 卡塔爾 | 卡塔爾 | 卡達 |
| Reunion | 留尼汪島 | 留尼汪島 | 留尼汪島 |
| Romania | 羅馬尼亞 | 羅馬尼亞 | 羅馬尼亞 |
| Russia | 俄羅斯聯邦 | 俄羅斯聯邦 | 俄羅斯聯邦 |
| Rwanda | 盧安達 | 盧旺達 | 盧安達 |
| Saint Helena | 聖赫勒拿 | 聖赫勒拿 | 聖赫勒拿 |
| Saint Kitts And Nevis | 聖基茨和尼維斯 | 聖基茨和尼維斯 | 聖克里斯多福及尼維斯 |
| Saint Lucia | 聖盧西亞 | 聖盧西亞 | 聖露西亞 |
| Saint Pierre and Miquelon | 聖皮埃爾和密克隆 | 聖皮埃爾和密克隆 | 聖皮埃爾和密克隆 |
| Saint Vincent And The Grenadines | 聖文森特和格林納丁斯 | 聖文森特和格林納丁斯 | 聖文森及格瑞那丁 |
| Saint-Barthelemy | 聖巴泰勒米 | 聖巴泰勒米 | 聖巴泰勒米 |
| Saint-Martin (French part) | 密克羅尼西亞 | 密克羅尼西亞 | 密克羅尼西亞 |
| Samoa | 薩摩亞 | 薩摩亞 | 薩摩亞 |
| San Marino | 聖馬力諾 | 聖馬力諾 | 聖馬利諾 |
| Sao Tome and Principe | 聖多美和普林西比 | 聖多美和普林西比 | 聖多美和普林西比 |
| Saudi Arabia | 沙特阿拉伯 | 沙特阿拉伯 | 沙烏地阿拉伯 |
| Senegal | 塞內加爾 | 塞內加爾 | 塞內加爾 |
| Serbia | 塞爾維亞 | 塞爾維亞 | 塞爾維亞 |
| Seychelles | 塞舌爾 | 塞舌爾 | 塞席爾 |
| Sierra Leone | 塞拉利昂 | 塞拉利昂 | 獅子山 |
| Singapore | 新加坡 | 新加坡 | 新加坡 |
| Sint Maarten (Dutch part) | 聖馬丁島(荷蘭部分) | 聖馬丁島(荷蘭部分) | 聖馬丁島(荷蘭部分) |
| Slovakia | 斯洛伐克 | 斯洛伐克 | 斯洛伐克 |
| Slovenia | 斯洛文尼亞 | 斯洛文尼亞 | 斯洛維尼亞 |
| Solomon Islands | 所羅門群島 | 所羅門羣島 | 索羅門群島 |
| Somalia | 索馬里 | 索馬里 | 索馬利亞 |
| South Africa | 南非 | 南非 | 南非 |
| South Georgia | 南喬治亞 | 南喬治亞 | 南喬治亞 |
| South Korea | 韓國 | 韓國 | 韓國 |
| South Sudan | 南蘇丹 | 南蘇丹 | 南蘇丹 |
| Spain | 西班牙 | 西班牙 | 西班牙 |
| Sri Lanka | 斯里蘭卡 | 斯里蘭卡 | 斯里蘭卡 |
| Sudan | 蘇丹 | 蘇丹 | 蘇丹 |
| Suriname | 蘇里南 | 蘇里南 | 蘇利南 |
| Svalbard And Jan Mayen Islands | 斯瓦爾巴和揚馬延群島 | 斯瓦爾巴和揚馬延羣島 | 斯瓦爾巴和揚馬延群島 |
| Swaziland | 斯威士蘭 | 斯威士蘭 | 史瓦濟蘭 |
| Sweden | 瑞典 | 瑞典 | 瑞典 |
| Switzerland | 瑞士 | 瑞士 | 瑞士 |
| Syria | 敘利亞 | 敘利亞 | 敘利亞 |
| Taiwan | 中國臺灣 | 中國臺灣 | 中國臺灣 |
| Tajikistan | 塔吉克斯坦 | 塔吉克斯坦 | 塔吉克 |
| Tanzania | 坦尚尼亞 | 坦桑尼亞 | 坦尚尼亞 |
| Thailand | 泰國 | 泰國 | 泰國 |
| The Bahamas | 巴哈馬 | 巴哈馬 | 巴哈馬 |
| Togo | 多哥 | 多哥 | 多哥 |
| Tokelau | 托克勞 | 托克勞 | 托克勞 |
| Tonga | 湯加 | 湯加 | 湯加 |
| Trinidad And Tobago | 特立尼達和多巴哥 | 特立尼達和多巴哥 | 千里達及托巴哥 |
| Tunisia | 突尼斯 | 突尼斯 | 突尼西亞 |
| Türkiye | 土耳其 | 土耳其 | 土耳其 |
| Turkmenistan | 土庫曼斯坦 | 土庫曼斯坦 | 土庫曼 |
| Turks And Caicos Islands | 特克斯和凱科斯群島 | 特克斯和凱科斯羣島 | 特克斯和凱科斯群島 |
| Tuvalu | 圖瓦盧 | 圖瓦盧 | 吐瓦魯 |
| Uganda | 烏干達 | 烏干達 | 烏干達 |
| Ukraine | 烏克蘭 | 烏克蘭 | 烏克蘭 |
| United Arab Emirates | 阿拉伯聯合酋長國 | 阿拉伯聯合酋長國 | 阿拉伯聯合大公國 |
| United Kingdom | 英國 | 英國 | 英國 |
| United States | 美國 | 美國 | 美國 |
| United States Minor Outlying Islands | 美國本土外小島嶼 | 美國本土外小島嶼 | 美國本土外小島嶼 |
| Uruguay | 烏拉圭 | 烏拉圭 | 烏拉圭 |
| Uzbekistan | 烏茲別克斯坦 | 烏茲別克斯坦 | 烏茲別克 |
| Vanuatu | 瓦努阿圖 | 瓦努阿圖 | 萬那杜 |
| Vatican City State (Holy See) | 梵蒂岡 | 梵蒂岡 | 梵蒂岡 |
| Venezuela | 委內瑞拉 | 委內瑞拉 | 委內瑞拉 |
| Vietnam | 越南 | 越南 | 越南 |
| Virgin Islands (British) | 聖文森特和格林納丁斯 | 聖文森特和格林納丁斯 | 聖文森及格瑞那丁 |
| Virgin Islands (US) | 維爾京群島(美國) | 維爾京羣島(美國) | 維爾京群島(美國) |
| Wallis And Futuna Islands | 瓦利斯羣島和富圖納羣島 | 瓦利斯羣島和富圖納羣島 | 瓦利斯群島和富圖納群島 |
| Western Sahara | 西撒哈拉 | 西撒哈拉 | 西撒哈拉 |
| Yemen | 也門 | 也門 | 葉門 |
| Zambia | 贊比亞 | 贊比亞 | 尚比亞 |
| Zimbabwe | 津巴布韋 | 津巴布韋 | 辛巴威 |
### 章節名稱
| 英文 | 中文(簡體) | 中文(繁體,香港) | 中文(繁體,台灣) |
| ------------ | ------ | --------- | --------- |
| Awards | 榮譽 | 榮譽 | 榮譽 |
| Basics | 簡介 | 簡介 | 簡介 |
| Certificates | 證書 | 證書 | 證書 |
| Education | 教育背景 | 教育背景 | 教育背景 |
| Interests | 興趣愛好 | 興趣愛好 | 興趣愛好 |
| Languages | 語言 | 語言 | 語言 |
| Location | 地址 | 地址 | 地址 |
| Profiles | 社交資訊 | 社交資訊 | 社交資訊 |
| Projects | 項目 | 項目 | 項目 |
| Publications | 出版刊物 | 出版刊物 | 出版刊物 |
| References | 引薦 | 引薦 | 引薦 |
| Skills | 專業技能 | 專業技能 | 專業技能 |
| Volunteer | 志願服務 | 志願服務 | 志願服務 |
| Work | 工作經歷 | 工作經歷 | 工作經歷 |
### 技能水平
| 英文 | 中文(簡體) | 中文(繁體,香港) | 中文(繁體,台灣) |
| ------------ | ------ | --------- | --------- |
| Novice | 新手 | 新手 | 新手 |
| Beginner | 初級 | 初級 | 初級 |
| Intermediate | 中級 | 中級 | 中級 |
| Advanced | 高級 | 高級 | 高級 |
| Expert | 專家 | 專家 | 專家 |
| Master | 大師 | 大師 | 大師 |
### 術語
| 英文 | 中文(簡體) | 中文(繁體,香港) | 中文(繁體,台灣) |
| -------- | ------ | --------- | --------- |
| Courses | 課程 | 課程 | 課程 |
| Keywords | 關鍵字 | 關鍵字 | 關鍵字 |
| Score | 成績 | 成績 | 成績 |
# 荷蘭語
URL: (/zh-tw/docs/locale/dutch)
英語和荷蘭語都是[日耳曼語系](https://en.wikipedia.org/wiki/Germanic_languages),荷蘭語屬於西日耳曼語支,與英語和德語密切相關。雖然它們有許多相似之處,但荷蘭語具有獨特的特徵,需要在 YAMLResume 中特別考慮。
## 語言學
### 字元集
英語和荷蘭語都使用[拉丁字母](https://en.wikipedia.org/wiki/Latin_alphabet)。然而,荷蘭語包含一些特定的功能:
| 特性 | 英語字元集 | 荷蘭語字元集 |
| :------- | :------------- | :--------------------------------------------------------------- |
| **字母表** | 26 個字母 (`a-z`) | 26 個字母 (`a-z`)。二合字母 `ij` 有時被視為一個獨特的字母。 |
| **變音符號** | 無 | 使用變音符號如分音符 (`ë`, `ï`) 來表示母音分隔(例如 *coöperatie*),以及銳音符 (`é`) 用於強調。 |
| **特殊字元** | 僅限於基本拉丁字元 | 包括標準字元,但在大寫時特殊處理 `ij`(例如 *IJsselmeer*)。 |
主要區別包括:
* **二合字母 `ij`**:在荷蘭語中,`ij` 組合通常被視為單個字母。當在句子開頭或專有名詞大寫時,I 和 J 都要大寫(例如 *IJmuiden*)。
* **變音符號**:分音符(trema)用於指示兩個母音分開主要發音(母音裂隙),而不是作為雙母音。
## 慣用語
### 日期
在荷蘭語中,星期和月份以小寫書寫(與英語不同),除非它們出現在句首。
例如,「Sep 2021」在荷蘭語中翻譯為「sep. 2021」或「sept. 2021」,月份小寫。
### 大寫
荷蘭語的大寫規則通常與英語相似,但也有例外:
* **星期/月份**:小寫書寫 (*maandag*, *januari*)。
* **語言/國籍**:大寫 (*Nederlands*, *Engels*)。
* **代詞「我」**:荷蘭語的「ik」小寫書寫,除非在句首。
YAMLResume 在內部為所有簡歷範本採用固定的選項和術語集。例如,YAMLResume 簡歷範本中的語言採用 [LinkedIn 的語言流利度選項](https://www.linkedin.com/pulse/language-proficiency-linkedin-duaa-ali/):
* Elementary Proficiency
* Limited Working Proficiency
* Minimum Professional Proficiency
* Full Professional Proficiency
* Native or Bilingual Proficiency
這些翻譯成荷蘭語如下:
* Elementaire vaardigheid
* Beperkte werkvaardigheid
* Minimale professionele vaardigheid
* Volledige professionele vaardigheid
* Moedertaal of tweetalige vaardigheid
遵循荷蘭語大寫慣例,僅首字母大寫。
## 排版
### 標點符號
荷蘭語在標點符號方面與英語有幾個顯著差異:
* **小數點**:荷蘭語使用逗號作為小數點(例如 3,14),而不是像英語那樣使用點(3.14)。
* **千位分隔符**:荷蘭語使用點或空格作為千位分隔符(例如 1.000 或 1 000),而不是逗號。
* **引號**:荷蘭語官方使用雙引號(通常是 低-高 `„...”` 或 高-高 `"..."`)或單引號(`'...'`)。
## 翻譯
YAMLResume 採用以下翻譯用於荷蘭語簡歷中的各種選項和術語。
### 教育學位
| English | Dutch |
| :------------ | :--------- |
| Middle School | Middelbaar |
| High School | Hogeschool |
| Diploma | Diploma |
| Associate | Graduaat |
| Bachelor | Bachelor |
| Master | Master |
| Doctor | Doctoraat |
### 語言
| English | Dutch |
| :---------- | :------------- |
| Afrikaans | Afrikaans |
| Albanian | Albanees |
| Amharic | Amhaars |
| Arabic | Arabisch |
| Azerbaijani | Azerbeidzjaans |
| Belarusian | Wit-Russisch |
| Bengali | Bengaals |
| Bhojpuri | Bhojpuri |
| Bulgarian | Bulgaars |
| Burmese | Birmees |
| Cantonese | Kantonees |
| Catalan | Catalaans |
| Chinese | Chinees |
| Croatian | Kroatisch |
| Czech | Tsjechisch |
| Danish | Deens |
| Dutch | Nederlands |
| English | Engels |
| Estonian | Ests |
| Farsi | Persan |
| Filipino | Filipijns |
| Finnish | Fins |
| French | Frans |
| German | Duits |
| Greek | Grieks |
| Gujarati | Gujarati |
| Hausa | Haoussa |
| Hebrew | Hebreeuws |
| Hindi | Hindi |
| Hungarian | Hongaars |
| Icelandic | IJslands |
| Igbo | Igbo |
| Indonesian | Indonesisch |
| Irish | Iers |
| Italian | Italiaans |
| Japanese | Japans |
| Javanese | Javaans |
| Kazakh | Kazachs |
| Khmer | Khmer |
| Korean | Koreaans |
| Lahnda | Lahnda |
| Latvian | Lets |
| Lithuanian | Litouws |
| Malay | Maleis |
| Mandarin | Mandarijn |
| Marathi | Marathi |
| Nepali | Nepalees |
| Norwegian | Noors |
| Oromo | Oromo |
| Pashto | Pasjto |
| Polish | Pools |
| Portuguese | Portugees |
| Romanian | Roemeense |
| Russian | Russisch |
| Serbian | Servisch |
| Shona | Shona |
| Sinhala | Singalees |
| Slovak | Slowaaks |
| Slovene | Sloveens |
| Somali | Somalisch |
| Spanish | Spaans |
| Sundanese | Soendanees |
| Swahili | Swahili |
| Swedish | Zweeds |
| Tagalog | Tagalog |
| Tamil | Tamoul |
| Telugu | Telugu |
| Thai | Thais |
| Turkish | Turks |
| Ukrainian | Oekraïens |
| Urdu | Urdu |
| Uzbek | Oezbeeks |
| Vietnamese | Vietnamees |
| Yoruba | Joruba |
| Zulu | Zoeloe |
### 語言流利度
| English | Dutch |
| :------------------------------- | :----------------------------------- |
| Elementary Proficiency | Elementaire vaardigheid |
| Limited Working Proficiency | Beperkte werkvaardigheid |
| Minimum Professional Proficiency | Minimale professionele vaardigheid |
| Full Professional Proficiency | Volledige professionele vaardigheid |
| Native or Bilingual Proficiency | Moedertaal of tweetalige vaardigheid |
### 地點(國家和地區)
| English | Dutch |
| :----------------------------------- | :------------------------------------------------ |
| Afghanistan | Afghanistan |
| Aland Islands | Åland eilanden |
| Albania | Albanië |
| Algeria | Algerije |
| American Samoa | Amerikaans-Samoa |
| Andorra | Andorra |
| Angola | Angola |
| Anguilla | Anguilla |
| Antarctica | Antarctica |
| Antigua And Barbuda | Antigua en Barbuda |
| Argentina | Argentinië |
| Armenia | Armenië |
| Aruba | Aruba |
| Australia | Australië |
| Austria | Oostenrijk |
| Azerbaijan | Azerbeidzjan |
| Bahrain | Bahrein |
| Bangladesh | Bangladesh |
| Barbados | Barbados |
| Belarus | Belarus |
| Belgium | België |
| Belize | Belize |
| Benin | Benin |
| Bermuda | Bermuda |
| Bhutan | Bhutan |
| Bolivia | Bolivia |
| Bonaire, Sint Eustatius and Saba | Bonaire, Sint Eustatius en Saba |
| Bosnia and Herzegovina | Bosnië en Herzegovina |
| Botswana | Botswana |
| Bouvet Island | Bouvet-eiland |
| Brazil | Brazilië |
| British Indian Ocean Territory | Brits Indische Oceaanterritorium |
| Brunei | Brunei |
| Bulgaria | Bulgarije |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Cambodja |
| Cameroon | Kameroen |
| Canada | Canada |
| Cape Verde | Kaapverdië |
| Cayman Islands | Kaaimaneilanden |
| Central African Republic | Centraal-Afrikaanse Republiek |
| Chad | Tsjaad |
| Chile | Chili |
| China | China |
| Christmas Island | Christmaseiland |
| Cocos (Keeling) Islands | Cocoseilanden |
| Colombia | Colombië |
| Comoros | Comoren |
| Congo | Congo |
| Cook Islands | Cook Eilanden |
| Costa Rica | Costa Rica |
| Cote D'Ivoire (Ivory Coast) | Ivoorkust |
| Croatia | Kroatië |
| Cuba | Cuba |
| Curaçao | Curacao |
| Cyprus | Cyprus |
| Czech Republic | Tsjechische Republiek |
| Democratic Republic of the Congo | Democratische Republiek Congo |
| Denmark | Denemarken |
| Djibouti | Djibouti |
| Dominica | Dominica |
| Dominican Republic | Dominicaanse Republiek |
| East Timor | Oost-Timor |
| Ecuador | Ecuador |
| Egypt | Egypte |
| El Salvador | El Salvador |
| Equatorial Guinea | Equatoriaal-Guinea |
| Eritrea | Eritrea |
| Estonia | Estland |
| Ethiopia | Ethiopië |
| Falkland Islands | Falklandeilanden |
| Faroe Islands | Faeröer eilanden |
| Fiji Islands | Fiji-eilanden |
| Finland | Finland |
| France | Frankrijk |
| French Guiana | Frans-Guyana |
| French Polynesia | Frans-Polynesië |
| French Southern Territories | Franse Zuidelijke Gebieden |
| Gabon | Gabon |
| Gambia The | Gambia De |
| Georgia | Georgië |
| Germany | Duitsland |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Griekenland |
| Greenland | Groenland |
| Grenada | Grenada |
| Guadeloupe | Guadeloupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernsey en Alderney |
| Guinea | Guinea |
| Guinea-Bissau | Guinee-Bissau |
| Guyana | Guyana |
| Haiti | Haïti |
| Heard Island and McDonald Islands | Heard Island en McDonald Islands |
| Honduras | Honduras |
| Hong Kong | HongKong |
| Hungary | Hongarijë |
| Iceland | Ijsland |
| India | India |
| Indonesia | Indonesië |
| Iran | Iran |
| Iraq | Iraq |
| Ireland | Ierland |
| Israel | Israël |
| Italy | Italië |
| Jamaica | Jamaica |
| Japan | Japan |
| Jersey | Jersey |
| Jordan | Jordanië |
| Kazakhstan | Kazachstan |
| Kenya | Kenia |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Koeweit |
| Kyrgyzstan | Kirgizië |
| Laos | Laos |
| Latvia | Letland |
| Lebanon | Libanon |
| Lesotho | Lesotho |
| Liberia | Liberia |
| Libya | Libië |
| Liechtenstein | Liechtenstein |
| Lithuania | Litouwen |
| Luxembourg | Luxemburg |
| Macau | Macau |
| Madagascar | Madagascar |
| Malawi | Malawi |
| Malaysia | Maleisië |
| Maldives | Maldiven |
| Mali | Mali |
| Malta | Malta |
| Man (Isle of) | Man (Eiland van) |
| Marshall Islands | Marshall eilanden |
| Martinique | Martinique |
| Mauritania | Mauritanië |
| Mauritius | Mauritius |
| Mayotte | Mayotte |
| Mexico | Mexico |
| Micronesia | Micronesië |
| Moldova | Moldavië |
| Monaco | Monaco |
| Mongolia | Mongolië |
| Montenegro | Montenegro |
| Montserrat | Montserrat |
| Morocco | Marokko |
| Mozambique | Mozambique |
| Myanmar | Myanmar |
| Namibia | Namibië |
| Nauru | Nauru |
| Nepal | Nepal |
| Netherlands | Nederland |
| New Caledonia | Nieuw-Caledonië |
| New Zealand | Nieuw-Zeeland |
| Nicaragua | Nicaragua |
| Niger | Niger |
| Nigeria | Nigeria |
| Niue | Niue |
| Norfolk Island | Norfolkeiland |
| North Korea | Noord-Korea |
| North Macedonia | Noord-Macedionië |
| Northern Mariana Islands | Noordelijke Marianen |
| Norway | Noorwegen |
| Oman | Oman |
| Pakistan | Pakistan |
| Palau | Palau |
| Palestinian Territory Occupied | Palestijns bezet gebied |
| Panama | Panama |
| Papua new Guinea | Papoea-Nieuw-Guinea |
| Paraguay | Paraguay |
| Peru | Peru |
| Philippines | Philippines |
| Pitcairn Island | Pitcairn-eiland |
| Poland | Polen |
| Portugal | Portugal |
| Puerto Rico | Puerto Rico |
| Qatar | Katar |
| Reunion | Reunion |
| Romania | Roemenië |
| Russia | Rusland |
| Rwanda | Rwanda |
| Saint Helena | Sint-Helena |
| Saint Kitts And Nevis | Saint Kitts en Nevis |
| Saint Lucia | Saint Lucia |
| Saint Pierre and Miquelon | Saint Pierre en Miquelon |
| Saint Vincent And The Grenadines | Saint Vincent en de Grenadines |
| Saint-Barthelemy | Saint-Barthélemy |
| Saint-Martin (French part) | Saint-Martin (Frans deel) |
| Samoa | Samoa |
| San Marino | San Marino |
| Sao Tome and Principe | Sao Tomé en Principe |
| Saudi Arabia | Saoedi-Arabië |
| Senegal | Senegal |
| Serbia | Servië |
| Seychelles | Seychellen |
| Sierra Leone | Sierra Leone |
| Singapore | Singapore |
| Sint Maarten (Dutch part) | Sint Maarten (Nederlands deel) |
| Slovakia | Slowakije |
| Slovenia | Slovenië |
| Solomon Islands | Salomonseilanden |
| Somalia | Somalië |
| South Africa | Zuid-Afrika |
| South Georgia | Zuid-Georgië |
| South Korea | Zuid-Korea |
| South Sudan | Zuid-Sudan |
| Spain | Spanje |
| Sri Lanka | Sri Lanka |
| Sudan | Sudan |
| Suriname | Suriname |
| Svalbard And Jan Mayen Islands | Svalbard- en Jan Mayen-eilanden |
| Swaziland | Swaziland |
| Sweden | Zweden |
| Switzerland | Zwitserland |
| Syria | Syrië |
| Taiwan | Taiwan |
| Tajikistan | Tadsjikistan |
| Tanzania | Tanzania |
| Thailand | Thailand |
| The Bahamas | De Bahama's |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinidad en Tobago |
| Tunisia | Tunesië |
| Türkiye | Turkijë |
| Turkmenistan | Turkmenistan |
| Turks And Caicos Islands | Turks- en Caicoseilanden |
| Tuvalu | Tuvalu |
| Uganda | Oeganda |
| Ukraine | Oekraïne |
| United Arab Emirates | Verenigde Arabische Emiraten |
| United Kingdom | Koninkrijk |
| United States | Verenigde Staten |
| United States Minor Outlying Islands | Kleine afgelegen eilanden van de Verenigde Staten |
| Uruguay | Uruguay |
| Uzbekistan | Oezbekistan |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Vaticaanstad (Heilige Stoel) |
| Venezuela | Venezuela |
| Vietnam | Vietnam |
| Virgin Islands (British) | Britse Maagdeneilanden |
| Virgin Islands (US) | Amerikaanse Maagdeneilanden |
| Wallis And Futuna Islands | Wallis en Futuna-eilanden |
| Western Sahara | Westelijke Sahara |
| Yemen | Jemen |
| Zambia | Zambia |
| Zimbabwe | Zimbabwe |
### 章節名稱
| English | Dutch |
| :----------- | :---------------- |
| Awards | Onderscheidingen |
| Basics | Basis Informatie |
| Certificates | Certificaten |
| Education | Opleidingen |
| Interests | Interesses |
| Languages | Talen |
| Location | Locatie |
| Profiles | Profielen |
| Projects | Projecten |
| Publications | Publicaties |
| References | Referenties |
| Skills | Vaardigheden |
| Volunteer | Vrijwilligerswerk |
| Work | Werkervaring |
### 技能等級
| English | Dutch |
| :----------- | :----------- |
| Novice | Nieuweling |
| Beginner | Beginner |
| Intermediate | Intermediair |
| Advanced | Geavanceerd |
| Expert | Expert |
| Master | Meester |
### 選項和術語
| English | Dutch |
| :------- | :---------- |
| Courses | Cursussen |
| Keywords | Trefwoorden |
| Score | Score |
# 英語
URL: (/zh-tw/docs/locale/english)
眾所周知,英語在世界各地被廣泛使用和說。
在 YAMLResume 中支援英語是一項簡單的工作。為了支援使用 LaTeX 的英語履歷,幾乎不需要額外的設置。
## 語言學
從理論上講,英語屬於[日耳曼語言](https://en.wikipedia.org/wiki/Germanic_languages),這是[印歐語系](https://en.wikipedia.org/wiki/Indo-European_languages)的一個分支,主要由約 5.15 億人使用,主要在歐洲、北美、大洋洲和南部非洲。
### 字符集
現代英語使用由 26 個字母組成的拉丁字母書寫,每個字母都有大寫和小寫形式。
[拉丁字母](https://en.wikipedia.org/wiki/Latin_alphabet)是世界上使用最廣泛的字母書寫系統。
## 習語
### 日期
英語有專門的月份詞彙,每個都有縮寫形式。YAMLResume 預設採用所有月份欄位的縮寫形式。
| 長形式 | 縮寫形式 |
| --------- | ---- |
| January | Jan |
| February | Feb |
| March | Mar |
| April | Apr |
| May | May |
| June | Jun |
| July | Jul |
| August | Aug |
| September | Sep |
| October | Oct |
| November | Nov |
| December | Dec |
### 位置
不同的語言以不同的格式呈現位置。在英語中,當呈現包含地址、城市和國家的地址時,一般部分(國家、州等)通常最後出現,而最具體的部分(城鎮、地址等)首先出現。在一些其他語言如中文中,順序完全相反。
以下是英語中的典型順序:
1. 地址:包括街道號碼、街道名稱、公寓號碼等。
2. 城市:城市或城鎮的名稱。
3. 州/省:州或省(如果適用)。
4. 國家:國家的名稱。
## 排版
許多排版理論和實踐可以被所有拉丁文字語言共享,英語也不例外。我們已經準備了一個[指南](/zh-tw/docs/guide),涵蓋了許多細節。
### 字體
查看我們指南中的[指南 -> 字體](/zh-tw/docs/guide/font)了解詳情:
* [襯線 vs. 無襯線](/zh-tw/docs/guide/font#serif-vs-sans-serif)
* [比例 vs. 等寬](/zh-tw/docs/guide/font#proportional-vs-monospaced)
* [字距調整](/zh-tw/docs/guide/font#kerning)
* [連字](/zh-tw/docs/guide/font#ligature)
* [斜體](/zh-tw/docs/guide/font#italics)
* [舊式數字](/zh-tw/docs/guide/font#old-style-numbers)
### 標點符號
查看我們指南中的[指南 -> 標點符號](/zh-tw/docs/guide/punctuations)了解詳情:
* [連字符](/zh-tw/docs/guide/punctuations#hyphen--)
* [短破折號](/zh-tw/docs/guide/punctuations#en-dash-)
* [長破折號](/zh-tw/docs/guide/punctuations#em-dash-)
## 翻譯
YAMLResume 採用以下翻譯用於英語履歷中使用的各種選項和術語。
### 教育學位
YAMLResume 為教育章節呈現以下預定義學位。
| 英語 |
| ------------- |
| Middle School |
| High School |
| Diploma |
| Associate |
| Bachelor |
| Master |
| Doctor |
### 語言
YAMLResume 為語言章節呈現以下預定義語言選項。
| 英語 |
| ----------- |
| Afrikaans |
| Albanian |
| Amharic |
| Arabic |
| Azerbaijani |
| Belarusian |
| Bengali |
| Bhojpuri |
| Bulgarian |
| Burmese |
| Cantonese |
| Catalan |
| Chinese |
| Croatian |
| Czech |
| Danish |
| Dutch |
| English |
| Estonian |
| Farsi |
| Filipino |
| Finnish |
| French |
| German |
| Greek |
| Gujarati |
| Hausa |
| Hebrew |
| Hindi |
| Hungarian |
| Icelandic |
| Igbo |
| Indonesian |
| Irish |
| Italian |
| Japanese |
| Javanese |
| Kazakh |
| Khmer |
| Korean |
| Lahnda |
| Latvian |
| Lithuanian |
| Malay |
| Mandarin |
| Marathi |
| Nepali |
| Norwegian |
| Oromo |
| Pashto |
| Polish |
| Portuguese |
| Romanian |
| Russian |
| Serbian |
| Shona |
| Sinhala |
| Slovak |
| Slovene |
| Somali |
| Spanish |
| Sundanese |
| Swahili |
| Swedish |
| Tagalog |
| Tamil |
| Telugu |
| Thai |
| Turkish |
| Ukrainian |
| Urdu |
| Uzbek |
| Vietnamese |
| Yoruba |
| Zulu |
### 語言熟練程度
YAMLResume 為語言章節呈現以下預定義語言熟練程度選項。這些選項鏡像自[Linkedin](https://www.linkedin.com/pulse/language-proficiency-linkedin-duaa-ali/)。
| 英語 |
| -------------------------------- |
| Elementary Proficiency |
| Limited Working Proficiency |
| Minimum Professional Proficiency |
| Full Professional Proficiency |
| Native or Bilingual Proficiency |
### 位置(國家和地區)
YAMLResume 為位置章節提供以下國家和地區選項。此列表來自[countries-states-cities-database](https://github.com/dr5hn/countries-states-cities-database)。並非所有都是國家,有些是地區或[特別行政區](https://en.wikipedia.org/wiki/Special_administrative_regions_of_China)。
| 英語 |
| ------------------------------------ |
| Afghanistan |
| Aland Islands |
| Albania |
| Algeria |
| American Samoa |
| Andorra |
| Angola |
| Anguilla |
| Antarctica |
| Antigua And Barbuda |
| Argentina |
| Armenia |
| Aruba |
| Australia |
| Austria |
| Azerbaijan |
| Bahrain |
| Bangladesh |
| Barbados |
| Belarus |
| Belgium |
| Belize |
| Benin |
| Bermuda |
| Bhutan |
| Bolivia |
| Bonaire, Sint Eustatius and Saba |
| Bosnia and Herzegovina |
| Botswana |
| Bouvet Island |
| Brazil |
| British Indian Ocean Territory |
| Brunei |
| Bulgaria |
| Burkina Faso |
| Burundi |
| Cambodia |
| Cameroon |
| Canada |
| Cape Verde |
| Cayman Islands |
| Central African Republic |
| Chad |
| Chile |
| China |
| Christmas Island |
| Cocos (Keeling) Islands |
| Colombia |
| Comoros |
| Congo |
| Cook Islands |
| Costa Rica |
| Cote D'Ivoire (Ivory Coast) |
| Croatia |
| Cuba |
| Curaçao |
| Cyprus |
| Czech Republic |
| Democratic Republic of the Congo |
| Denmark |
| Djibouti |
| Dominica |
| Dominican Republic |
| East Timor |
| Ecuador |
| Egypt |
| El Salvador |
| Equatorial Guinea |
| Eritrea |
| Estonia |
| Ethiopia |
| Falkland Islands |
| Faroe Islands |
| Fiji Islands |
| Finland |
| France |
| French Guiana |
| French Polynesia |
| French Southern Territories |
| Gabon |
| Gambia The |
| Georgia |
| Germany |
| Ghana |
| Gibraltar |
| Greece |
| Greenland |
| Grenada |
| Guadeloupe |
| Guam |
| Guatemala |
| Guernsey and Alderney |
| Guinea |
| Guinea-Bissau |
| Guyana |
| Haiti |
| Heard Island and McDonald Islands |
| Honduras |
| Hong Kong S.A.R. |
| Hungary |
| Iceland |
| India |
| Indonesia |
| Iran |
| Iraq |
| Ireland |
| Israel |
| Italy |
| Jamaica |
| Japan |
| Jersey |
| Jordan |
| Kazakhstan |
| Kenya |
| Kiribati |
| Kosovo |
| Kuwait |
| Kyrgyzstan |
| Laos |
| Latvia |
| Lebanon |
| Lesotho |
| Liberia |
| Libya |
| Liechtenstein |
| Lithuania |
| Luxembourg |
| Macau S.A.R. |
| Madagascar |
| Malawi |
| Malaysia |
| Maldives |
| Mali |
| Malta |
| Man (Isle of) |
| Marshall Islands |
| Martinique |
| Mauritania |
| Mauritius |
| Mayotte |
| Mexico |
| Micronesia |
| Moldova |
| Monaco |
| Mongolia |
| Montenegro |
| Montserrat |
| Morocco |
| Mozambique |
| Myanmar |
| Namibia |
| Nauru |
| Nepal |
| Netherlands |
| New Caledonia |
| New Zealand |
| Nicaragua |
| Niger |
| Nigeria |
| Niue |
| Norfolk Island |
| North Korea |
| North Macedonia |
| Northern Mariana Islands |
| Norway |
| Oman |
| Pakistan |
| Palau |
| Palestinian Territory Occupied |
| Panama |
| Papua new Guinea |
| Paraguay |
| Peru |
| Philippines |
| Pitcairn Island |
| Poland |
| Portugal |
| Puerto Rico |
| Qatar |
| Reunion |
| Romania |
| Russia |
| Rwanda |
| Saint Helena |
| Saint Kitts And Nevis |
| Saint Lucia |
| Saint Pierre and Miquelon |
| Saint Vincent And The Grenadines |
| Saint-Barthelemy |
| Saint-Martin (French part) |
| Samoa |
| San Marino |
| Sao Tome and Principe |
| Saudi Arabia |
| Senegal |
| Serbia |
| Seychelles |
| Sierra Leone |
| Singapore |
| Sint Maarten (Dutch part) |
| Slovakia |
| Slovenia |
| Solomon Islands |
| Somalia |
| South Africa |
| South Georgia |
| South Korea |
| South Sudan |
| Spain |
| Sri Lanka |
| Sudan |
| Suriname |
| Svalbard And Jan Mayen Islands |
| Swaziland |
| Sweden |
| Switzerland |
| Syria |
| Taiwan |
| Tajikistan |
| Tanzania |
| Thailand |
| The Bahamas |
| Togo |
| Tokelau |
| Tonga |
| Trinidad And Tobago |
| Tunisia |
| Türkiye |
| Turkmenistan |
| Turks And Caicos Islands |
| Tuvalu |
| Uganda |
| Ukraine |
| United Arab Emirates |
| United Kingdom |
| United States |
| United States Minor Outlying Islands |
| Uruguay |
| Uzbekistan |
| Vanuatu |
| Vatican City State (Holy See) |
| Venezuela |
| Vietnam |
| Virgin Islands (British) |
| Virgin Islands (US) |
| Wallis And Futuna Islands |
| Western Sahara |
| Yemen |
| Zambia |
| Zimbabwe |
### 章節名稱
YAMLResume 支援以下章节,每個都有一個章节名稱。
| 英語 |
| ------------ |
| Awards |
| Basics |
| Certificates |
| Education |
| Interests |
| Languages |
| Location |
| Profiles |
| Projects |
| Publications |
| References |
| Skills |
| Volunteer |
| Work |
### 技能級別
YAMLResume 為技能章节呈現以下技能級別選項。
| 英語 |
| ------------ |
| Novice |
| Beginner |
| Intermediate |
| Advanced |
| Expert |
| Master |
### 術語
YAMLResume 在我們的履歷模板中使用一些固定術語。
| 術語 | 描述 |
| -------- | ------------------- |
| Courses | 用於教育章節的課程 |
| Keywords | 用於工作、專案章節,其中呈現關鍵詞列表 |
| Score | 用於教育章節的學校成績/分數 |
# 法語
URL: (/zh-tw/docs/locale/french)
法語是印歐語系的一門[羅曼語族語言](https://zh.wikipedia.org/wiki/羅曼語族)。雖然它與英語共用拉丁字母,但在排版、標點符號和語法方面具有鮮明的特徵,在 YAMLResume 中需要特別注意。
## 語言學
### 字符集
法語使用基本的 26 個[拉丁字母](https://zh.wikipedia.org/wiki/拉丁字母),並在元音上使用四種變音符號(揚抑符、分音符、抑音符、銳音符),以及在 "ç" 中出現的軟音符。此外還有兩個合字 "œ" 和 "æ"。
| 特徵 | 英語字符集 | 法語字符集 |
| -------- | -------------- | ---------------------------------------------------------------------------------------------- |
| **字母表** | 26 個字母 (`a-z`) | 26 個字母加上帶有變音符號的字母和合字 |
| **變音符號** | 無 | 銳音符 (`é`)、抑音符 (`à`, `è`, `ù`)、揚抑符 (`â`, `ê`, `î`, `ô`, `û`)、分音符 (`ë`, `ï`, `ü`, `ÿ`)、軟音符 (`ç`) |
| **特殊字符** | 僅限基本拉丁字符 | 包括合字 `œ` (例如 "cœur") 和 `æ` (例如 "ex æquo") |
### 習語
#### 日期
在法語中,星期和月份不大寫(與英語不同)。例如,英語中的 "Sep 2021" 在法語中翻譯爲 "sept. 2021"。
YAMLResume 僅使用月份,因此有以下翻譯表:
| English | French |
| --------------- | ----------------- |
| January (Jan) | janvier (janv.) |
| February (Feb) | février (févr.) |
| March (Mar) | mars (mars) |
| April (Apr) | avril (avr.) |
| May (May) | mai (mai) |
| June (Jun) | juin (juin) |
| July (Jul) | juillet (juil.) |
| August (Aug) | août (août) |
| September (Sep) | septembre (sept.) |
| October (Oct) | octobre (oct.) |
| November (Nov) | novembre (nov.) |
| December (Dec) | décembre (déc.) |
#### 大寫
法語通常在標題和抬頭中使用句首大寫,但 YAMLResume 爲了與簡歷標準保持一致,提供了大寫的術語。
一個顯著的區別是,在標準法語中,用作形容詞的語言和國籍不大寫(例如 "je parle français"),但在 YAMLResume 的列表中引用名詞(語言本身)時,爲了保持一致性,它們是大寫的。
### 排版
#### 標點符號
法語在標點符號周圍的間距方面有特定的規則:
* **高位標點**:冒號 (`:`)、分號 (`;`)、感嘆號 (`!`) 和問號 (`?`) 之前需要一個不換行空格。
* **引號**:法語使用書名號 (`«` 和 `»`),並在其內部使用不換行空格(例如 `« Bonjour »`)。
* **小數點**:法語使用逗號作爲小數點(例如 3,14)。
* **千位分隔符**:法語使用不換行空格作爲千位分隔符(例如 1 000)。
YAMLResume 專門針對法語佈局處理冒號間距(例如 ` :`)。
## 翻譯
YAMLResume 對法語簡歷中使用的各種選項和術語採用以下翻譯。
### 學位
| English | French |
| ------------- | ------------------------------------ |
| Middle School | Collège |
| High School | Lycée |
| Diploma | Diplôme |
| Associate | Diplôme universitaire de technologie |
| Bachelor | Licence |
| Master | Master |
| Doctor | Doctorat |
### 語言
| English | French |
| ----------- | ----------- |
| Afrikaans | Afrikaans |
| Albanian | Albanais |
| Amharic | Amharique |
| Arabic | Arabe |
| Azerbaijani | Azéri |
| Belarusian | Biélorusse |
| Bengali | Bengali |
| Bhojpuri | Bhojpuri |
| Bulgarian | Bulgare |
| Burmese | Birman |
| Cantonese | Cantonais |
| Catalan | Catalan |
| Chinese | Chinois |
| Croatian | Croate |
| Czech | Tchèque |
| Danish | Danois |
| Dutch | Néerlandais |
| English | Anglais |
| Estonian | Estonien |
| Farsi | Persan |
| Filipino | Filipino |
| Finnish | Finnois |
| French | Français |
| German | Allemand |
| Greek | Grec |
| Gujarati | Gujarati |
| Hausa | Haoussa |
| Hebrew | Hébreu |
| Hindi | Hindi |
| Hungarian | Hongrois |
| Icelandic | Islandais |
| Igbo | Igbo |
| Indonesian | Indonésien |
| Irish | Irlandais |
| Italian | Italien |
| Japanese | Japonais |
| Javanese | Javanais |
| Kazakh | Kazakh |
| Khmer | Khmer |
| Korean | Coréen |
| Lahnda | Lahnda |
| Latvian | Letton |
| Lithuanian | Lituanien |
| Malay | Malais |
| Mandarin | Mandarin |
| Marathi | Marathi |
| Nepali | Népalais |
| Norwegian | Norvégien |
| Oromo | Oromo |
| Pashto | Pachto |
| Polish | Polonais |
| Portuguese | Portugisisk |
| Romanian | Roumain |
| Russian | Russe |
| Serbian | Serbe |
| Shona | Shona |
| Sinhala | Cingalais |
| Slovak | Slovaque |
| Slovene | Slovène |
| Somali | Somali |
| Spanish | Espagnol |
| Sundanese | Soundanais |
| Swahili | Swahili |
| Swedish | Suédois |
| Tagalog | Tagalog |
| Tamil | Tamoul |
| Telugu | Telugu |
| Thai | Thaï |
| Turkish | Turc |
| Ukrainian | Ukrainien |
| Urdu | Ourdou |
| Uzbek | Ouzbek |
| Vietnamese | Vietnamien |
| Yoruba | Yoruba |
| Zulu | Zoulou |
### 語言流利度
| English | French |
| -------------------------------- | ---------------------------- |
| Elementary Proficiency | Niveau élémentaire |
| Limited Working Proficiency | Niveau de travail limité |
| Minimum Professional Proficiency | Niveau professionnel minimum |
| Full Professional Proficiency | Niveau professionnel complet |
| Native or Bilingual Proficiency | Niveau natif ou bilingue |
### 地點(國家和地區)
| English | French |
| ------------------------------------ | ------------------------------------------ |
| Afghanistan | Afghanistan |
| Aland Islands | Îles Åland |
| Albania | Albanie |
| Algeria | Algérie |
| American Samoa | Samoa américaines |
| Andorra | Andorre |
| Angola | Angola |
| Anguilla | Anguilla |
| Antarctica | Antarctique |
| Antigua And Barbuda | Antigua-et-Barbuda |
| Argentina | Argentine |
| Armenia | Arménie |
| Aruba | Aruba |
| Australia | Australie |
| Austria | Autriche |
| Azerbaijan | Azerbaïdjan |
| Bahrain | Bahreïn |
| Bangladesh | Bangladesh |
| Barbados | Barbade |
| Belarus | Biélorussie |
| Belgium | Belgique |
| Belize | Belize |
| Benin | Bénin |
| Bermuda | Bermudes |
| Bhutan | Bhoutan |
| Bolivia | Bolivie |
| Bonaire, Sint Eustatius and Saba | Bonaire, Saint-Eustache et Saba |
| Bosnia and Herzegovina | Bosnie-Herzégovine |
| Botswana | Botswana |
| Bouvet Island | Île Bouvet |
| Brazil | Brésil |
| British Indian Ocean Territory | Territoire britannique de l'océan Indien |
| Brunei | Brunéi |
| Bulgaria | Bulgarie |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Cambodge |
| Cameroon | Cameroun |
| Canada | Canada |
| Cape Verde | Cap-Vert |
| Cayman Islands | Îles Caïmans |
| Central African Republic | République centrafricaine |
| Chad | Tchad |
| Chile | Chili |
| China | Chine |
| Christmas Island | Île Christmas |
| Cocos (Keeling) Islands | Îles Cocos (Keeling) |
| Colombia | Colombie |
| Comoros | Comores |
| Congo | Congo |
| Cook Islands | Îles Cook |
| Costa Rica | Costa Rica |
| Cote D'Ivoire (Ivory Coast) | Côte d'Ivoire |
| Croatia | Croatie |
| Cuba | Cuba |
| Curaçao | Curaçao |
| Cyprus | Chypre |
| Czech Republic | République tchèque |
| Democratic Republic of the Congo | République démocratique du Congo |
| Denmark | Danemark |
| Djibouti | Djibouti |
| Dominica | Dominique |
| Dominican Republic | République dominicaine |
| East Timor | Timor oriental |
| Ecuador | Équateur |
| Egypt | Égypte |
| El Salvador | Salvador |
| Equatorial Guinea | Guinée équatoriale |
| Eritrea | Érythrée |
| Estonia | Estonie |
| Ethiopia | Éthiopie |
| Falkland Islands | Îles Malouines |
| Faroe Islands | Îles Féroé |
| Fiji Islands | Fidji |
| Finland | Finlande |
| France | France |
| French Guiana | Guyane française |
| French Polynesia | Polynésie française |
| French Southern Territories | Terres australes françaises |
| Gabon | Gabon |
| Gambia The | Gambie |
| Georgia | Géorgie |
| Germany | Allemagne |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Grèce |
| Greenland | Groenland |
| Grenada | Grenade |
| Guadeloupe | Guadeloupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernesey et Alderney |
| Guinea | Guinée |
| Guinea-Bissau | Guinée-Bissau |
| Guyana | Guyana |
| Haiti | Haïti |
| Heard Island and McDonald Islands | Îles Heard-et-MacDonald |
| Honduras | Honduras |
| Hong Kong S.A.R. | Hong Kong S.A.R. |
| Hungary | Hongrie |
| Iceland | Islande |
| India | Inde |
| Indonesia | Indonésie |
| Iran | Iran |
| Iraq | Irak |
| Ireland | Irlande |
| Israel | Israël |
| Italy | Italie |
| Jamaica | Jamaïque |
| Japan | Japon |
| Jersey | Jersey |
| Jordan | Jordanie |
| Kazakhstan | Kazakhstan |
| Kenya | Kenya |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Koweït |
| Kyrgyzstan | Kirghizistan |
| Laos | Laos |
| Latvia | Lettonie |
| Lebanon | Liban |
| Lesotho | Lesotho |
| Liberia | Libéria |
| Libya | Libye |
| Liechtenstein | Liechtenstein |
| Lithuania | Lituanie |
| Luxembourg | Luxembourg |
| Macau S.A.R. | Macao S.A.R. |
| Madagascar | Madagascar |
| Malawi | Malawi |
| Malaysia | Malaisie |
| Maldives | Maldives |
| Mali | Mali |
| Malta | Malte |
| Man (Isle of) | Île de Man |
| Marshall Islands | Îles Marshall |
| Martinique | Martinique |
| Mauritania | Mauritanie |
| Mauritius | Maurice |
| Mayotte | Mayotte |
| Mexico | Mexique |
| Micronesia | Micronésie |
| Moldova | Moldavie |
| Monaco | Monaco |
| Mongolia | Mongolie |
| Montenegro | Monténégro |
| Montserrat | Montserrat |
| Morocco | Maroc |
| Mozambique | Mozambique |
| Myanmar | Myanmar |
| Namibia | Namibie |
| Nauru | Nauru |
| Nepal | Népal |
| Netherlands | Pays-Bas |
| New Caledonia | Nouvelle-Calédonie |
| New Zealand | Nouvelle-Zélande |
| Nicaragua | Nicaragua |
| Niger | Niger |
| Nigeria | Nigéria |
| Niue | Niue |
| Norfolk Island | Île Norfolk |
| North Korea | Corée du Nord |
| North Macedonia | Macédoine du Nord |
| Northern Mariana Islands | Îles Mariannes du Nord |
| Norway | Norvège |
| Oman | Oman |
| Pakistan | Pakistan |
| Palau | Palaos |
| Palestinian Territory Occupied | Palestine |
| Panama | Panama |
| Papua new Guinea | Papouasie-Nouvelle-Guinée |
| Paraguay | Paraguay |
| Peru | Pérou |
| Philippines | Philippines |
| Pitcairn Island | Îles Pitcairn |
| Poland | Pologne |
| Portugal | Portugal |
| Puerto Rico | Porto Rico |
| Qatar | Qatar |
| Reunion | La Réunion |
| Romania | Roumanie |
| Russia | Russie |
| Rwanda | Rwanda |
| Saint Helena | Sainte-Hélène |
| Saint Kitts And Nevis | Saint-Christophe-et-Niévès |
| Saint Lucia | Sainte-Lucie |
| Saint Pierre and Miquelon | Saint-Pierre-et-Miquelon |
| Saint Vincent And The Grenadines | Saint-Vincent-et-les-Grenadines |
| Saint-Barthelemy | Saint-Barthélemy |
| Saint-Martin (French part) | Saint-Martin |
| Samoa | Samoa |
| San Marino | Saint-Marin |
| Sao Tome and Principe | Sao Tomé-et-Principe |
| Saudi Arabia | Arabie saoudite |
| Senegal | Sénégal |
| Serbia | Serbie |
| Seychelles | Seychelles |
| Sierra Leone | Sierra Leone |
| Singapore | Singapour |
| Sint Maarten (Dutch part) | Saint-Martin |
| Slovakia | Slovaquie |
| Slovenia | Slovénie |
| Solomon Islands | Îles Salomon |
| Somalia | Somalie |
| South Africa | Afrique du Sud |
| South Georgia | Géorgie du Sud-et-les Îles Sandwich du Sud |
| South Korea | Corée du Sud |
| South Sudan | Soudan du Sud |
| Spain | Espagne |
| Sri Lanka | Sri Lanka |
| Sudan | Soudan |
| Suriname | Suriname |
| Svalbard And Jan Mayen Islands | Svalbard et Jan Mayen |
| Swaziland | Swaziland |
| Sweden | Suède |
| Switzerland | Suisse |
| Syria | Syrie |
| Taiwan | Taïwan |
| Tajikistan | Tadjikistan |
| Tanzania | Tanzanie |
| Thailand | Thaïlande |
| The Bahamas | Bahamas |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinité-et-Tobago |
| Tunisia | Tunisie |
| Türkiye | Turquie |
| Turkmenistan | Turkménistan |
| Turks And Caicos Islands | Îles Turques-et-Caïques |
| Tuvalu | Tuvalu |
| Uganda | Ouganda |
| Ukraine | Ukraine |
| United Arab Emirates | Émirats arabes unis |
| United Kingdom | Royaume-Uni |
| United States | États-Unis |
| United States Minor Outlying Islands | Îles mineures éloignées des États-Unis |
| Uruguay | Uruguay |
| Uzbekistan | Ouzbékistan |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Vatican |
| Venezuela | Venezuela |
| Vietnam | Viêt Nam |
| Virgin Islands (British) | Îles Vierges britanniques |
| Virgin Islands (US) | Îles Vierges américaines |
| Wallis And Futuna Islands | Wallis-et-Futuna |
| Western Sahara | Sahara occidental |
| Yemen | Yémen |
| Zambia | Zambie |
| Zimbabwe | Zimbabwe |
### 章節名稱
| English | French |
| ------------ | -------------------------- |
| Awards | Récompenses |
| Basics | Informations de base |
| Certificates | Certificats |
| Education | Formation |
| Interests | Centres d'intérêt |
| Languages | Langues |
| Projects | Projets |
| Publications | Publications |
| References | Références |
| Skills | Compétences |
| Volunteer | Bénévolat |
| Work | Expérience professionnelle |
### 技能等級
| English | French |
| ------------ | ------------- |
| Novice | Novice |
| Beginner | Débutant |
| Intermediate | Intermédiaire |
| Advanced | Avancé |
| Expert | Expert |
| Master | Maître |
### 選項和術語
| English | French |
| -------- | --------- |
| Courses | Cours |
| Keywords | Mots-clés |
| Score | Score |
# 德語
URL: (/zh-tw/docs/locale/german)
德語 (Deutsch) 是一種[西日耳曼語言](https://zh.wikipedia.org/wiki/%E8%A5%BF%E6%97%A5%E8%80%B3%E6%9B%BC%E8%AF%AD%E6%94%AF),主要在中歐使用。它是德國、奧地利、瑞士、義大利南蒂羅爾、比利時德語區和列支敦斯登使用最廣泛的官方或共同官方語言。
## 語言學
### 字元集
| 功能 | 英語字元集 | 德語字元集 |
| -------- | ------------- | ----------------------- |
| **字母表** | 26個字母 (`a-z`) | 26個字母加上帶變音符號的字母和 Eszett |
| **變音符號** | 無 | 變音符號 (`ä`, `ö`, `ü`) |
| **特殊字元** | 限於基本拉丁字元 | 包括 Eszett `ß` |
## 習語
### 日期
德語日期格式為日、月、年。月份名稱首字母大寫。
| 英語 | 德語 |
| --------- | --------- |
| January | Januar |
| February | Februar |
| March | März |
| April | April |
| May | Mai |
| June | Juni |
| July | Juli |
| August | August |
| September | September |
| October | Oktober |
| November | November |
| December | Dezember |
### 地點
在德語地址中,門牌號通常在街道名稱之後,郵遞區號在城市名稱之前。
以下是德語中的典型順序:
1. **街道和門牌號**:街道名稱在前,緊接著是門牌號(例如 "Musterstraße 123")。
2. **郵遞區號和城市**:5位數的郵遞區號 (*Postleitzahl* 或 PLZ) 位於城市名稱*之前*(例如 "10115 Berlin")。
3. **州**:與某些其他國家不同,聯邦州 (*Bundesland*) 在標準地址中通常省略。
4. **國家**:國家名稱位於最後一行。
### 大寫
德語在主要語言中是獨特的,因為它將**所有名詞**首字母大寫,無論它們是專有名詞還是普通名詞(例如 *Haus*, *Apfel*, *Freiheit*)。
其他詞性,如形容詞和動詞,通常小寫,除非它們被名詞化(用作名詞)或出現在句首。
此外,正式的「您」 (*Sie*) 及其所有格 (*Ihr*) 在信函和正式寫作中始終大寫。
### 排版
#### 標點符號
德語標點符號規則在幾個方面與英語有顯著不同:
* **引號**:
* 標準德語風格 ("Gänsefüßchen") 使用低位開引號和高位關引號:`„` (U+201E) 和 `“` (U+201C)。例如:„Zitat“。
* 另一種風格(常用於書籍)使用指向**內部**的角引號:`»` (U+00BB) 和 `«` (U+00AB)。例如:»Zitat«。(與法語 `« Zitat »` 形成對比)。
* **撇號**:
* 它通常**不**用於所有格 's'(例如 "Deutschland**s** Hauptstadt",而不是 "Deutschland's")。
* 它用於表示省略的字母(例如 "Wie geht’s?")。
* **逗號**:
* 逗號必須用於分隔從句 (*Nebensätze*) 和主句。
* **數字**:
* **小數點**:德語使用逗號(例如 `12,34`)。
* **千位分隔符**:德語使用點或空格(例如 `1.234` 或 `1 234`)。
## 翻譯
YAMLResume 對德語履歷中使用的各種選項和術語採用以下翻譯。
### 學位
| 英語 | 德語 |
| ------------- | ---------------------- |
| Middle School | Mittlere Reife |
| High School | Abitur |
| Diploma | Diplom |
| Associate | Fachhochschulabschluss |
| Bachelor | Bachelor |
| Master | Master |
| Doctor | Doktor |
| Afrikaans | Afrikaans |
### 語言
| 英語 | 德語 |
| ----------- | ----------------- |
| Afrikaans | Afrikaans |
| Albanian | Albanisch |
| Amharic | Amharisch |
| Arabic | Arabisch |
| Azerbaijani | Aserbaidschanisch |
| Belarusian | Belarussisch |
| Bengali | Bengalisch |
| Bhojpuri | Bhojpuri |
| Bulgarian | Bulgarisch |
| Burmese | Birmanisch |
| Cantonese | Kantonesisch |
| Catalan | Katalanisch |
| Chinese | Chinesisch |
| Croatian | Kroatisch |
| Czech | Tschechisch |
| Danish | Dänisch |
| Dutch | Niederländisch |
| 英語 | Englisch |
| Estonian | Estnisch |
| Farsi | Farsi |
| Filipino | Philippinisch |
| Finnish | Finnisch |
| French | Französisch |
| 德語 | Deutsch |
| Greek | Griechisch |
| Gujarati | Gujarati |
| Hausa | Hausa |
| Hebrew | Hebräisch |
| Hindi | Hindi |
| Hungarian | Ungarisch |
| Icelandic | Isländisch |
| Igbo | Igbo |
| Indonesian | Indonesisch |
| Irish | Irisch |
| Italian | Italienisch |
| Japanese | Japanisch |
| Javanese | Javanisch |
| Kazakh | Kasachisch |
| Khmer | Khmer |
| Korean | Koreanisch |
| Lahnda | Lahnda |
| Latvian | Lettisch |
| Lithuanian | Litauisch |
| Malay | Malaiisch |
| Mandarin | Mandarin |
| Marathi | Marathi |
| Nepali | Nepalesisch |
| Norwegian | Norwegisch |
| Oromo | Oromo |
| Pashto | Paschtu |
| Polish | Polnisch |
| Portuguese | Portugiesisch |
| Romanian | Rumänisch |
| Russian | Russisch |
| Serbian | Serbisch |
| Shona | Shona |
| Sinhala | Singhalesisch |
| Slovak | Slowakisch |
| Slovene | Slowenisch |
| Somali | Somalisch |
| Spanish | Spanisch |
| Sundanese | Sundanesisch |
| Swahili | Suaheli |
| Swedish | Schwedisch |
| Tagalog | Tagalog |
| Tamil | Tamil |
| Telugu | Telugu |
| Thai | Thailändisch |
| Turkish | Türkisch |
| Ukrainian | Ukrainisch |
| Urdu | Urdu |
| Uzbek | Usbekisch |
| Vietnamese | Vietnamesisch |
| Yoruba | Yoruba |
| Zulu | Zulu |
### 語言流利度
| 英語 | 德語 |
| -------------------------------- | ------------------------------- |
| Elementary Proficiency | Grundkenntnisse |
| Limited Working Proficiency | Gute Kenntnisse |
| Minimum Professional Proficiency | Berufliche Grundkenntnisse |
| Full Professional Proficiency | Verhandlungssichere Kenntnisse |
| Native or Bilingual Proficiency | Muttersprache oder zweisprachig |
### 地點(國家和地區)
| 英語 | 德語 |
| --------------------------------- | ----------------------------------------- |
| Afghanistan | Afghanistan |
| Aland Islands | Åland |
| Albania | Albanien |
| Algeria | Algerien |
| American Samoa | Amerikanisch-Samoa |
| Andorra | Andorra |
| Angola | Angola |
| Anguilla | Anguilla |
| Antarctica | Antarktis |
| Antigua And Barbuda | Antigua und Barbuda |
| Argentina | Argentinien |
| Armenia | Armenien |
| Aruba | Aruba |
| Australia | Australien |
| Austria | Österreich |
| Azerbaijan | Aserbaidschan |
| Bahrain | Bahrain |
| Bangladesh | Bangladesch |
| Barbados | Barbados |
| Belarus | Belarus |
| Belgium | Belgien |
| Belize | Belize |
| Benin | Benin |
| Bermuda | Bermuda |
| Bhutan | Bhutan |
| Bolivia | Bolivien |
| Bonaire, Sint Eustatius and Saba | Bonaire, Sint Eustatius und Saba |
| Bosnia and Herzegovina | Bosnien und Herzegowina |
| Botswana | Botswana |
| Bouvet Island | Bouvetinsel |
| Brazil | Brasilien |
| British Indian Ocean Territory | Britisches Territorium im Indischen Ozean |
| Brunei | Brunei |
| Bulgaria | Bulgarien |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Kambodscha |
| Cameroon | Kamerun |
| Canada | Kanada |
| Cape Verde | Kap Verde |
| Cayman Islands | Kaimaninseln |
| Central African Republic | Zentralafrikanische Republik |
| Chad | Tschad |
| Chile | Chile |
| China | China |
| Christmas Island | Weihnachtsinsel |
| Cocos (Keeling) Islands | Kokosinseln |
| Colombia | Kolumbien |
| Comoros | Komoren |
| Congo | Kongo |
| Cook Islands | Cookinseln |
| Costa Rica | Costa Rica |
| Croatia | Kroatien |
| Cuba | Kuba |
| Curaçao | Curaçao |
| Cyprus | Zypern |
| Czech Republic | Tschechien |
| Democratic Republic of the Congo | Demokratische Republik Kongo |
| Denmark | Dänemark |
| Djibouti | Dschibuti |
| Dominica | Dominica |
| Dominican Republic | Dominikanische Republik |
| East Timor | Osttimor |
| Ecuador | Ecuador |
| Egypt | Ägypten |
| El Salvador | El Salvador |
| Equatorial Guinea | Äquatorialguinea |
| Eritrea | Eritrea |
| Estonia | Estland |
| Ethiopia | Äthiopien |
| Falkland Islands | Falklandinseln |
| Faroe Islands | Färöer |
| Fiji Islands | Fidschi |
| Finland | Finnland |
| France | Frankreich |
| French Guiana | Französisch-Guayana |
| French Polynesia | Französisch-Polynesien |
| French Southern Territories | Französische Süd- und Antarktisgebiete |
| Gabon | Gabun |
| Gambia The | Gambia |
| Georgia | Georgien |
| 德語y | Deutschland |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Griechenland |
| Greenland | Grönland |
| Grenada | Grenada |
| Guadeloupe | Guadeloupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernsey und Alderney |
| Guinea | Guinea |
| Guinea-Bissau | Guinea-Bissau |
| Guyana | Guyana |
| Haiti | Haiti |
| Heard Island and McDonald Islands | Heard und McDonaldinseln |
| Honduras | Honduras |
| Hong Kong | Hongkong |
| Hungary | Ungarn |
| Iceland | Island |
| India | Indien |
| Indonesia | Indonesien |
| Iran | Iran |
| Iraq | Irak |
| Ireland | Irland |
| Israel | Israel |
| Italy | Italien |
| Jamaica | Jamaika |
| Japan | Japan |
| Jersey | Jersey |
| Jordan | Jordanien |
| Kazakhstan | Kasachstan |
| Kenya | Kenia |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Kuwait |
| Kyrgyzstan | Kirgisistan |
| Laos | Laos |
| Latvia | Lettland |
| Lebanon | Libanon |
| Lesotho | Lesotho |
| Liberia | Liberia |
| Libya | Libyen |
| Liechtenstein | Liechtenstein |
| Lithuania | Litauen |
| Luxembourg | Luxemburg |
| Macau | Macau |
| Madagascar | Madagaskar |
| Malawi | Malawi |
| Malaysia | Malaysia |
| Maldives | Malediven |
| Mali | Mali |
| Malta | Malta |
| Man (Isle of) | Isle of Man |
| Marshall Islands | Marshallinseln |
| Martinique | Martinique |
| Mauritania | Mauretanien |
| Mauritius | Mauritius |
| Mayotte | Mayotte |
| Mexico | Mexiko |
| Micronesia | Mikronesien |
| Moldova | Moldawien |
| Monaco | Monaco |
| Mongolia | Mongolei |
| Montenegro | Montenegro |
| Montserrat | Montserrat |
| Morocco | Marokko |
| Mozambique | Mosambik |
| Myanmar | Myanmar |
| Namibia | Namibia |
| Nauru | Nauru |
| Nepal | Nepal |
| Netherlands | Niederlande |
| New Caledonia | Neukaledonien |
| New Zealand | Neuseeland |
| Nicaragua | Nicaragua |
| Niger | Niger |
| Nigeria | Nigeria |
| Niue | Niue |
| Norfolk Island | Norfolkinsel |
| North Korea | Nordkorea |
| North Macedonia | Nordmazedonien |
| Northern Mariana Islands | Nördliche Marianen |
| Norway | Norwegen |
| Oman | Oman |
| Pakistan | Pakistan |
| Palau | Palau |
| Palestinian Territory Occupied | Palästinensische Gebiete |
| Panama | Panama |
| Papua new Guinea | Papua-Neuguinea |
| Paraguay | Paraguay |
| Peru | Peru |
| Philippines | Philippinen |
| Pitcairn Island | Pitcairninseln |
| Poland | Polen |
| Portugal | Portugal |
| Puerto Rico | Puerto Rico |
| Qatar | Katar |
| Reunion | Réunion |
| Romania | Rumänien |
| Russia | Russland |
| Rwanda | Ruanda |
| Saint Helena | St. Helena |
| Saint Kitts And Nevis | St. Kitts und Nevis |
| Saint Lucia | St. Lucia |
| Saint Pierre and Miquelon | Saint-Pierre und Miquelon |
| Saint Vincent And The Grenadines | St. Vincent und die Grenadinen |
| Saint-Barthelemy | Saint-Barthélemy |
| Saint-Martin (French part) | Saint-Martin (französischer Teil) |
| Samoa | Samoa |
| San Marino | San Marino |
| Sao Tome and Principe | São Tomé und Príncipe |
| Saudi Arabia | Saudi-Arabien |
| Senegal | Senegal |
| Serbia | Serbien |
| Seychelles | Seychellen |
| Sierra Leone | Sierra Leone |
| Singapore | Singapur |
| Sint Maarten (Dutch part) | Sint Maarten (niederländischer Teil) |
| Slovakia | Slowakei |
| Slovenia | Slowenien |
| Solomon Islands | Salomonen |
| Somalia | Somalia |
| South Africa | Südafrika |
| South Georgia | Südgeorgien |
| South Korea | Südkorea |
| South Sudan | Südsudan |
| Spain | Spanien |
| Sri Lanka | Sri Lanka |
| Sudan | Sudan |
| Suriname | Suriname |
| Svalbard And Jan Mayen Islands | Spitzbergen und Jan Mayen |
| Swaziland | Eswatini |
| Sweden | Schweden |
| Switzerland | Schweiz |
| Syria | Syrien |
| Taiwan | Taiwan |
| Tajikistan | Tadschikistan |
| Tanzania | Tansania |
| Thailand | Thailand |
| The Bahamas | Bahamas |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinidad und Tobago |
| Tunisia | Tunesien |
| Türkiye | Türkei |
| Turkmenistan | Turkmenistan |
| Turks And Caicos Islands | Turks- und Caicosinseln |
| Tuvalu | Tuvalu |
| Uganda | Uganda |
| Ukraine | Ukraine |
| United Arab Emirates | Vereinigte Arabische Emirate |
| United Kingdom | Vereinigtes Königreich |
| United States | Vereinigte Staaten |
| Uruguay | Uruguay |
| Uzbekistan | Usbekistan |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Vatikanstadt (Heiliger Stuhl) |
| Venezuela | Venezuela |
| Vietnam | Vietnam |
| Virgin Islands (British) | Britische Jungferninseln |
| Virgin Islands (US) | Amerikanische Jungferninseln |
| Wallis And Futuna Islands | Wallis und Futuna |
| Western Sahara | Westsahara |
| Yemen | Jemen |
| Zambia | Sambia |
| Zimbabwe | Simbabwe |
### 章節名稱
| 英語 | 德語 |
| ------------ | ------------------------- |
| awards | Auszeichnungen |
| basics | Basisinformationen |
| certificates | Zertifikate |
| education | Ausbildung |
| interests | Interessen |
| languages | Sprachen |
| location | Ort |
| profiles | Profile |
| projects | Projekte |
| publications | Veröffentlichungen |
| references | Referenzen |
| skills | Fähigkeiten |
| volunteer | Ehrenamtliche Tätigkeiten |
| work | Berufserfahrung |
### 技能水平
| 英語 | 德語 |
| ------------ | --------------- |
| Novice | Einsteiger |
| Beginner | Anfänger |
| Intermediate | Fortgeschritten |
| Advanced | Erfahren |
| Expert | Experte |
| Master | Spezialist |
### 術語
| 術語 | 德語 |
| -------- | --------------- |
| courses | Kurse |
| keywords | Schlüsselwörter |
| score | Punkte |
# 多語言
URL: (/zh-tw/docs/locale)
每個履歷都有特定的語言。好消息是 YAMLResume 設計為開箱即用地支援多種語言。
從技術上講,支援多語言需要做兩件事:
* **[國際化](https://phrase.com/blog/posts/internationalization-vs-localization/#what-is-internationalization-i18n)**:
通常縮寫為"i18n"(其中數字 18 代表"i"和"n"之間的 18 個字元),基本上是一套允許產品支援多語言的實踐,i18n 主要包括將產品翻譯成多種語言並根據使用者的選擇動態切換語言
* **[本地化](https://phrase.com/blog/posts/internationalization-vs-localization/#what-is-localization-l10n)**:
通常縮寫為"l10n"(數字 10 代表"l"和"n"之間的字元),它超越了單純的翻譯,而是將產品適應目標語言的文化特色。
在實踐中,i18n 總是先來,l10n 隨後。
對於所有支援的語言,我們從設計和實現的角度關注以下方面:
* **[語言學](https://en.wikipedia.org/wiki/Linguistics)**:語言的理論方面,包括但不限於語言的字符集、語法和語法、歷史等。
* **習語**:語言通常遵循的常見約定和習語。
* **[排版](https://en.wikipedia.org/wiki/Typesetting)**:語言經常遵循的最佳排版實踐,如斜體、文字數字、字體樣式、字距調整、連字等。
* **翻譯**:YAMLResume 生成的履歷使用的固定術語和選項的單純翻譯。
## 支援的語言
YAMLResume 需要被告知履歷是用哪種語言撰寫的,為此,您需要在履歷中設定頂層的 `locale` 鍵:
```yml lineNumbers
---
content:
# ...
locale: # [!code highlight]
language: en # [!code highlight]
layouts:
- engine: markdown
# ...
```
您可以使用 `yamlresume languages list` 列出所有支援的語言。在撰寫本文時,YAMLResume 支援以下語言:
```console
$ yamlresume languages list
| locale.language | Language Name | 1:03:48 PM
| --------------- | ------------------------------- |
| en | English |
| zh-hans | Simplified Chinese |
| zh-hant-hk | Traditional Chinese (Hong Kong) |
| zh-hant-tw | Traditional Chinese (Taiwan) |
| es | Spanish |
| fr | French |
| no | Norwegian |
| nl | Dutch |
| ja | Japanese |
| de | German |
```
查看以下頁面了解每種語言的更多詳細資訊:
## 術語
我們在整個章節中使用了以下術語:
* **拉丁文字語言**:使用[拉丁文字](https://en.wikipedia.org/wiki/Latin_script)作為[書寫系統](https://en.wikipedia.org/wiki/Writing_system)的語言。大多數[日耳曼語言](https://en.wikipedia.org/wiki/Germanic_languages)、[羅曼語言](https://en.wikipedia.org/wiki/Romance_languages)和許多其他語言如[印尼語](https://en.wikipedia.org/wiki/Indonesian_language)使用拉丁文字作為主要書寫系統。
* **[CJK](https://en.wikipedia.org/wiki/CJK_characters)**:中文、日文和韓文語言。
* **[字符集](https://www.creatopy.com/blog/what-is-a-character-set/)**:特定字體或字體中可用的字符、符號、字形和標點符號的完整集合。
* **[字形](https://en.wikipedia.org/wiki/Glyph)**:排版中字符的特定形狀、設計或表示。
* **[連字符](https://en.wikipedia.org/wiki/Syllabification)**,在行尾斷詞以改善文字整體外觀和可讀性的做法。
* **[對齊](https://en.wikipedia.org/wiki/Typographic_alignment#Justified)**:
文字在塊內的對齊,使其與左右邊距齊平,通常通過調整單詞和字母之間的間距來實現,在每行文字中創建統一的外觀。
* **[字距調整](https://en.wikipedia.org/wiki/Kerning)**:在比例字體中調整字符間距的過程,通常是為了達到視覺上令人愉悅的結果。
* **[連字](https://en.wikipedia.org/wiki/Ligature_\(writing\))**:將兩個或多個字母連接在一起的字形,以增強文字的視覺吸引力並獲得更好的可讀性。
# 日語
URL: (/zh-tw/docs/locale/japanese)
日語(日本語)是一種主要在日本使用的東亞語言。它是日琉語系的一員。
## 語言學
### 字符集
日語書寫系統結合使用了三種文字:漢字(採用的中國字符)、平假名和片假名。拉丁字母(羅馬字)也用於特定目的。
### CJK 支援
YAMLResume 自動檢測日語為 CJK 語言並應用特定的佈局調整,例如使用「Lining」樣式的數字而不是「OldStyle」以更好地匹配 CJK 字形。
## 慣用語
### 日期
日語日期格式為年、月、日順序,使用特定的量詞。
| 英語 | 日語 |
| --------- | --- |
| January | 1月 |
| February | 2月 |
| March | 3月 |
| April | 4月 |
| May | 5月 |
| June | 6月 |
| July | 7月 |
| August | 8月 |
| September | 9月 |
| October | 10月 |
| November | 11月 |
| December | 12月 |
日期範圍使用全形波浪號(U+FF5E)作為分隔符(例如,2016年10月~2018年1月)。
### 地點
在生成的履歷中,日本地址通常遵循國家、地區(都道府縣)、城市、地址,最後是郵遞區號的順序。
注意:雖然標準的日本地址通常以郵遞區號(〒)開頭,但 YAMLResume 目前將其附加在末尾,以與生成的結構變數保持一致。
## 排版
### 標點符號
日語使用全形標點符號。
* **逗號**: 使用 `、` (表意逗號, U+3001) 代替拉丁逗號 `,`。
* **冒號**: 使用 `:` (全形冒號, U+FF1A) 代替拉丁冒號 `:`。
* **分隔符**: `、` 也用作列表分隔符。
## 翻譯
YAMLResume 對日本履歷中使用的各種選項和術語採用以下翻譯。
### 學位
| 英語 | 日語 |
| ------------- | ----------- |
| Middle School | 中学校 |
| High School | 高等学校 |
| Diploma | 短期大学・高等専門学校 |
| Associate | 準学士 |
| Bachelor | 学士 |
| Master | 修士 |
| Doctor | 博士 |
### 語言
| 英語 | 日語 |
| ----------- | --------- |
| Afrikaans | アフリカーンス語 |
| Albanian | アルバニア語 |
| Amharic | アムハラ語 |
| Arabic | アラビア語 |
| Azerbaijani | アゼルバイジャン語 |
| Belarusian | ベラルーシ語 |
| Bengali | ベンガル語 |
| Bhojpuri | ボージュプリー語 |
| Bulgarian | ブルガリア語 |
| Burmese | ビルマ語 |
| Cantonese | 広東語 |
| Catalan | カタロニア語 |
| Chinese | 中国語 |
| Croatian | クロアチア語 |
| Czech | チェコ語 |
| Danish | デンマーク語 |
| Dutch | オランダ語 |
| English | 英語 |
| Estonian | エストニア語 |
| Farsi | ペルシャ語 |
| Filipino | フィリピン語 |
| Finnish | フィンランド語 |
| French | フランス語 |
| German | ドイツ語 |
| Greek | ギリシャ語 |
| Gujarati | グジャラート語 |
| Hausa | ハウサ語 |
| Hebrew | ヘブライ語 |
| Hindi | ヒンディー語 |
| Hungarian | ハンガリー語 |
| Icelandic | アイスランド語 |
| Igbo | イボ語 |
| Indonesian | インドネシア語 |
| Irish | アイルランド語 |
| Italian | イタリア語 |
| Japanese | 日本語 |
| Javanese | ジャワ語 |
| Kazakh | カザフ語 |
| Khmer | クメール語 |
| Korean | 韓国語 |
| Lahnda | ラーンダー語 |
| Latvian | ラトビア語 |
| Lithuanian | リトアニア語 |
| Malay | マレー語 |
| Mandarin | 標準中国語 |
| Marathi | マラーティー語 |
| Nepali | ネパール語 |
| Norwegian | ノルウェー語 |
| Oromo | オロモ語 |
| Pashto | パシュトー語 |
| Polish | ポーランド語 |
| Portuguese | ポルトガル語 |
| Romanian | ルーマニア語 |
| Russian | ロシア語 |
| Serbian | セルビア語 |
| Shona | ショナ語 |
| Sinhala | シンハラ語 |
| Slovak | スロバキア語 |
| Slovene | スロベニア語 |
| Somali | ソマリ語 |
| Spanish | スペイン語 |
| Sundanese | スンダ語 |
| Swahili | スワヒリ語 |
| Swedish | スウェーデン語 |
| Tagalog | タガログ語 |
| Tamil | タミル語 |
| Telugu | テルグ語 |
| Thai | タイ語 |
| Turkish | トルコ語 |
| Ukrainian | ウクライナ語 |
| Urdu | ウルドゥー語 |
| Uzbek | ウズベク語 |
| Vietnamese | ベトナム語 |
| Yoruba | ヨルバ語 |
| Zulu | ズールー語 |
### 語言流利度
| 英語 | 日語 |
| -------------------------------- | ------------ |
| Elementary Proficiency | 初級レベル |
| Limited Working Proficiency | 限定的な実務レベル |
| Minimum Professional Proficiency | 実務レベル |
| Full Professional Proficiency | 完全な実務レベル |
| Native or Bilingual Proficiency | ネイティブ・母国語レベル |
### 地點(國家和地區)
| 英語 | 日語 |
| ------------------------------------ | --------------------- |
| Afghanistan | アフガニスタン |
| Aland Islands | オーランド諸島 |
| Albania | アルバニア |
| Algeria | アルジェリア |
| American Samoa | 米領サモア |
| Andorra | アンドラ |
| Angola | アンゴラ |
| Anguilla | アンギラ |
| Antarctica | 南極 |
| Antigua And Barbuda | アンティグア・バーブーダ |
| Argentina | アルゼンチン |
| Armenia | アルメニア |
| Aruba | アルバ |
| Australia | オーストラリア |
| Austria | オーストリア |
| Azerbaijan | アゼルバイジャン |
| Bahrain | バーレーン |
| Bangladesh | バングラデシュ |
| Barbados | バルバドス |
| Belarus | ベラルーシ |
| Belgium | ベルギー |
| Belize | ベリーズ |
| Benin | ベナン |
| Bermuda | バミューダ |
| Bhutan | ブータン |
| Bolivia | ボリビア |
| Bosnia and Herzegovina | ボスニア・ヘルツェゴビナ |
| Botswana | ボツワナ |
| Bouvet Island | ブーベ島 |
| Brazil | ブラジル |
| British Indian Ocean Territory | 英領インド洋地域 |
| Brunei | ブルネイ |
| Bulgaria | ブルガリア |
| Burkina Faso | ブルキナファソ |
| Burundi | ブルンジ |
| Cambodia | カンボジア |
| Cameroon | カメルーン |
| Canada | カナダ |
| Cape Verde | カーボベルデ |
| Cayman Islands | ケイマン諸島 |
| Central African Republic | 中央アフリカ共和国 |
| Chad | チャド |
| Chile | チリ |
| China | 中国 |
| Christmas Island | クリスマス島 |
| Cocos (Keeling) Islands | ココス諸島 |
| Colombia | コロンビア |
| Comoros | コモロ |
| Congo | コンゴ共和国 |
| Cook Islands | クック諸島 |
| Costa Rica | コスタリカ |
| Croatia | クロアチア |
| Cuba | キューバ |
| Curaçao | キュラソー |
| Cyprus | キプロス |
| Czech Republic | チェコ |
| Democratic Republic of the Congo | コンゴ民主共和国 |
| Denmark | デンマーク |
| Djibouti | ジブチ |
| Dominica | ドミニカ国 |
| Dominican Republic | ドミニカ共和国 |
| East Timor | 東ティモール |
| Ecuador | エクアドル |
| Egypt | エジプト |
| El Salvador | エルサルバドル |
| Equatorial Guinea | 赤道ギニア |
| Eritrea | エリトリア |
| Estonia | エストニア |
| Ethiopia | エチオピア |
| Falkland Islands | フォークランド諸島 |
| Faroe Islands | フェロー諸島 |
| Fiji Islands | フィジー |
| Finland | フィンランド |
| France | フランス |
| French Guiana | 仏領ギアナ |
| French Polynesia | 仏領ポリネシア |
| French Southern Territories | フランス領南方・南極地域 |
| Gabon | ガボン |
| Gambia The | ガンビア |
| Georgia | ジョージア |
| Germany | ドイツ |
| Ghana | ガーナ |
| Gibraltar | ジブラルタル |
| Greece | ギリシャ |
| Greenland | グリーンランド |
| Grenada | グレナダ |
| Guadeloupe | グアドループ |
| Guam | グアム |
| Guatemala | グアテマラ |
| Guernsey and Alderney | ガーンジー |
| Guinea | ギニア |
| Guinea-Bissau | ギニアビサウ |
| Guyana | ガイアナ |
| Haiti | ハイチ |
| Heard Island and McDonald Islands | ハード島とマクドナルド諸島 |
| Honduras | ホンジュラス |
| Hong Kong | 香港 |
| Hungary | ハンガリー |
| Iceland | アイスランド |
| India | インド |
| Indonesia | インドネシア |
| Iran | イラン |
| Iraq | イラク |
| Ireland | アイルランド |
| Israel | イスラエル |
| Italy | イタリア |
| Jamaica | ジャマイカ |
| Japan | 日本 |
| Jersey | ジャージー |
| Jordan | ヨルダン |
| Kazakhstan | カザフスタン |
| Kenya | ケニア |
| Kiribati | キリバス |
| Kosovo | コソボ |
| Kuwait | クウェート |
| Kyrgyzstan | キルギス |
| Laos | ラオス |
| Latvia | ラトビア |
| Lebanon | レバノン |
| Lesotho | レソト |
| Liberia | リベリア |
| Libya | リビア |
| Liechtenstein | リヒテンシュタイン |
| Lithuania | リトアニア |
| Luxembourg | ルクセンブルク |
| Macau | マカオ |
| Madagascar | マダガスカル |
| Malawi | マラウイ |
| Malaysia | マレーシア |
| Maldives | モルディブ |
| Mali | マリ |
| Malta | マルタ |
| Man (Isle of) | マン島 |
| Marshall Islands | マーシャル諸島 |
| Martinique | マルティニーク |
| Mauritania | モーリタニア |
| Mauritius | モーリシャス |
| Mayotte | マヨット |
| Mexico | メキシコ |
| Micronesia | ミクロネシア連邦 |
| Moldova | モルドバ |
| Monaco | モナコ |
| Mongolia | モンゴル |
| Montenegro | モンテネグロ |
| Montserrat | モントセラト |
| Morocco | モロッコ |
| Mozambique | モザンビーク |
| Myanmar | ミャンマー |
| Namibia | ナミビア |
| Nauru | ナウル |
| Nepal | ネパール |
| Netherlands | オランダ |
| New Caledonia | ニューカレドニア |
| New Zealand | ニュージーランド |
| Nicaragua | ニカラグア |
| Niger | ニジェール |
| Nigeria | ナイジェリア |
| Niue | ニウエ |
| Norfolk Island | ノーフォーク島 |
| North Korea | 北朝鮮 |
| North Macedonia | 北マケドニア |
| Northern Mariana Islands | 北マリアナ諸島 |
| Norway | ノルウェー |
| Oman | オマーン |
| Pakistan | パキスタン |
| Palau | パラオ |
| Palestinian Territory Occupied | パレスチナ |
| Panama | パナマ |
| Papua new Guinea | パプアニューギニア |
| Paraguay | パラグアイ |
| Peru | ペルー |
| Philippines | フィリピン |
| Pitcairn Island | ピトケアン諸島 |
| Poland | ポーランド |
| Portugal | ポルトガル |
| Puerto Rico | プエルトリコ |
| Qatar | カタール |
| Reunion | レユニオン |
| Romania | ルーマニア |
| Russia | ロシア |
| Rwanda | ルワンダ |
| Saint Helena | セントヘレナ |
| Saint Kitts And Nevis | セントクリストファー・ネイビス |
| Saint Lucia | セントルシア |
| Saint Pierre and Miquelon | サンピエール島・ミクロン島 |
| Saint Vincent And The Grenadines | セントビンセント・グレナディーン |
| Saint-Barthelemy | サン・バルテルミー |
| Saint-Martin (French part) | サン・マルタン |
| Samoa | サモア |
| San Marino | サンマリノ |
| Sao Tome and Principe | サントメ・プリンシペ |
| Saudi Arabia | サウジアラビア |
| Senegal | セネガル |
| Serbia | セルビア |
| Seychelles | セーシェル |
| Sierra Leone | シエラレオネ |
| Singapore | シンガポール |
| Sint Maarten (Dutch part) | シント・マールテン |
| Slovakia | スロバキア |
| Slovenia | スロベニア |
| Solomon Islands | ソロモン諸島 |
| Somalia | ソマリア |
| South Africa | 南アフリカ |
| South Georgia | サウスジョージア・サウスサンドウィッチ諸島 |
| South Korea | 韓国 |
| South Sudan | 南スーダン |
| Spain | スペイン |
| Sri Lanka | スリランカ |
| Sudan | スーダン |
| Suriname | スリナム |
| Svalbard And Jan Mayen Islands | スヴァールバル諸島およびヤンマイエン島 |
| Swaziland | エスワティニ |
| Sweden | スウェーデン |
| Switzerland | スイス |
| Syria | シリア |
| Taiwan | 台湾 |
| Tajikistan | タジキスタン |
| Tanzania | タンザニア |
| Thailand | タイ |
| The Bahamas | バハマ |
| Togo | トーゴ |
| Tokelau | トケラウ |
| Tonga | トンガ |
| Trinidad And Tobago | トリニダード・トバゴ |
| Tunisia | チュニジア |
| Turkey | トルコ |
| Turkmenistan | トルクメニスタン |
| Turks And Caicos Islands | タークス・カイコス諸島 |
| Tuvalu | ツバル |
| Uganda | ウガンダ |
| Ukraine | ウクライナ |
| United Arab Emirates | アラブ首長国連邦 |
| United Kingdom | イギリス |
| United States Minor Outlying Islands | 合衆国領有小離島 |
| United States | アメリカ合衆国 |
| Uruguay | ウルグアイ |
| Uzbekistan | ウズベキスタン |
| Vanuatu | バヌアツ |
| Vatican City State (Holy See) | バチカン市国 |
| Venezuela | ベネズエラ |
| Vietnam | ベトナム |
| Virgin Islands (British) | 英領ヴァージン諸島 |
| Virgin Islands (US) | 米領ヴァージン諸島 |
| Wallis And Futuna Islands | ウォリス・フツナ |
| Western Sahara | 西サハラ |
| Yemen | イエメン |
| Zambia | ザンビア |
| Zimbabwe | ジンバブエ |
### 章節名稱
| 英語 | 日語 |
| ------------ | -------- |
| awards | 受賞・表彰 |
| basics | 基本情報 |
| certificates | 資格・免状 |
| education | 学歴 |
| interests | 興味・関心 |
| languages | 言語 |
| location | 住所 |
| profiles | プロフィール |
| projects | プロジェクト |
| publications | 出版・著作 |
| references | 推薦人 |
| skills | スキル |
| volunteer | ボランティア活動 |
| work | 職歴 |
### 技能等級
| 英語 | 日語 |
| ------------ | ------ |
| Novice | 入門 |
| Beginner | 初級 |
| Intermediate | 中級 |
| Advanced | 上級 |
| Expert | エキスパート |
| Master | マスター |
### 術語
| 術語 | 日語 |
| -------- | ----- |
| courses | コース |
| keywords | キーワード |
| score | 成績 |
# 挪威語
URL: (/zh-tw/docs/locale/norwegian)
英語和挪威語都是[日耳曼語言](https://en.wikipedia.org/wiki/Germanic_languages),挪威語是北日耳曼語支的一部分。雖然兩種語言有一些共同的基礎,但挪威語具有獨特的特徵,需要 YAMLResume 特別考慮。
## 語言學
### 字符集
英語和挪威語的字符集相似——兩種語言主要使用[拉丁字母](https://en.wikipedia.org/wiki/Latin_alphabet),但挪威語有額外的字母。以下是詳細比較:
| 特徵 | 英語字符集 | 挪威語字符集 |
| -------- | -------------- | --------------------------------------- |
| **字母表** | 26 個字母 (`a-z`) | 29 個字母 (`a-z` 加上 `æ`, `ø`, `å`) |
| **變音符號** | 無 | 三個額外的元音 (`æ`, `ø`, `å`),它們是不同的字母,不是變音符號 |
| **特殊字符** | 僅限於基本拉丁字符 | 包括三個額外的挪威語元音,它們被視為獨立的字母 |
英語和挪威語書寫系統之間的主要差異:
* **額外字母**:挪威語字母表包括三個額外的元音:`æ`、`ø` 和 `å`,它們是具有特定發音的不同字母。
* **字母順序**:在挪威語字母順序中,這些字母在最後:...x, y, z, æ, ø, å。
* **大小寫變化**:挪威語使用大寫和小寫版本(`Æ/æ`、`Ø/ø`、`Å/å`)。
## 習語
### 日期
星期幾和月份在挪威語中不大寫(與英語不同)。例如,英語中的"Sep 2021"在挪威語中翻譯為"sept. 2021",月份小寫,縮寫後加句號。
YAMLResume 只使用月份,因此翻譯表:
| 英語 | 挪威語 |
| --------------- | ----------------- |
| January (Jan) | januar (jan.) |
| February (Feb) | februar (feb.) |
| March (Mar) | mars (mar.) |
| April (Apr) | april (apr.) |
| May (May) | mai (mai) |
| June (Jun) | juni (jun.) |
| July (Jul) | juli (jul.) |
| August (Aug) | august (aug.) |
| September (Sep) | september (sept.) |
| October (Oct) | oktober (okt.) |
| November (Nov) | november (nov.) |
| December (Dec) | desember (des.) |
### 大寫
與英語相比,挪威語有更保守的大寫規則。通常,只有專有名詞、句子的第一個單詞和代詞"I"(挪威語中的"jeg")才大寫。
YAMLResume 內部採用固定的選項和術語集用於所有履歷模板。例如,YAMLResume 履歷模板中的語言採用[LinkedIn 的語言熟練程度選項](https://www.linkedin.com/pulse/language-proficiency-linkedin-duaa-ali/):
* Elementary Proficiency
* Limited Working Proficiency
* Minimum Professional Proficiency
* Full Professional Proficiency
* Native or Bilingual Proficiency
這些翻譯為挪威語如下:
* Grunnleggende nivå
* Begrenset arbeidskunnskap
* Minimum profesjonelt nivå
* Fullt profesjonelt nivå
* Morsmål eller tospråklig nivå
只有第一個單詞大寫,遵循挪威語大寫約定。
## 排版
### 標點符號
挪威語在標點符號方面與英語有幾個顯著差異:
* **引號**:挪威語通常使用引導(`«»`)或直引號(`""`),標點符號通常放在引號外面。
* **小數點分隔符**:挪威語使用逗號作為小數點分隔符(例如,3,14),而不是像英語那樣使用句號(3.14)。
* **千位分隔符**:挪威語使用空格或句號作為千位分隔符(例如,1 000 或 1.000),而不是逗號。
* **日期格式**:挪威語日期遵循 DD.MM.YYYY 或 DD/MM/YYYY 模式,與美國 MM/DD/YYYY 格式不同。
## 翻譯
YAMLResume 採用以下翻譯用於挪威語履歷中使用的各種選項和術語。
### 教育學位
| 英語 | 挪威語 |
| ------------- | ------------------ |
| Middle School | Ungdomsskole |
| High School | Videregående skole |
| Diploma | Fagbrev |
| Associate | Associate |
| Bachelor | Bachelor |
| Master | Master |
| Doctor | Doktor |
### 語言
| 英語 | 挪威語 |
| ----------- | -------------- |
| Afrikaans | Afrikaans |
| Albanian | Albansk |
| Amharic | Amharisk |
| Arabic | Arabisk |
| Azerbaijani | Aserbajdsjansk |
| Belarusian | Hviterussisk |
| Bengali | Bengali |
| Bhojpuri | Bhojpuri |
| Bulgarian | Bulgarsk |
| Burmese | Burmesisk |
| Cantonese | Kantonesisk |
| Catalan | Katalansk |
| Chinese | Kinesisk |
| Croatian | Kroatisk |
| Czech | Tsjekkisk |
| Danish | Dansk |
| Dutch | Nederlandsk |
| English | Engelsk |
| Estonian | Estisk |
| Farsi | Persisk |
| Filipino | Filippinsk |
| Finnish | Finsk |
| French | Fransk |
| German | Tysk |
| Greek | Gresk |
| Gujarati | Gujarati |
| Hausa | Hausa |
| Hebrew | Hebraisk |
| Hindi | Hindi |
| Hungarian | Ungarsk |
| Icelandic | Islandsk |
| Igbo | Igbo |
| Indonesian | Indonesisk |
| Irish | Irsk |
| Italian | Italiensk |
| Japanese | Japansk |
| Javanese | Javanesisk |
| Kazakh | Kasakhisk |
| Khmer | Khmer |
| Korean | Koreansk |
| Lahnda | Lahnda |
| Latvian | Latvisk |
| Lithuanian | Litauisk |
| Malay | Malaysisk |
| Mandarin | Mandarin |
| Marathi | Marathi |
| Nepali | Nepalsk |
| Norwegian | Norsk |
| Oromo | Oromo |
| Pashto | Pashto |
| Polish | Polsk |
| Portuguese | Portugisisk |
| Romanian | Rumensk |
| Russian | Russisk |
| Serbian | Serbisk |
| Shona | Shona |
| Sinhala | Singalesisk |
| Slovak | Slovakisk |
| Slovene | Slovensk |
| Somali | Somalisk |
| Spanish | Spansk |
| Sundanese | Sundanesisk |
| Swahili | Swahili |
| Swedish | Svensk |
| Tagalog | Tagalog |
| Tamil | Tamil |
| Telugu | Telugu |
| Thai | Thai |
| Turkish | Tyrkisk |
| Ukrainian | Ukrainsk |
| Urdu | Urdu |
| Uzbek | Usbekisk |
| Vietnamese | Vietnamesisk |
| Yoruba | Yoruba |
| Zulu | Zulu |
### 語言熟練程度
| 英語 | 挪威語 |
| -------------------------------- | ----------------------------- |
| Elementary Proficiency | Grunnleggende nivå |
| Limited Working Proficiency | Begrenset arbeidskunnskap |
| Minimum Professional Proficiency | Minimum profesjonelt nivå |
| Full Professional Proficiency | Fullt profesjonelt nivå |
| Native or Bilingual Proficiency | Morsmål eller tospråklig nivå |
### 位置(國家和地區)
| 英語 | 挪威語 |
| ------------------------------------ | ------------------------------------- |
| Afghanistan | Afghanistan |
| Aland Islands | Åland |
| Albania | Albania |
| Algeria | Algerie |
| American Samoa | Amerikansk Samoa |
| Andorra | Andorra |
| Angola | Angola |
| Anguilla | Anguilla |
| Antarctica | Antarktis |
| Antigua And Barbuda | Antigua og Barbuda |
| Argentina | Argentina |
| Armenia | Armenia |
| Aruba | Aruba |
| Australia | Australia |
| Austria | Østerrike |
| Azerbaijan | Aserbajdsjan |
| Bahrain | Bahrain |
| Bangladesh | Bangladesh |
| Barbados | Barbados |
| Belarus | Belarus |
| Belgium | Belgia |
| Belize | Belize |
| Benin | Benin |
| Bermuda | Bermuda |
| Bhutan | Bhutan |
| Bolivia | Bolivia |
| Bonaire, Sint Eustatius and Saba | Bonaire, Sint Eustatius og Saba |
| Bosnia and Herzegovina | Bosnia-Hercegovina |
| Botswana | Botswana |
| Bouvet Island | Bouvetøya |
| Brazil | Brasil |
| British Indian Ocean Territory | Det britiske territoriet i Indiahavet |
| Brunei | Brunei |
| Bulgaria | Bulgaria |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Kambodsja |
| Cameroon | Kamerun |
| Canada | Canada |
| Cape Verde | Kapp Verde |
| Cayman Islands | Caymanøyene |
| Central African Republic | Den sentralafrikanske republikk |
| Chad | Tsjad |
| Chile | Chile |
| China | Kina |
| Christmas Island | Christmasøya |
| Cocos (Keeling) Islands | Kokosøyene (Keelingøyene) |
| Colombia | Colombia |
| Comoros | Komorene |
| Congo | Kongo |
| Cook Islands | Cookøyene |
| Costa Rica | Costa Rica |
| Cote D'Ivoire (Ivory Coast) | Elfenbenskysten |
| Croatia | Kroatia |
| Cuba | Cuba |
| Curaçao | Curaçao |
| Cyprus | Kypros |
| Czech Republic | Tsjekkia |
| Democratic Republic of the Congo | Den demokratiske republikken Kongo |
| Denmark | Danmark |
| Djibouti | Djibouti |
| Dominica | Dominica |
| Dominican Republic | Den dominikanske republikk |
| East Timor | Øst-Timor |
| Ecuador | Ecuador |
| Egypt | Egypt |
| El Salvador | El Salvador |
| Equatorial Guinea | Ekvatorial-Guinea |
| Eritrea | Eritrea |
| Estonia | Estland |
| Ethiopia | Etiopia |
| Falkland Islands | Falklandsøyene |
| Faroe Islands | Færøyene |
| Fiji Islands | Fijiøyene |
| Finland | Finland |
| France | Frankrike |
| French Guiana | Fransk Guyana |
| French Polynesia | Fransk Polynesia |
| French Southern Territories | Franske sørlige territorier |
| Gabon | Gabon |
| Gambia The | Gambia |
| Georgia | Georgia |
| Germany | Tyskland |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Hellas |
| Greenland | Grønland |
| Grenada | Grenada |
| Guadeloupe | Guadeloupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernsey og Alderney |
| Guinea | Guinea |
| Guinea-Bissau | Guinea-Bissau |
| Guyana | Guyana |
| Haiti | Haiti |
| Heard Island and McDonald Islands | Heard- og McDonaldøyene |
| Honduras | Honduras |
| Hong Kong S.A.R. | Hong Kong S.A.R. |
| Hungary | Ungarn |
| Iceland | Island |
| India | India |
| Indonesia | Indonesia |
| Iran | Iran |
| Iraq | Irak |
| Ireland | Irland |
| Israel | Israel |
| Italy | Italia |
| Jamaica | Jamaica |
| Japan | Japan |
| Jersey | Jersey |
| Jordan | Jordan |
| Kazakhstan | Kasakhstan |
| Kenya | Kenya |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Kuwait |
| Kyrgyzstan | Kirgisistan |
| Laos | Laos |
| Latvia | Latvia |
| Lebanon | Libanon |
| Lesotho | Lesotho |
| Liberia | Liberia |
| Libya | Libya |
| Liechtenstein | Liechtenstein |
| Lithuania | Litauen |
| Luxembourg | Luxembourg |
| Macau S.A.R. | Macau S.A.R. |
| Madagascar | Madagaskar |
| Malawi | Malawi |
| Malaysia | Malaysia |
| Maldives | Maldivene |
| Mali | Mali |
| Malta | Malta |
| Man (Isle of) | Man (Isle of) |
| Marshall Islands | Marshalløyene |
| Martinique | Martinique |
| Mauritania | Mauritania |
| Mauritius | Mauritius |
| Mayotte | Mayotte |
| Mexico | Mexico |
| Micronesia | Mikronesia |
| Moldova | Moldova |
| Monaco | Monaco |
| Mongolia | Mongolia |
| Montenegro | Montenegro |
| Montserrat | Montserrat |
| Morocco | Marokko |
| Mozambique | Mosambik |
| Myanmar | Myanmar |
| Namibia | Namibia |
| Nauru | Nauru |
| Nepal | Nepal |
| Netherlands | Nederland |
| New Caledonia | Ny-Caledonia |
| New Zealand | New Zealand |
| Nicaragua | Nicaragua |
| Niger | Niger |
| Nigeria | Nigeria |
| Niue | Niue |
| Norfolk Island | Norfolkøya |
| North Korea | Nord-Korea |
| North Macedonia | Nord-Makedonia |
| Northern Mariana Islands | Nord-Marianene |
| Norway | Norge |
| Oman | Oman |
| Pakistan | Pakistan |
| Palau | Palau |
| Palestinian Territory Occupied | Palestinsk okkupert område |
| Panama | Panama |
| Papua new Guinea | Papua Ny-Guinea |
| Paraguay | Paraguay |
| Peru | Peru |
| Philippines | Filippinene |
| Pitcairn Island | Pitcairnøyene |
| Poland | Polen |
| Portugal | Portugal |
| Puerto Rico | Puerto Rico |
| Qatar | Qatar |
| Reunion | Réunion |
| Romania | Romania |
| Russia | Russland |
| Rwanda | Rwanda |
| Saint Helena | Sankt Helena |
| Saint Kitts And Nevis | Saint Kitts og Nevis |
| Saint Lucia | Saint Lucia |
| Saint Pierre and Miquelon | Saint-Pierre og Miquelon |
| Saint Vincent And The Grenadines | Saint Vincent og Grenadinene |
| Saint-Barthelemy | Saint-Barthélemy |
| Saint-Martin (French part) | Saint-Martin (fransk del) |
| Samoa | Samoa |
| San Marino | San Marino |
| Sao Tome and Principe | São Tomé og Príncipe |
| Saudi Arabia | Saudi-Arabia |
| Senegal | Senegal |
| Serbia | Serbia |
| Seychelles | Seychellene |
| Sierra Leone | Sierra Leone |
| Singapore | Singapore |
| Sint Maarten (Dutch part) | Sint Maarten (nederlandsk del) |
| Slovakia | Slovakia |
| Slovenia | Slovenia |
| Solomon Islands | Salomonøyene |
| Somalia | Somalia |
| South Africa | Sør-Afrika |
| South Georgia | Sør-Georgia |
| South Korea | Sør-Korea |
| South Sudan | Sør-Sudan |
| Spain | Spania |
| Sri Lanka | Sri Lanka |
| Sudan | Sudan |
| Suriname | Surinam |
| Svalbard And Jan Mayen Islands | Svalbard og Jan Mayen |
| Swaziland | Swaziland |
| Sweden | Sverige |
| Switzerland | Sveits |
| Syria | Syria |
| Taiwan | Taiwan |
| Tajikistan | Tadsjikistan |
| Tanzania | Tanzania |
| Thailand | Thailand |
| The Bahamas | Bahamas |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinidad og Tobago |
| Tunisia | Tunisia |
| Türkiye | Tyrkia |
| Turkmenistan | Turkmenistan |
| Turks And Caicos Islands | Turks- og Caicosøyene |
| Tuvalu | Tuvalu |
| Uganda | Uganda |
| Ukraine | Ukraina |
| United Arab Emirates | De forente arabiske emirater |
| United Kingdom | Storbritannia |
| United States | USA |
| United States Minor Outlying Islands | USAs ytre småøyer |
| Uruguay | Uruguay |
| Uzbekistan | Usbekistan |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Vatikanstaten (Den hellige stol) |
| Venezuela | Venezuela |
| Vietnam | Vietnam |
| Virgin Islands (British) | Jomfruøyene (britiske) |
| Virgin Islands (US) | Jomfruøyene (USA) |
| Wallis And Futuna Islands | Wallis- og Futunaøyene |
| Western Sahara | Vest-Sahara |
| Yemen | Jemen |
| Zambia | Zambia |
| Zimbabwe | Zimbabwe |
### 章節名稱
| 英語 | 挪威語 |
| ------------ | ------------------------- |
| Awards | Utmerkelser |
| Basics | Grunnleggende informasjon |
| Certificates | Sertifikater |
| Education | Utdanning |
| Interests | Interesser |
| Languages | Språk |
| Projects | Prosjekter |
| Publications | Publikasjoner |
| References | Referanser |
| Skills | Ferdigheter |
| Volunteer | Frivillig arbeid |
| Work | Arbeidserfaring |
### 技能級別
| 英語 | 挪威語 |
| ------------ | ------------ |
| Novice | Nybegynner |
| Beginner | Begynner |
| Intermediate | Viderekommen |
| Advanced | Avansert |
| Expert | Ekspert |
| Master | Mester |
### 選項和術語
| 英語 | 挪威語 |
| -------- | --------- |
| Courses | Kurs |
| Keywords | Nøkkelord |
| Score | Poeng |
# 西班牙語
URL: (/zh-tw/docs/locale/spanish)
英語和西班牙語都是[印歐語言](https://en.wikipedia.org/wiki/Indo-European_languages),難怪英語和西班牙語有一些相似之處,所以 YAMLResume 的大部分共同基礎可以重複用於英語和西班牙語。
## 語言學
### 字符集
英語和西班牙語的字符集非常相似——兩種語言主要使用[拉丁字母](https://en.wikipedia.org/wiki/Latin_alphabet),由 26 個字母組成。然而,西班牙語有一個額外的字母 `ñ`,它代表一個獨特的聲音。以下是快速比較:
| 特徵 | 英語字符集 | 西班牙語字符集 |
| -------- | -------------- | --------------------------------------------------------- |
| **字母表** | 26 個字母 (`a-z`) | 27 個字母 (`a-z` 加上 `ñ`) |
| **變音符號** | 無 | 包括重音符號(`á`, `é`, `í`, `ó`, `ú`)、分音符(`ü`)和特殊標點符號(`¿`, `¡`) |
| **特殊字符** | 僅限於基本拉丁字符 | 包括 `ñ` 和重音元音等額外字符 |
英語和西班牙語書寫系統之間的主要差異:
* **額外字母**:西班牙語字母表包括字母 `ñ`,這在英語字母表中不存在。
* **[變音符號](https://en.wikipedia.org/wiki/Diacritic)**:西班牙語使用幾個改變元音發音的變音符號。例如,重音符號表示重音和發音變化(例如,`é` vs. `e`)。
* **標點符號**:西班牙語使用英語中沒有的反向標點符號(`¿` 用於問題,`¡` 用於感嘆)。
## 習語
### 日期
星期幾和月份在英語中大寫,但在西班牙語中不大寫。例如,英語中的"Sep 2021"在西班牙語中翻譯為"sept 2021"。
YAMLResume 只使用月份,因此翻譯表:
| 英語 | 西班牙語 |
| --------------- | ----------------- |
| January (Jan) | enero (ene) |
| February (Feb) | febrero (feb) |
| March (Mar) | marzo (mar) |
| April (Apr) | abril (abr) |
| May (May) | mayo (may) |
| June (Jun) | junio (jun) |
| July (Jul) | julio (jul) |
| August (Aug) | agosto (ago) |
| September (Sep) | septiembre (sept) |
| October (Oct) | octubre (oct) |
| November (Nov) | noviembre (nov) |
| December (Dec) | diciembre (dic) |
### 大寫
英語傾向於大寫許多單詞,而西班牙語更保守,遵循更[嚴格的規則集](https://baselang.com/blog/basic-grammar/capitalization-in-spanish/)。
YAMLResume 內部採用固定的選項和術語集用於所有履歷模板。例如,YAMLResume 履歷模板中的語言採用[LinkedIn 的語言熟練程度選項](https://www.linkedin.com/pulse/language-proficiency-linkedin-duaa-ali/):
* Elementary Proficiency
* Limited Working Proficiency
* Minimum Professional Proficiency
* Full Professional Proficiency
* Native or Bilingual Proficiency
這些翻譯為西班牙語如下:
* Competencia elemental
* Competencia limitada de trabajo
* Competencia profesional de trabajo
* Competencia profesional plena
* Competencia nativa o bilingüe
只有第一個單詞大寫。
## 排版
### 標點符號
西班牙語在標點符號方面與英語有幾個顯著差異:
* **引號**:在英語中,句號和逗號放在引號內,而在西班牙語中,它們通常放在外面。
* **反向符號**:西班牙語在疑問句和感嘆句的開頭和結尾使用反向問號 `¿` 和感嘆號 `¡`,而英語不使用。
* **序列逗號**:英語經常在列表中的"and"前使用序列逗號(例如,"apples, oranges, and bananas"),而西班牙語在"y"前不使用逗號(例如,"manzanas, naranjas y plátanos")
* **數字格式**:英語使用句號作為小數點分隔符(例如,3.14),而西班牙語使用逗號(例如,3,14)。
## 翻譯
YAMLResume 採用以下翻譯用於西班牙語履歷中使用的各種選項和術語
### 教育學位
| 英語 | 西班牙語 |
| ------------- | -------------------- |
| Middle School | Escuela secundaria |
| High School | Título de secundaria |
| Diploma | Diploma |
| Associate | Grado de asociado |
| Bachelor | Licenciatura |
| Master | Maestría |
| Doctor | Doctorado |
### 語言
| 英語 | 西班牙語 |
| ----------- | ----------- |
| Afrikaans | Afrikáans |
| Albanian | Albanés |
| Amharic | Amárico |
| Arabic | Árabe |
| Azerbaijani | Azerbaiyano |
| Belarusian | Bielorruso |
| Bengali | Bengalí |
| Bhojpuri | Bhojpuri |
| Bulgarian | Búlgaro |
| Burmese | Birmano |
| Cantonese | Cantonés |
| Catalan | Catalán |
| Chinese | Chino |
| Croatian | Croata |
| Czech | Checo |
| Danish | Danés |
| Dutch | Neerlandés |
| English | Inglés |
| Estonian | Estonio |
| Farsi | Persa |
| Filipino | Filipino |
| Finnish | Finés |
| French | Francés |
| German | Alemán |
| Greek | Griego |
| Gujarati | Gujarati |
| Hausa | Hausa |
| Hebrew | Hebreo |
| Hindi | Hindi |
| Hungarian | Húngaro |
| Icelandic | Islandés |
| Igbo | Igbo |
| Indonesian | Indonesio |
| Irish | Irlandés |
| Italian | Italiano |
| Japanese | Japonés |
| Javanese | Javanés |
| Kazakh | Kazajo |
| Khmer | Jemer |
| Korean | Coreano |
| Lahnda | Lahnda |
| Latvian | Letón |
| Lithuanian | Lituano |
| Malay | Malayo |
| Mandarin | Mandarín |
| Marathi | Marathi |
| Nepali | Nepalí |
| Norwegian | Noruego |
| Oromo | Oromo |
| Pashto | Pastún |
| Polish | Polaco |
| Portuguese | Portugués |
| Romanian | Rumano |
| Russian | Ruso |
| Serbian | Serbio |
| Shona | Shona |
| Sinhala | Cingalés |
| Slovak | Eslovaco |
| Slovene | Esloveno |
| Somali | Somalí |
| Spanish | Español |
| Sundanese | Sundanés |
| Swahili | Suajili |
| Swedish | Sueco |
| Tagalog | Tagalo |
| Tamil | Tamil |
| Telugu | Telugu |
| Thai | Tailandés |
| Turkish | Turco |
| Ukrainian | Ucraniano |
| Urdu | Urdu |
| Uzbek | Uzbeko |
| Vietnamese | Vietnamita |
| Yoruba | Yoruba |
| Zulu | Zulú |
### 語言熟練程度
| 英語 | 西班牙語 |
| -------------------------------- | ---------------------------------- |
| Elementary Proficiency | Competencia elemental |
| Limited Working Proficiency | Competencia limitada de trabajo |
| Minimum Professional Proficiency | Competencia profesional de trabajo |
| Full Professional Proficiency | Competencia profesional plena |
| Native or Bilingual Proficiency | Competencia nativa o bilingüe |
### 位置(國家和地區)
| 英語 | 西班牙語 |
| ------------------------------------ | -------------------------------------------- |
| Afghanistan | Afganistán |
| Aland Islands | Islas Åland |
| Albania | Albania |
| Algeria | Argelia |
| American Samoa | Samoa Americana |
| Andorra | Andorra |
| Angola | Angola |
| Anguilla | Anguila |
| Antarctica | Antártida |
| Antigua And Barbuda | Antigua y Barbuda |
| Argentina | Argentina |
| Armenia | Armenia |
| Aruba | Aruba |
| Australia | Australia |
| Austria | Austria |
| Azerbaijan | Azerbaiyán |
| Bahrain | Baréin |
| Bangladesh | Bangladés |
| Barbados | Barbados |
| Belarus | Bielorrusia |
| Belgium | Bélgica |
| Belize | Belice |
| Benin | Benín |
| Bermuda | Bermudas |
| Bhutan | Bután |
| Bolivia | Bolivia |
| Bonaire, Sint Eustatius and Saba | Bonaire, San Eustaquio y Saba |
| Bosnia and Herzegovina | Bosnia y Herzegovina |
| Botswana | Botsuana |
| Bouvet Island | Isla Bouvet |
| Brazil | Brasil |
| British Indian Ocean Territory | Territorio Británico del Océano Índico |
| Brunei | Brunéi |
| Bulgaria | Bulgaria |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Camboya |
| Cameroon | Camerún |
| Canada | Canadá |
| Cape Verde | Cabo Verde |
| Cayman Islands | Islas Caimán |
| Central African Republic | República Centroafricana |
| Chad | Chad |
| Chile | Chile |
| China | China |
| Christmas Island | Isla de Navidad |
| Cocos (Keeling) Islands | Islas Cocos |
| Colombia | Colombia |
| Comoros | Comoras |
| Congo | Congo |
| Cook Islands | Islas Cook |
| Costa Rica | Costa Rica |
| Cote D'Ivoire (Ivory Coast) | Costa de Marfil |
| Croatia | Croacia |
| Cuba | Cuba |
| Curaçao | Curazao |
| Cyprus | Chipre |
| Czech Republic | República Checa |
| Democratic Republic of the Congo | República Democrática del Congo |
| Denmark | Dinamarca |
| Djibouti | Yibuti |
| Dominica | Dominica |
| Dominican Republic | República Dominicana |
| East Timor | Timor Oriental |
| Ecuador | Ecuador |
| Egypt | Egipto |
| El Salvador | El Salvador |
| Equatorial Guinea | Guinea Ecuatorial |
| Eritrea | Eritrea |
| Estonia | Estonia |
| Ethiopia | Etiopía |
| Falkland Islands | Islas Malvinas |
| Faroe Islands | Islas Feroe |
| Fiji Islands | Fiyi |
| Finland | Finlandia |
| France | Francia |
| French Guiana | Guayana Francesa |
| French Polynesia | Polinesia Francesa |
| French Southern Territories | Tierras Australes y Antárticas Francesas |
| Gabon | Gabón |
| Gambia The | Gambia |
| Georgia | Georgia |
| Germany | Alemania |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Grecia |
| Greenland | Groenlandia |
| Grenada | Granada |
| Guadeloupe | Guadalupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernsey y Alderney |
| Guinea | Guinea |
| Guinea-Bissau | Guinea-Bisáu |
| Guyana | Guyana |
| Haiti | Haití |
| Heard Island and McDonald Islands | Islas Heard y McDonald |
| Honduras | Honduras |
| Hong Kong S.A.R. | Hong Kong |
| Hungary | Hungría |
| Iceland | Islandia |
| India | India |
| Indonesia | Indonesia |
| Iran | Irán |
| Iraq | Irak |
| Ireland | Irlanda |
| Israel | Israel |
| Italy | Italia |
| Jamaica | Jamaica |
| Japan | Japón |
| Jersey | Jersey |
| Jordan | Jordania |
| Kazakhstan | Kazajistán |
| Kenya | Kenia |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Kuwait |
| Kyrgyzstan | Kirguistán |
| Laos | Laos |
| Latvia | Letonia |
| Lebanon | Líbano |
| Lesotho | Lesoto |
| Liberia | Liberia |
| Libya | Libia |
| Liechtenstein | Liechtenstein |
| Lithuania | Lituania |
| Luxembourg | Luxemburgo |
| Macau S.A.R. | Macao |
| Madagascar | Madagascar |
| Malawi | Malaui |
| Malaysia | Malasia |
| Maldives | Maldivas |
| Mali | Malí |
| Malta | Malta |
| Man (Isle of) | Isla de Man |
| Marshall Islands | Islas Marshall |
| Martinique | Martinica |
| Mauritania | Mauritania |
| Mauritius | Mauricio |
| Mayotte | Mayotte |
| Mexico | México |
| Micronesia | Micronesia |
| Moldova | Moldavia |
| Monaco | Mónaco |
| Mongolia | Mongolia |
| Montenegro | Montenegro |
| Montserrat | Montserrat |
| Morocco | Marruecos |
| Mozambique | Mozambique |
| Myanmar | Myanmar |
| Namibia | Namibia |
| Nauru | Nauru |
| Nepal | Nepal |
| Netherlands | Países Bajos |
| New Caledonia | Nueva Caledonia |
| New Zealand | Nueva Zelanda |
| Nicaragua | Nicaragua |
| Niger | Níger |
| Nigeria | Nigeria |
| Niue | Niue |
| Norfolk Island | Isla Norfolk |
| North Korea | Corea del Norte |
| North Macedonia | Macedonia del Norte |
| Northern Mariana Islands | Islas Marianas del Norte |
| Norway | Noruega |
| Oman | Omán |
| Pakistan | Pakistán |
| Palau | Palaos |
| Palestinian Territory Occupied | Territorio Palestino Ocupado |
| Panama | Panamá |
| Papua new Guinea | Papúa Nueva Guinea |
| Paraguay | Paraguay |
| Peru | Perú |
| Philippines | Filipinas |
| Pitcairn Island | Islas Pitcairn |
| Poland | Polonia |
| Portugal | Portugal |
| Puerto Rico | Puerto Rico |
| Qatar | Catar |
| Reunion | Reunión |
| Romania | Rumania |
| Russia | Rusia |
| Rwanda | Ruanda |
| Saint Helena | Santa Elena |
| Saint Kitts And Nevis | San Cristóbal y Nieves |
| Saint Lucia | Santa Lucía |
| Saint Pierre and Miquelon | San Pedro y Miquelón |
| Saint Vincent And The Grenadines | San Vicente y las Granadinas |
| Saint-Barthelemy | San Bartolomé |
| Saint-Martin (French part) | San Martín (parte francesa) |
| Samoa | Samoa |
| San Marino | San Marino |
| Sao Tome and Principe | Santo Tomé y Príncipe |
| Saudi Arabia | Arabia Saudita |
| Senegal | Senegal |
| Serbia | Serbia |
| Seychelles | Seychelles |
| Sierra Leone | Sierra Leona |
| Singapore | Singapur |
| Sint Maarten (Dutch part) | San Martín (parte neerlandesa) |
| Slovakia | Eslovaquia |
| Slovenia | Eslovenia |
| Solomon Islands | Islas Salomón |
| Somalia | Somalia |
| South Africa | Sudáfrica |
| South Georgia | Georgia del Sur |
| South Korea | Corea del Sur |
| South Sudan | Sudán del Sur |
| Spain | España |
| Sri Lanka | Sri Lanka |
| Sudan | Sudán |
| Suriname | Surinam |
| Svalbard And Jan Mayen Islands | Svalbard y Jan Mayen |
| Swaziland | Suazilandia |
| Sweden | Suecia |
| Switzerland | Suiza |
| Syria | Siria |
| Taiwan | Taiwán |
| Tajikistan | Tayikistán |
| Tanzania | Tanzania |
| Thailand | Tailandia |
| The Bahamas | Bahamas |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinidad y Tobago |
| Tunisia | Túnez |
| Türkiye | Turquía |
| Turkmenistan | Turkmenistán |
| Turks And Caicos Islands | Islas Turcas y Caicos |
| Tuvalu | Tuvalu |
| Uganda | Uganda |
| Ukraine | Ucrania |
| United Arab Emirates | Emiratos Árabes Unidos |
| United Kingdom | Reino Unido |
| United States | Estados Unidos |
| United States Minor Outlying Islands | Islas Ultramarinas Menores de Estados Unidos |
| Uruguay | Uruguay |
| Uzbekistan | Uzbekistán |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Ciudad del Vaticano |
| Venezuela | Venezuela |
| Vietnam | Vietnam |
| Virgin Islands (British) | Islas Vírgenes Británicas |
| Virgin Islands (US) | Islas Vírgenes de los Estados Unidos |
| Wallis And Futuna Islands | Wallis y Futuna |
| Western Sahara | Sahara Occidental |
| Yemen | Yemen |
| Zambia | Zambia |
| Zimbabwe | Zimbabue |
### 章節名稱
| 英語 | 西班牙語 |
| ------------ | ------------------- |
| Awards | Premios |
| Basics | Información básica |
| Certificates | Certificados |
| Education | Educación |
| Interests | Intereses |
| Languages | Idiomas |
| Location | Ubicación |
| Profiles | Perfiles |
| Projects | Proyectos |
| Publications | Publicaciones |
| References | Referencias |
| Skills | Competencias |
| Volunteer | Voluntariado |
| Work | Experiencia laboral |
### 技能級別
| 英語 | 西班牙語 |
| ------------ | ------------ |
| Novice | Novato |
| Beginner | Principiante |
| Intermediate | Intermedio |
| Advanced | Avanzado |
| Expert | Experto |
| Master | Maestro |
### 選項和術語
| 英語 | 西班牙語 |
| -------- | -------------- |
| Courses | Cursos |
| Keywords | Palabras clave |
| Score | Puntuación |
# 模式
URL: (/zh-tw/docs/compiler/schema)
## 概述
起草履歷是一個漫長、無聊且繁瑣的過程。人們經常需要花費數小時挑剔細節,但錯誤仍然會發生。例如,教育學位可能有拼寫錯誤,電子郵件格式可能錯誤,課程名稱可能太短等。
除了[靜態類型定義](/zh-tw/docs/compiler/types)之外,YAMLResume 還提供了一個內建模式,可用於執行時驗證。這是使 YAMLResume 成為**履歷編譯器**的核心——YAMLResume 提供**clang 風格的警告/錯誤訊息**,幫助在履歷起草的早期階段捕獲潛在錯誤。
例如,對於以下履歷:
```yml lineNumbers title="invalid-resume.yml"
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
---
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@pp # [!code highlight]
url: https//ppresume.com/gallery # [!code highlight]
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
region: California
city: S # [!code highlight]
country: United States
postalCode: "95814"
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
startDate: Sep 1, 2016
endDate:
courses:
- D # [!code highlight]
- Programming Language Concepts
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
layouts:
- engine: latex
typography:
fontSize: 13pt # [!code highlight]
```
`yamlresume validate` 將為您提供潛在錯誤列表,並提供清晰的位置資訊,幫助精確定位錯誤位置,同時,借助 [yaml-language-server](https://github.com/redhat-developer/yaml-language-server),您可以通過[自動完成](/zh-tw/docs/compiler/schema/json#auto-completion)、[懸停屬性文件](/zh-tw/docs/compiler/schema/json#property-docs)、[格式驗證](/zh-tw/docs/compiler/schema/json#format-validation)等功能獲得更好的編輯體驗。
在底層,YAMLResume 採用 [Zod](https://zod.dev) 在執行時驗證履歷資料。Zod 是一個 TypeScript 優先的模式驗證庫,允許您為履歷資料定義模式,作為強大的安全網,確保履歷資料可靠、一致,並準備好渲染成專業的 PDF。
模式驗證是確保履歷資料正確性的非常強大的工具。它可以在履歷起草的整個生命週期中捕獲錯誤,這對於從一開始就避免低級錯誤非常有幫助。
## 了解更多
# JSON Schema
URL: (/zh-tw/docs/compiler/schema/json)
## 概述
YAMLResume 提供了一個官方的 [JSON Schema](https://json-schema.org) 用於驗證履歷資料。
最新的官方 JSON Schema 託管在:
[https://yamlresume.com/schema.json](https://yamlresume.com/schema.json)。但是,如果您想要一個精簡版本用於您的 IDE/編輯器,您也可以使用我們 GitHub 倉庫中的 canary 版本 [schema.json](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/schema/schema.json)。
同時,隨著 YAMLResume 的發展,官方 JSON Schema 將不斷更新,因此我們還在以下位置提供所有歸檔版本的 JSON Schema:
`https://yamlresume.com/schemas//schema.json`。
目前我們有以下歸檔版本:
* [v0.11.0](/schemas/v0.11.0/schema.json)
* [v0.10.1](/schemas/v0.10.1/schema.json)
* [v0.10.0](/schemas/v0.10.0/schema.json)
* [v0.9.1](/schemas/v0.9.1/schema.json)
* [v0.8.1](/schemas/v0.8.1/schema.json)
* [v0.5.1](/schemas/v0.5.1/schema.json)
* [v0.6.0](/schemas/v0.6.0/schema.json)
* [v0.7.0](/schemas/v0.7.0/schema.json)
## 什麼是 JSON Schema?
[JSON Schema](https://json-schema.org) 是一種基於 JSON 的格式,用於定義 JSON 資料的結構。它是驗證和記錄 JSON 資料的強大工具。
JSON Schema 允許您指定 JSON 資料的預期結構、類型和約束。使用 JSON Schema,您可以定義哪些屬性是可選的,允許什麼類型的值(如字串、數字、陣列或物件),甚至為值格式設置規則(如電子郵件地址或 URL)。
通過使用 JSON Schema,開發人員和工具可以自動驗證 JSON 資料,以確保它在處理前符合預期格式。這有助於早期捕獲錯誤,提高資料品質,並在現代程式碼編輯器中啟用自動完成和內聯文件等功能。
JSON Schema 得到廣泛支援,可用於配置檔案、API 負載,在 YAMLResume 的情況下,用於驗證履歷資料以確保一致性和正確性。
## 優勢
在製作履歷時將 YAMLResume 的 JSON Schema 整合到您的 IDE/編輯器中會帶來幾個好處:
* **自動完成**:當您開始輸入時,您的 IDE/編輯器將建議屬性及其預期類型,幫助您更快地起草履歷並減少錯誤。
* **格式驗證**:您的 IDE/編輯器將在您輸入時突出顯示任何格式錯誤(如無效日期或 URL),防止您提交錯誤資訊。
* **屬性文件**:獲取每個屬性的內聯文件,解釋其用途、允許的值和任何特殊格式要求。
### 自動完成
所有[枚舉類型](/zh-tw/docs/compiler/types#enum-types)在輸入時都會自動完成。您只需輸入選項的前幾個字母,IDE/編輯器就會建議有效選項列表,然後您可以使用上下箭頭鍵選擇正確的選項。
### 格式驗證
每個鍵值對都會根據預定義模式進行即時驗證。您的 IDE/編輯器將用精確的錯誤訊息警告您,幫助避免低級錯誤,如錯誤的電子郵件格式、無效的學位選項、語言熟練程度級別的拼寫錯誤等。
如果缺少必需的鍵,警告訊息將預設升級到其父物件,因此您可以輕鬆找到缺少的鍵。
### 屬性文件
最後但同樣重要的是,您可以獲取每個屬性的內聯文件,解釋其用途、允許的值和任何特殊格式要求。您可以將滑鼠懸停在屬性鍵或值上以查看文件。
## 如何使用 JSON Schema?
您需要安裝 [yaml-language-server](https://github.com/redhat-developer/yaml-language-server) 來為您的履歷使用 YAMLResume 的 JSON 模式。根據您的 IDE/編輯器,您可能需要安裝不同的[擴展](https://github.com/redhat-developer/yaml-language-server?tab=readme-ov-file#clients)。
安裝後,您需要在履歷檔案頂部添加以下行:
```
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
```
然後您就可以享受[自動完成](#auto-completion)、[格式驗證](#format-validation)和[屬性文件](#property-docs)功能,一切盡在您的指尖。
## 工程實現
在底層,YAMLResume 的 JSON 模式是在 [Zod v4](https://zod.dev/json-schema) 的幫助下生成的,這是一個出色的 TypeScript 優先模式驗證庫。
我們在 [schema/resume.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/schema/resume.ts) 中定義模式,然後在[測試用例](https://github.com/yamlresume/yamlresume/blob/99de/packages/core/src/schema/resume.test.ts#L272-L277)中生成 JSON 模式。
這不是很酷嗎?
# Zod Schema
URL: (/zh-tw/docs/compiler/schema/zod)
YAMLResume 採用 [zod](https://zod.dev) 在執行時驗證履歷資料。
本文檔概述了 YAMLResume 中使用的所有 zod 模式。如果您對實現細節感興趣,可以在[這裡](https://github.com/yamlresume/yamlresume/tree/main/packages/core/src/schema)找到原始碼。
## 履歷模式
定義整體履歷結構驗證,包括內容和佈局驗證。
| 屬性 | 類型 | 必需 |
| ---------- | --------------------------------- | -- |
| `content` | [`ContentSchema`](#contentschema) | ✅ |
| `layouts?` | [`LayoutsSchema`](#layoutsschema) | ⬜ |
| `locale?` | [`LocaleSchema`](#localeschema) | ⬜ |
### ContentSchema
定義整個履歷內容的驗證結構。
| 屬性 | 類型 | 必需 |
| --------------- | --------------------------------------------------- | -- |
| `basics` | [`BasicsItemSchema`](#basicsitemschema) | ✅ |
| `education` | [`EducationItemSchema[]`](#educationitemschema) | ✅ |
| `awards?` | [`AwardItemSchema[]`](#awarditemschema) | ⬜ |
| `certificates?` | [`CertificateItemSchema[]`](#certificateitemschema) | ⬜ |
| `interests?` | [`InterestItemSchema[]`](#interestitemschema) | ⬜ |
| `languages?` | [`LanguageItemSchema[]`](#languageitemschema) | ⬜ |
| `location?` | [`LocationItemSchema`](#locationitemschema) | ⬜ |
| `projects?` | [`ProjectItemSchema[]`](#projectitemschema) | ⬜ |
| `profiles?` | [`ProfileItemSchema[]`](#profileitemschema) | ⬜ |
| `publications?` | [`PublicationItemSchema[]`](#publicationitemschema) | ⬜ |
| `references?` | [`ReferenceItemSchema[]`](#referenceitemschema) | ⬜ |
| `skills?` | [`SkillItemSchema[]`](#skillitemschema) | ⬜ |
| `volunteer?` | [`VolunteerItemSchema[]`](#volunteeritemschema) | ⬜ |
| `work?` | [`WorkItemSchema[]`](#workitemschema) | ⬜ |
#### AwardItemSchema
驗證獲得的單個獎項、榮譽或認可。
| 屬性 | 類型 | 必需 | 驗證規則 |
| ---------- | -------- | -- | ------------------------- |
| `awarder` | `string` | ✅ | 2-128 個字元 |
| `title` | `string` | ✅ | 2-128 個字元 |
| `date?` | `string` | ⬜ | 參見[日期模式](#date-schema) |
| `summary?` | `string` | ⬜ | 參見[摘要模式](#summary-schema) |
#### BasicsItemSchema
驗證核心個人和聯繫資訊。
| 屬性 | 類型 | 必需 | 驗證規則 |
| ----------- | -------- | -- | ------------------------- |
| `name` | `string` | ✅ | 2-128 個字元 |
| `email?` | `string` | ⬜ | 參見[電子郵件模式](#email-schema) |
| `headline?` | `string` | ⬜ | 2-128 個字元 |
| `phone?` | `string` | ⬜ | 參見[電話模式](#phone-schema) |
| `summary?` | `string` | ⬜ | 參見[摘要模式](#summary-schema) |
| `url?` | `string` | ⬜ | 參見[URL 模式](#url-schema) |
#### CertificateItemSchema
驗證單個認證、證書或專業資格。
| 屬性 | 類型 | 必需 | 驗證規則 |
| -------- | -------- | -- | ----------------------- |
| `issuer` | `string` | ✅ | 2-128 個字元 |
| `name` | `string` | ✅ | 2-128 個字元 |
| `date?` | `string` | ⬜ | 參見[日期模式](#date-schema) |
| `url?` | `string` | ⬜ | 參見[URL 模式](#url-schema) |
#### EducationItemSchema
驗證單個教育經歷或學位課程。
| 屬性 | 類型 | 必需 | 驗證規則 |
| ------------- | ------------------- | -- | ------------------------- |
| `area` | `string` | ✅ | 2-64 個字元 |
| `degree` | [`Degree`](#degree) | ✅ | 必須來自預定義的[學位選項](#degree) |
| `institution` | `string` | ✅ | 2-128 個字元 |
| `startDate` | `string` | ✅ | 參見[日期模式](#date-schema) |
| `courses?` | `string[]` | ⬜ | 每個專案 2-128 個字元 |
| `endDate?` | `string` | ⬜ | 參見[日期模式](#date-schema) |
| `summary?` | `string` | ⬜ | 參見[摘要模式](#summary-schema) |
| `score?` | `string` | ⬜ | 2-32 個字元 |
| `url?` | `string` | ⬜ | 參見[URL 模式](#url-schema) |
#### InterestItemSchema
驗證單個興趣、愛好或個人活動。
| 屬性 | 類型 | 必需 | 驗證規則 |
| ----------- | ---------- | -- | --------------------------- |
| `name` | `string` | ✅ | 2-128 個字元 |
| `keywords?` | `string[]` | ⬜ | 參見[關鍵詞模式](#keywords-schema) |
#### LanguageItemSchema
驗證單個語言能力專案。
| 屬性 | 類型 | 必需 | 驗證規則 |
| ----------- | ----------------------- | -- | -------------------------- |
| `fluency` | [`Fluency`](#fluency) | ✅ | 必須來自預定義的[熟練程度選項](#fluency) |
| `language` | [`Language`](#language) | ✅ | 必須來自預定義的[語言選項](#language) |
| `keywords?` | `string[]` | ⬜ | 每個專案 1-32 個字元 |
#### LocationItemSchema
驗證位置和地址資訊。
| 屬性 | 類型 | 必需 | 驗證規則 |
| ------------- | --------------------- | -- | ------------------------ |
| `city` | `string` | ✅ | 2-128 個字元 |
| `address?` | `string` | ⬜ | 2-128 個字元 |
| `country?` | [`Country`](#country) | ⬜ | 必須來自預定義的[國家選項](#country) |
| `postalCode?` | `string` | ⬜ | 2-128 個字元 |
| `region?` | `string` | ⬜ | 2-128 個字元 |
#### ProfileItemSchema
驗證單個線上個人資料或社交媒體存在。
| 屬性 | 類型 | 必需 | 驗證規則 |
| ---------- | --------------------- | -- | ------------------------ |
| `network` | [`Network`](#network) | ✅ | 必須來自預定義的[網路選項](#network) |
| `username` | `string` | ✅ | 2-128 個字元 |
| `url?` | `string` | ⬜ | 有效 URL,最多 256 個字元 |
#### ProjectItemSchema
驗證單個專案、作品集作品或技術工作。
| 屬性 | 類型 | 必需 | 驗證規則 |
| -------------- | ---------- | -- | ------------------------- |
| `name` | `string` | ✅ | 2-128 個字元 |
| `startDate` | `string` | ✅ | 參見[日期模式](#date-schema) |
| `summary` | `string` | ✅ | 參見[摘要模式](#summary-schema) |
| `description?` | `string` | ⬜ | 4-128 個字元 |
| `endDate?` | `string` | ⬜ | 參見[日期模式](#date-schema) |
| `keywords?` | `string[]` | ⬜ | 每個專案 1-32 個字元 |
| `url?` | `string` | ⬜ | 有效 URL,最多 256 個字元 |
#### PublicationItemSchema
驗證單個出版物、研究工作或學術論文。
| 屬性 | 類型 | 必需 | 驗證規則 |
| -------------- | -------- | -- | ------------------------- |
| `name` | `string` | ✅ | 2-128 個字元 |
| `publisher` | `string` | ✅ | 2-128 個字元 |
| `releaseDate?` | `string` | ⬜ | 參見[日期模式](#date-schema) |
| `summary?` | `string` | ⬜ | 參見[摘要模式](#summary-schema) |
| `url?` | `string` | ⬜ | 有效 URL,最多 256 個字元 |
#### ReferenceItemSchema
驗證單個專業推薦人或推薦。
| 屬性 | 類型 | 必需 | 驗證規則 |
| --------------- | -------- | -- | ------------------------- |
| `name` | `string` | ✅ | 2-128 個字元 |
| `summary` | `string` | ✅ | 參見[摘要模式](#summary-schema) |
| `email?` | `string` | ⬜ | 參見[電子郵件模式](#email-schema) |
| `phone?` | `string` | ⬜ | 有效電話格式 |
| `relationship?` | `string` | ⬜ | 2-128 個字元 |
#### SkillItemSchema
驗證單個技能、能力或技術能力。
| 屬性 | 類型 | 必需 | 驗證規則 |
| ----------- | ----------------- | -- | ---------------------- |
| `level` | [`Level`](#level) | ✅ | 必須來自預定義的[級別選項](#level) |
| `name` | `string` | ✅ | 2-128 個字元 |
| `keywords?` | `string[]` | ⬜ | 每個專案 1-32 個字元 |
#### VolunteerItemSchema
驗證單個志願者經歷或社區服務。
| 屬性 | 類型 | 必需 | 驗證規則 |
| -------------- | -------- | -- | ------------------------- |
| `organization` | `string` | ✅ | 2-128 個字元 |
| `position` | `string` | ✅ | 2-128 個字元 |
| `startDate` | `string` | ✅ | 參見[日期模式](#date-schema) |
| `summary` | `string` | ✅ | 參見[摘要模式](#summary-schema) |
| `endDate?` | `string` | ⬜ | 參見[日期模式](#date-schema) |
| `url?` | `string` | ⬜ | 有效 URL,最多 256 個字元 |
#### WorkItemSchema
驗證單個工作經歷或就業職位。
| 屬性 | 類型 | 必需 | 驗證規則 |
| ----------- | ---------- | -- | ------------------------- |
| `name` | `string` | ✅ | 2-128 個字元 |
| `position` | `string` | ✅ | 2-128 個字元 |
| `startDate` | `string` | ✅ | 參見[日期模式](#date-schema) |
| `summary` | `string` | ✅ | 參見[摘要模式](#summary-schema) |
| `endDate?` | `string` | ⬜ | 參見[日期模式](#date-schema) |
| `keywords?` | `string[]` | ⬜ | 每個專案 1-32 個字元 |
| `url?` | `string` | ⬜ | 有效 URL,最多 256 個字元 |
### LocaleSchema
驗證國際化和本地化的區域設置。
| 屬性 | 類型 | 必需 | 驗證規則 |
| ----------- | ----------------------------------- | -- | ---------------------------------- |
| `language?` | [`LocaleLanguage`](#localelanguage) | ⬜ | 必須來自預定義的[區域語言選項](#locale-language) |
### LayoutsSchema
定義整體佈局驗證配置。
| 屬性 | 類型 | 必需 | 驗證規則 |
| ----------- | --------------------------------------------------------------------------------------------------------------------------------------- | -- | ------- |
| `layouts[]` | [`HtmlLayoutSchema`](#htmllayoutschema) \| [`LatexLayoutSchema`](#latexlayoutschema) \| [`MarkdownLayoutSchema`](#markdownlayoutschema) | ⬜ | 佈局配置陣列。 |
#### 通用佈局模式
##### MarginsSchema
驗證文件佈局的頁邊距設置。
| 屬性 | 類型 | 必需 | 驗證規則 |
| --------- | -------- | -- | -------------------------------- |
| `top?` | `string` | ⬜ | 參見[頁邊距大小模式](#margin-size-schema) |
| `bottom?` | `string` | ⬜ | 參見[頁邊距大小模式](#margin-size-schema) |
| `left?` | `string` | ⬜ | 參見[頁邊距大小模式](#margin-size-schema) |
| `right?` | `string` | ⬜ | 參見[頁邊距大小模式](#margin-size-schema) |
##### SectionsSchema
驗證分節自定義設置。
| 屬性 | 類型 | 必需 | 驗證規則 |
| ---------- | --------------------------- | -- | ------------------------------ |
| `aliases?` | `Record` | ⬜ | 鍵必須是有效的分節 ID,值必須是字串(2-128 個字元) |
| `order?` | `OrderableSectionID[]` | ⬜ | 有效可排序分節 ID 的陣列 |
#### HtmlLayoutSchema
驗證 HTML 佈局配置。
| 屬性 | 類型 | 必需 |
| ------------- | ----------------------------------------------- | -- |
| `engine` | `'html'` | ✅ |
| `advanced?` | [`HtmlAdvancedSchema`](#htmladvancedschema) | ⬜ |
| `sections?` | [`SectionsSchema`](#sectionsschema) | ⬜ |
| `template?` | [`HtmlTemplateSchema`](#htmltemplateschema) | ⬜ |
| `typography?` | [`HtmlTypographySchema`](#htmltypographyschema) | ⬜ |
##### HtmlAdvancedSchema
驗證 HTML 的進階佈局配置選項。
| 屬性 | 類型 | 必需 | 驗證規則 |
| -------------- | --------- | -- | ---------- |
| `showIcons?` | `boolean` | ⬜ | true/false |
| `title?` | `string` | ⬜ | - |
| `footer?` | `string` | ⬜ | - |
| `description?` | `string` | ⬜ | - |
| `keywords?` | `string` | ⬜ | - |
##### HtmlTemplateSchema
驗證 HTML 模板配置。
| 屬性 | 類型 | 必需 | 驗證規則 |
| ---------- | ------------------------------- | -- | ----------------------------- |
| `template` | [`HtmlTemplate`](#htmltemplate) | ⬜ | 必須來自預定義的[模板選項](#htmltemplate) |
##### HtmlTypographySchema
驗證 HTML 排版設置。
| 屬性 | 類型 | 必需 | 驗證規則 |
| ------------- | ------------------------------- | -- | ------------------------------- |
| `fontFamily?` | `string` | ⬜ | 逗號分隔的字體家族列表。 |
| `fontSize?` | [`HtmlFontSize`](#htmlfontsize) | ⬜ | 必須來自預定義的[字體大小選項](#htmlfontsize) |
#### LatexLayoutSchema
驗證 LaTeX 佈局配置。
| 屬性 | 類型 | 必需 | 驗證規則 |
| ------------- | ------------------------------------------------- | -- | -------------------------------- |
| `advanced?` | [`LatexAdvancedSchema`](#latexadvancedschema) | ⬜ | 參見[高級模式](#latexadvancedschema) |
| `engine` | `'latex'` | ✅ | 必須是 "latex" |
| `page?` | [`LatexPageSchema`](#latexpageschema) | ⬜ | 參見[頁面模式](#latexpageschema) |
| `sections?` | [`SectionsSchema`](#sectionsschema) | ⬜ | 參見[分節模式](#sectionsschema) |
| `template?` | [`LatexTemplate`](#latextemplate) | ⬜ | 必須來自預定義的[模板選項](#template) |
| `typography?` | [`LatexTypographySchema`](#latextypographyschema) | ⬜ | 參見[排版模式](#latextypographyschema) |
##### LatexAdvancedSchema
驗證 LaTeX 的高級配置選項。
| 屬性 | 類型 | 必需 | 驗證規則 |
| ------------ | ------------------------------------ | -- | ----------------------------------------- |
| `fontspec?` | `{ numbers?: LatexFontspecNumbers }` | ⬜ | 必須來自預定義的[fontspec 數字選項](#fontspecnumbers) |
| `showIcons?` | `boolean` | ⬜ | true/false |
##### LatexPageSchema
驗證文件演示的頁面級設置。
| 屬性 | 類型 | 必需 | 驗證規則 |
| ------------------ | --------------------------------- | -- | ---------------------------- |
| `margins?` | [`MarginsSchema`](#marginsschema) | ⬜ | 參見[頁邊距模式](#marginsschema) |
| `paperSize?` | [`PaperSize`](#papersize) | ⬜ | 必須來自預定義的[紙張大小選項](#papersize) |
| `showPageNumbers?` | `boolean` | ⬜ | true/false |
##### LatexTypographySchema
驗證文件格式的排版設置。
| 屬性 | 類型 | 必需 | 驗證規則 |
| ------------- | ------------------------- | -- | --------------------------- |
| `fontSize?` | `string` | ⬜ | 必須來自預定義的[字體大小選項](#fontsize) |
| `fontFamily?` | `string` | ⬜ | 逗號分隔的字體家族列表。 |
| `links?` | `{ underline?: boolean }` | ⬜ | true/false |
#### MarkdownLayoutSchema
驗證 Markdown 佈局配置。
| 屬性 | 類型 | 必需 | 驗證規則 |
| ----------- | ----------------------------------- | -- | ------------------------- |
| `engine` | `'markdown'` | ✅ | 必須是 "markdown" |
| `sections?` | [`SectionsSchema`](#sectionsschema) | ⬜ | 參見[分節模式](#sectionsschema) |
## 原始驗證模式
### 電子郵件模式
使用嚴格格式要求驗證電子郵件地址。
**驗證規則:**
* 必須是有效的電子郵件格式
* 模式:`^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$`
* 示例:`hi@ppresume.com`、`first.last@company.org`、`test+tag@domain.co.uk`
### 電話模式
使用靈活格式支援驗證電話號碼。
**驗證規則:**
* 模式:`^[+]?[(]?[0-9\\s-]{1,15}[)]?[0-9\\s-]{1,15}$`
* 可能包括國家代碼、括號、空格和連字元
* 示例:`555-123-4567`、`+44 20 7946 0958`、`(555) 123-4567`
### 摘要模式
使用長度約束驗證摘要文字。
**驗證規則:**
* 必須在 16 到 1024 個字元之間
* 示例:
* "具有 5 年以上全棧開發經驗的軟體工程師。"
* "熱衷於使用者體驗和現代設計原則的創意設計師。"
* "在按時按預算交付複雜專案方面有良好記錄的專案經理。"
### URL 模式
使用長度約束驗證 URL。
**驗證規則:**
* 必須是有效的 URL 格式
* 最大長度為 256 個字元
* 示例:`https://yamlresume.dev`、`https://ppresume.com`、`https://github.com/yamlresume/yamlresume`
### 關鍵詞模式
使用單個專案約束驗證關鍵詞陣列。
**驗證規則:**
* 字串陣列
* 每個關鍵詞必須在 1 到 32 個字元之間
* 示例:`["Javascript", "React", "Typescript"]`、`["Design", "UI", "UX"]`
### 日期模式
使用格式要求驗證日期字串。
**驗證規則:**
* 必須在 4 到 32 個字元之間
* 必須可被 `Date.parse()` 解析
* 示例:`2025-01-01`、`Jul 2025`、`July 3, 2025`、`2025-02-02T00:00:03.123Z`
### 頁邊距大小模式
使用單位要求驗證頁邊距大小字串。
**驗證規則:**
* 必須在 2 到 32 個字元之間
* 模式:`^\\d+(\\.\\d+)?(cm|pt|in)$`
* 必須是正數後跟有效單位:cm、pt 或 in
* 示例:`2.5cm`、`1in`、`72pt`、`0.5cm`、`12pt`
## 枚舉驗證模式
### 國家
世界上所有可能國家和地區的聯合類型。
**驗證規則:**
* 必須是預定義的國家選項之一
* 示例:`United States`、`China`、`United Kingdom`、`Germany`
\###學位
所有可能學位的聯合類型。
**驗證規則:**
* 必須是以下之一:`Associate`、`Bachelor`、`Diploma`、`Doctor`、`High School`、`Master`、`Middle School`
### 熟練程度
所有可能語言熟練程度的聯合類型。
**驗證規則:**
* 必須是以下之一:
* `Elementary Proficiency`
* `Full Professional Proficiency`
* `Limited Working Proficiency`
* `Minimum Professional Proficiency`
* `Native or Bilingual Proficiency`
### 語言
所有支援語言的聯合類型。
**驗證規則:**
* 必須是預定義的語言選項之一
* 示例:`English`、`Chinese`、`Spanish`、`French`、`German`
### 級別
所有可能技能熟練程度的聯合類型。
**驗證規則:**
* 必須是以下之一:`Advanced`、`Beginner`、`Expert`、`Intermediate`、`Master`、`Novice`
### 網路
所有可能社交網路選項的聯合類型。
**驗證規則:**
* 必須是預定義的網路選項之一
* 示例:`GitHub`、`LinkedIn`、`Twitter`、`Facebook`、`Instagram`
### LatexTemplate
所有可能模板選項的聯合類型。
**驗證規則:**
* 必須是以下之一:`moderncv-banking`、`moderncv-casual`、`moderncv-classic`
* 必須是以下之一:`moderncv-banking`、`moderncv-casual`、`moderncv-classic`
* 另請參閱:[模板](/zh-tw/docs/layouts/latex/templates)
### HtmlFontSize
所有可能 HTML 字體大小選項的聯合類型。
**驗證規則:**
* 必須是以下之一:`10px`、`11px`、`12px`、`13px`、`14px`、`15px`、`16px`、`17px`、`18px`、`19px`、`20px`、`21px`、`22px`、`23px`、`24px`
* HTML 引擎支援 10px 到 24px 的字體大小
* `16px` 是預設字體大小
### HtmlTemplate
所有可能 HTML 模板選項的聯合類型。
**驗證規則:**
* 必須是以下之一:`calm`
* 另請參閱:[模板](/zh-tw/docs/layouts/html/templates)
### LocaleLanguage
所有可能區域語言的聯合類型。
**驗證規則:**
* 必須是以下之一:`en`、`es`、`zh-hans`、`zh-hant-hk`、`zh-hant-tw`
* 另請參閱:[多語言](/zh-tw/docs/locale)
### LatexFontspecNumbers
所有可能 latex fontspec 數字選項的聯合類型。
**驗證規則:**
* 必須是以下之一:
* `Auto` - 允許根據選定的 `LocaleLanguage` 自動確定樣式(預設)
* `Lining` - 標準襯線數字(CJK 語言的預設值)
* `OldStyle` - 不同高度的舊式數字(拉丁語言的預設值)
### LatexFontSize
所有可能字體大小選項的聯合類型。
**驗證規則:**
* 必須是以下之一:`10pt`、`11pt`、`12pt`
* `10pt` 是預設字體大小
### PaperSize
所有可能的 LaTeX 紙張大小選項的聯合類型。
**驗證規則:**
* 必須是以下之一:`a4`、`letter`
# HTML 引擎
URL: (/zh-tw/docs/layouts/html)
HTML 引擎生成乾淨、適用於網路的 HTML 版本履歷。這特別適用於在網站中嵌入履歷、線上分享或創建基於網路的作品集。
## 配置
要使用 HTML 引擎,請在佈局配置中指定 `engine: html`。
```yaml
layouts:
- engine: html
template: calm
# ... 其他選項
```
## 章節
`sections` 選項允許您自定義章節標題及其順序。更多資訊,請參見[章節文件](./sections)。
```yml lineNumbers
layouts:
- engine: html
sections:
aliases:
work: "Professional Experience"
education: "Education"
skills: "Skills"
order:
- basics
- work
- education
```
## 模板
`template` 選項允許您從各種模板中選擇。每個模板都有獨特的設計和佈局。您可以在[模板文件](./html/templates)中找到可用模板的列表。
```yml lineNumbers
layouts:
- engine: html
template: calm
```
## 排版
`typography` 選項允許您自定義履歷中使用的字體樣式。
### 字體大小
`fontSize` 選項允許您設置文件的基本字體大小。
HTML 引擎支援從 `14px` 到 `20px` 的字體大小。
### 字體家族
`fontFamily` 選項允許您指定字體家族名稱和/或通用家族名稱的優先列表。
這與 CSS 的 `font-family` 屬性完全相同。
```yaml
layouts:
- engine: html
typography:
fontSize: 16px
fontFamily: "Merriweather, serif"
```
## 進階設置
`advanced` 選項允許您配置 HTML 引擎的進階設置。
```yml lineNumbers
layouts:
- engine: html
advanced:
showIcons: true
# HTML 文件的自定義標題。
title: "我的自定義履歷標題"
# HTML 文件的自定義頁尾。
footer: "由 YAMLResume 生成"
# HTML 文件的 Meta 描述。
description: "用於 SEO 的履歷簡短描述。"
# HTML 文件的 Meta 關鍵字。
keywords: "履歷, CV, yamlresume"
```
# LaTeX 引擎
URL: (/zh-tw/docs/layouts/latex)
LaTeX 引擎是 YAMLResume 的核心引擎,旨在通過 LaTeX 模板生成高品質、外觀專業的 PDF 履歷。
## 配置
要使用 LaTeX 引擎,請在佈局配置中指定 `engine: latex`。
```yaml
layouts:
- engine: latex
template: moderncv-banking
# ... 其他選項
```
## 頁面
`page` 選項允許您自定義頁面設置,如紙張大小、邊距和是否顯示頁碼。
```yml lineNumbers
layouts:
- engine: latex
page:
showPageNumbers: true
# a4 或 letter
paperSize: a4
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
```
## 章節
`sections` 選項允許您自定義章節標題及其順序。更多資訊,請參見[章節文件](./sections)。
```yml lineNumbers
layouts:
- engine: latex
sections:
aliases:
work: "Professional Experience"
education: "Education"
skills: "Skills"
order:
- basics
- work
- education
```
## 模板
`template` 選項允許您從各種模板中選擇。每個模板都有獨特的設計和佈局。您可以在[模板文件](./latex/templates)中找到可用模板的列表。
```yml lineNumbers
layouts:
- engine: latex
template: moderncv-banking
```
## 排版
`typography` 選項允許您自定義簡歷中使用的字體樣式。
### 字體大小
`fontSize` 選項允許您設置文檔的基本字體大小。
LaTeX 引擎僅支持 `10pt`、`11pt` 和 `12pt`。
### 字體家族
`fontFamily` 選項允許您指定字體家族名稱的優先列表。
這與 CSS 的 `font-family` 屬性類似。
```yaml
layouts:
- engine: latex
typography:
fontSize: 11pt
fontFamily: "Merriweather, serif"
```
## 進階設置
`advanced` 選項允許您配置 LaTeX 引擎的進階設置。
```yml lineNumbers
layouts:
- engine: latex
advanced:
showIcons: true
fontspec:
numbers: Lining
```
# Markdown 引擎
URL: (/zh-tw/docs/layouts/markdown)
markdown 引擎生成簡歷的純 Markdown 版本。當您需要將簡歷內容複製粘貼到申請人跟蹤系統 (ATS) 或其他不支持 PDF 上傳的表單時,這特別有用。
## 配置
要使用 markdown 引擎,請在佈局配置中指定 `engine: markdown`。
```yml
layouts:
- engine: markdown
```
markdown 輸出將與您的 PDF 一起生成(如果您也配置了 LaTeX 佈局)或作爲獨立文件生成。
與 [LaTeX 佈局](./latex) 不同,Markdown 佈局是一個簡單的佈局,除了[章節別名](/docs/layouts/sections/aliases)和[章節重新排序](/docs/layouts/sections/reorder)外,沒有額外的配置。
```yml lineNumbers title="resume.yml"
---
content:
# ...
locale:
language: en
layouts:
- engine: markdown
sections:
aliases:
work: Professional Experience
education: Academic Background
skills: Technical Skills
order:
- basics
- work
- education
- skills
```
章節的 `aliases` 和 `order` 將在最終的 markdown 輸出中得到遵守。
# 別名
URL: (/zh-tw/docs/layouts/sections/aliases)
YAMLResume 為[除 `location` 和 `profiles`](#aliasable-sections) 之外的所有履歷章節提供默認標題,這些標題會根據選擇的[語言環境語言](/zh-tw/docs/layouts#locale)自動[翻譯](docs/locale)。但是,您可能希望自定義這些標題以更好地適合您的檔案或行業。`section aliases` 功能允許您用自己的自定義名稱覆蓋默認章節標題。
例如,您可能更喜歡 `work` 章節使用「Professional Experience」而不是「Work」,或者 `skills` 章節使用「Technical Proficiencies」而不是「Skills」。
## 如何使用
您可以在 `resume.yml` 文件的 `layouts.[].sections` 配置中定義章節別名。在您的佈局中添加一個 `sections` 對象,在其中添加一個 `aliases` 映射。
`aliases` 映射中的鍵是標準章節 ID,值是您要使用的自定義標題。
## 示例
以下是如何更改 `work`、`education` 和 `skills` 章節的標題:
```yml lineNumbers title="resume.yml"
---
content:
# ...
layouts:
- engine: latex
sections:
aliases:
work: Professional Experience
education: Academic Background
skills: Technical Skills
```
當您使用此配置構建履歷時,生成的 PDF 將使用「Professional Experience」、「Academic Background」和「Technical Skills」作為這些章節的標題,覆蓋默認或特定於語言環境的名稱。
如果未為某個章節提供別名,YAMLResume 將回退到配置語言環境的默認標題。
## 可別名的章節
您可以為以下章節提供別名:
* `basics`
* `education`
* `work`
* `volunteer`
* `awards`
* `certificates`
* `publications`
* `skills`
* `languages`
* `interests`
* `references`
* `projects`
## 規則和約束
* 別名長度必須在 2 到 128 個字符之間。
# 章節
URL: (/zh-tw/docs/layouts/sections)
YAMLResume 提供靈活的選項來自定義履歷的章節。您可以更改任何章節的標題並重排章節以最適合您的專業檔案。這些自定義在您的 `resume.yml` 文件中的 `layouts.[].sections` 配置中處理。
```yml lineNumbers title="resume.yml"
---
content:
# ...
layouts:
- engine: latex
sections:
aliases:
work: "Professional Experience"
education: "Academic Background"
skills: "Technical Skills"
order:
- work
- education
- awards
- volunteer
```
## 了解更多
# 重排
URL: (/zh-tw/docs/layouts/sections/reorder)
默認情況下,YAMLResume 按標準順序排列章節。但是,您可以通過提供自定義 `order` 列表輕鬆更改此設置。這允許您首先突出顯示最重要的資訊。
## 如何使用
例如,如果您想將「Skills」和「Projects」章節放在「Work」經歷之前,您可以這樣定義順序:
```yml lineNumbers title="resume.yml"
---
content:
# ...
layouts:
- engine: latex
sections:
order:
- skills
- projects
- work
```
包含在 `order` 列表中的任何章節將首先出現,按您指定的順序。未包含在列表中的章節將在後面追加,遵循其默認順序。
## 示例
### 優先考慮工作經歷
```yml lineNumbers
layouts:
- engine: latex
sections:
order:
- work
- education
```
結果:工作經歷首先出現,然後是教育,然後是所有其他章節按默認順序。
### 突出技能和語言
```yml lineNumbers
layouts:
- engine: latex
sections:
order:
- skills
- languages
- work
```
結果:技能和語言在頂部突出顯示,然後是工作經歷,然後是其餘章節。
### 學術重點
```yml lineNumbers
layouts:
- engine: latex
sections:
order:
- education
- publications
- awards
- certificates
```
結果:學術章節首先出現,然後是其他章節按默認順序。
## 默認章節順序
當未指定自定義順序時,章節按此默認順序渲染:
1. `basics`(默認渲染到履歷頂部作為摘要章節)
2. `education`
3. `work`
4. `languages`
5. `skills`
6. `awards`
7. `certificates`
8. `publications`
9. `references`
10. `projects`
11. `interests`
12. `volunteer`
## 實現細節
* **優先級**:在 `order` 中指定的章節按指定序列首先出現
* **回退**:其餘章節按默認順序跟隨
* **去重**:順序數組中的重複章節會被去重(保留第一次出現)
* **空章節**:沒有內容的章節會自動過濾掉
* **靈活性**:用戶可以指定任何可排序章節的子集
## 可排序的章節
以下章節可以重排:
* `basics`
* `education`
* `work`
* `volunteer`
* `awards`
* `certificates`
* `publications`
* `skills`
* `languages`
* `interests`
* `references`
* `projects`
# Calm
URL: (/zh-tw/docs/layouts/html/templates/calm)
## 實現
Calm 是一個靈感來自 moderncv LaTeX 模板的乾淨現代的 HTML 模板。它具有簡約設計,章節分隔清晰,以及針對網頁瀏覽優化的優雅佈局。
在底層,該模板使用:
* **CSS 重置**:自定義重置樣式表,確保跨瀏覽器一致渲染
* **排版**:可自定義的字體大小,範圍從 14px 到 20px
* **響應式設計**:適應不同螢幕尺寸的乾淨佈局
* **語義化 HTML**:適當的 HTML5 結構,提升可訪問性和 SEO
## 配置
```yml lineNumbers title="resume.yml"
content:
# ...
layouts:
- engine: html
template: calm # [!code highlight]
typography:
fontSize: 16px
```
## 特性
* **乾淨的設計**:專注於內容可讀性的簡約佈局
* **現代排版**:具有可自定義大小的專業字體
* **網路就緒**:可以直接嵌入網站或透過 URL 分享
* **適合列印**:針對從網頁瀏覽器列印為 PDF 優化
* **可自定義章節**:靈活的章節順序和命名
## 預覽
Calm 模板提供適合各種行業和經驗水平的專業外觀。其乾淨的設計確保您的內容成為焦點,同時保持視覺吸引力。
# 模板
URL: (/zh-tw/docs/layouts/html/templates)
YAMLResume 提供開箱即用的 HTML 模板,您可以使用 `yamlresume templates list` 命令列出所有模板。
```console
$ yamlresume templates list
| layouts.[].template | Engine | Template Name | Description |
| ------------------- | ------ | ---------------- | ------------------------------------------------- |
| moderncv-banking | latex | ModernCV Banking | ModernCV template with banking style |
| moderncv-casual | latex | ModernCV Casual | ModernCV template with casual style |
| moderncv-classic | latex | ModernCV Classic | ModernCV template with classic style |
| calm | html | Calm | Clean and minimalist design suitable for all professionals. |
| vscode | html | VS Code | Dark theme inspired by Visual Studio Code, tailored for developers. |
```
預設情況下,YAMLResume 對 HTML 輸出使用 [calm](./templates/calm) 模板。您可以通過在 YAML 履歷中設置 `layouts.[].template` 來更改模板。
```yml lineNumbers title="resume.yml"
content:
# ...
layouts:
- engine: html
# ...
template: calm # [!code highlight]
# ...
```
查看以下模板瞭解更多詳情:
# VS Code
URL: (/zh-tw/docs/layouts/html/templates/vscode)
## 實作
VS Code 是一款受 Visual Studio Code "Dark+" 配色方案啟發的深色主題。它專為開發者、軟體工程師和技術專業人士量身定制,旨在讓你的履歷反映出你真實的編碼環境。
該模板採用了「履歷即代碼」(Resume as Code)的美學理念,將你個人資料的不同部分視為代碼元素:
* **姓名**:裝飾為 `class`(例如:`class JohnDoe {`)
* **標題/標語**:呈現為代碼注釋(例如:`// Full Stack Engineer`)
* **章節**:表示為函數調用(例如:`experience()`)
* **技能/語言**:樣式設定為對象屬性鍵(例如:`JavaScript: Expert`)
在底層實作上,該模板採用了:
* **字體排版**:使用等寬字體系列(`Consolas`, `Monaco`, `Courier New`, `monospace`)以營造真實的 IDE 質感
* **語法高亮**:使用 VS Code Dark+ 官方配色方案來區分關鍵字、字串、類別和函數
* **布局縮進**:引入垂直縮進指南(左邊框)來直觀地表示每個章節的作用域
## 配置
```yml lineNumbers title="resume.yml"
content:
# ...
layouts:
- engine: html
template: vscode # [!code highlight]
typography:
fontSize: 16px
```
## 特性
* **以開發者為中心**:完美展示技術熟練度以及對編寫代碼的熱情
* **預設深色模式**:高對比度、保護眼睛的深色主題
* **類代碼結構**:獨特的視覺隱喻,讓技術履歷脫穎而出
* **響應式設計**:完全適配桌面端和移動端瀏覽,保持一致的代碼語義
* **語法樣式**:使用熟悉的 IDE 顏色來區分職位、日期和描述
## 預覽
VS Code 模板提供了一種獨特且現代的外觀,能立即引起技術招聘人員和招聘經理的共鳴。它將你的職業歷程轉化為一份簡潔、易讀且視覺上非常熟悉的「源文件」。
# 模板
URL: (/zh-tw/docs/layouts/latex/templates)
YAMLResume 提供了幾個開箱即用的模板,您可以使用 `yamlresume templates list` 命令列出所有模板。
```console
$ yamlresume templates list
| `layouts.[].template` | `Engine` | `Template Name` | `Description` |
| --------------------- | -------- | ------------------ | -------------------------------------- |
| `moderncv-banking` | `latex` | `ModernCV Banking` | `ModernCV template with banking style` |
| `moderncv-casual` | `latex` | `ModernCV Casual` | `ModernCV template with casual style` |
| `moderncv-classic` | `latex` | `ModernCV Classic` | `ModernCV template with classic style` |
```
默認情況下,YAMLResume 使用 [moderncv-banking](./moderncv-banking) 模板。您可以通過在 YAML 履歷中設置 `layouts.[].template` 來更改模板。
```yml lineNumbers title="resume.yml"
content:
# ...
layouts:
- engine: latex
# ...
template: moderncv-classic # [!code highlight]
# ...
```
查看以下模板以獲取更多詳細資訊:
# Moderncv Banking
URL: (/zh-tw/docs/layouts/latex/templates/moderncv-banking)
## 實現
Moderncv banking 是一個基於 [xdanaux/moderncv](https://github.com/xdanaux/moderncv) 的現代簡潔履歷模板。
在底層,我們使用以下代碼作為 LaTeX 前言:
```latex lineNumbers
\documentclass[a4paper, serif, 11pt]{moderncv}
%% moderncv
% style and color
\moderncvstyle{banking}
\moderncvcolor{black}
% needed by moderncv for showing icons
\usepackage{fontawesome5}
```
對於 moderncv banking 樣式,我們還採用了一些特殊的標點符號處理,以便與 CJK 配合使用。
從技術上講,英語和中文有不同的冒號。英語冒號是 `:`,Unicode 為 `U+003A`,而中文冒號是 `:`,Unicode 為 `U+FF1A`。所以當履歷語言是中文時,我們會通過覆蓋一些神奇的 LaTeX 宏來為 moderncv 採用中文冒號:
```latex lineNumbers
% renew moderncv command to adapt for CJK colon
\renewcommand*{\cvitem}[3][.25em]{%
\ifstrempty{#2}{}{\hintstyle{#2}<= &templateTranslations.punctuations.Colon =>}{#3}%
\par\addvspace{#1}}
\renewcommand*{\cvitemwithcomment}[4][.25em]{%
\savebox{\cvitemwithcommentmainbox}{\ifstrempty{#2}{}{\hintstyle{#2}<= &templateTranslations.punctuations.Colon =>}#3}%
\setlength{\cvitemwithcommentmainlength}{\widthof{\usebox{\cvitemwithcommentmainbox}}}%
\setlength{\cvitemwithcommentcommentlength}{\maincolumnwidth-\separatorcolumnwidth-\cvitemwithcommentmainlength}%
\begin{minipage}[t]{\cvitemwithcommentmainlength}\usebox{\cvitemwithcommentmainbox}\end{minipage}%
\hfill% fill of \separatorcolumnwidth
\begin{minipage}[t]{\cvitemwithcommentcommentlength}\raggedleft\small\itshape#4\end{minipage}%
\par\addvspace{#1}}
```
查看我們的博客[文章](https://blog.ppresume.com/posts/multi-languagues-support#colon)了解更多詳情。
## 預覽
# Moderncv Casual
URL: (/zh-tw/docs/layouts/latex/templates/moderncv-casual)
## 實現
Moderncv casual 是一個基於 [xdanaux/moderncv](https://github.com/xdanaux/moderncv) 的現代休閒履歷模板。
在底層,我們使用以下代碼作為 LaTeX 前言:
```latex lineNumbers
\documentclass[a4paper, serif, 11pt]{moderncv}
%% moderncv
% style and color
\moderncvstyle{casual}
\moderncvcolor{black}
% needed by moderncv for showing icons
\usepackage{fontawesome5}
```
## 預覽
# Moderncv Classic
URL: (/zh-tw/docs/layouts/latex/templates/moderncv-classic)
## 實現
Moderncv classic 是一個基於 [xdanaux/moderncv](https://github.com/xdanaux/moderncv) 的現代經典履歷模板。
在底層,我們使用以下代碼作為 LaTeX 前言:
```latex lineNumbers
\documentclass[a4paper, serif, 11pt]{moderncv}
%% moderncv
% style and color
\moderncvstyle{classic}
\moderncvcolor{black}
% needed by moderncv for showing icons
\usepackage{fontawesome5}
```
## 預覽
# CLI Simplifié
URL: (/fr/docs/cli-simple)
YAMLResume fournit un outil CLI pour vous aider à gérer votre CV.
## Aide
Afficher l'aide du CLI :
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] resume-path build a resume to LaTeX and PDF
dev [options] resume-path build a resume on file changes
languages i18n and l10n support
templates manage resume templates
validate resume-path validate a resume
help [command] display help for command
```
## Nouveau
Créer un nouveau CV :
```console
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
## Construire
Construire un CV de YAML à PDF :
```console
$ yamlresume build my-resume.yml
✔ Generated resume PDF file successfully.
```
# CLI
URL: (/fr/docs/cli)
YAMLResume fournit un outil CLI pour vous aider à gérer votre CV. Vous pouvez suivre
le [guide d'installation](/docs/installation) pour l'installer.
Veuillez noter que nous avons une [image docker](/docs/installation#docker-users)
pour vous, qui a le CLI `yamlresume` installé avec toutes les dépendances
nécessaires.
Pour chaque sous-commande dans ce guide, vous pouvez l'exécuter dans docker en
ajoutant la sous-commande après `yamlresume/yamlresume`.
Par exemple, pour créer un nouveau CV dans le CLI yamlresume :
```sh
yamlresume new my-resume.yml
```
Vous pouvez aussi l'exécuter dans docker avec :
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
```
## Help
Afficher l'aide du CLI et toutes les commandes disponibles :
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build a resume on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
Afficher la version du CLI YAMLResume :
```console
$ yamlresume -V
0.5.0
```
## New
Créer un nouveau CV. Le nom de fichier par défaut est `resume.yml`, mais vous
pouvez spécifier un nom de fichier personnalisé :
```console
$ yamlresume new --help
Usage: yamlresume new [options] [filename]
create a new resume
Arguments:
filename output filename (default: "resume.yml")
Options:
-h, --help display help for command
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
## Build
Construire un CV de YAML vers PDF. Il générera le code LaTeX et le PDF en même
temps, avec quelques fichiers intermédiaires `.aux`, `.log` etc, si vous utilisez
[XeTeX](/docs/installation#xetex) comme moteur de composition.
```console
$ yamlresume build --help
Usage: yamlresume build [options]
build a resume to LaTeX and PDF
Arguments:
resume-path the resume file path
Options:
--no-pdf only generate TeX file without PDF
--no-validate skip resume schema validation
-h, --help display help for command
$ yamlresume build my-resume.yml
◐ Generating resume PDF file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume PDF file successfully.
```
### `--no-pdf`
Si vous voulez seulement générer le fichier LaTeX sans PDF, vous pouvez utiliser
l'option `--no-pdf`.
```console
$ yamlresume build --no-pdf my-resume.yml
```
### `--no-validate`
Si vous voulez ignorer la validation du schéma de CV, vous pouvez utiliser
l'option `--no-validate`.
```console
$ yamlresume build --no-validate my-resume.yml
```
## Dev
Construire un CV de YAML vers PDF lors des changements de fichier. Il accepte
les mêmes options que [`build`](#construire) mais il reconstruira automatiquement
le CV quand le fichier YAML est modifié (mode surveillance). Ceci sera très
pratique pour prévisualiser vos changements de CV en temps réel.
```console
$ yamlresume dev --help
Usage: yamlresume dev [options]
build a resume on file changes (watch mode)
Arguments:
resume-path the resume file path
Options:
--no-pdf only generate TeX file without PDF
--no-validate skip resume schema validation
-h, --help display help for command
```
## Validate
Valider un CV contre le [schéma](/docs/compiler/schema) YAMLResume.
```console
$ yamlresume validate --help
Usage: yamlresume validate [options]
validate a resume against the YAMLResume schema
Arguments:
resume-path the resume file path
Options:
-h, --help display help for command
```
Par exemple, pour le CV suivant :
```yml lineNumbers
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
---
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@pp
url: https://ppresume.com/gallery
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
region: California
city: S
country: United States
postalCode: "95814"
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
startDate: Sep 1, 2016
endDate:
courses:
- D
- Programming Language Concepts
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
layouts:
- engine: latex
typography:
fontSize: 13pt
```
`yamlresume validate` vous donnera une liste d'erreurs potentielles, avec des
informations de position claires
```console
$ yamlresume validate my-resume.yml
invalid-resume.yml:9:12: warning: email is invalid.
email: hi@pp
^
invalid-resume.yml:19:11: warning: city should be 2 characters or more.
city: S
^
invalid-resume.yml:31:11: warning: courses should be 2 characters or more.
- D
^
invalid-resume.yml:41:17: warning: font size option is invalid, it must be one of the following: ["10pt", "11pt", "12pt"]
fontSize: 13pt
^
✖ Resume validation failed.
```
## Languages
Lister toutes les langues disponibles. Le code de langue suit la spécification
[ISO 639](https://www.iso.org/iso-639-language-code). Vous pouvez spécifier
le code de langue dans `locale.language` afin de changer la langue de
votre CV. Changer la langue de votre CV traduira automatiquement tous les termes
fixes. Vous pouvez vérifier plus de détails dans notre section [contenu ->
multi langues](/docs/locale).
```console
$ yamlresume languages list
| locale.language | Language Name | 1:03:48 PM
| --------------- | ------------------------------- |
| en | English |
| zh-hans | Simplified Chinese |
| zh-hant-hk | Traditional Chinese (Hong Kong) |
| zh-hant-tw | Traditional Chinese (Taiwan) |
| es | Spanish |
| fr | French |
| no | Norwegian |
| nl | Dutch |
| ja | Japanese |
| de | German |
```
## Templates
Lister tous les modèles disponibles. Vous pouvez changer le modèle de CV en
définissant `layouts.[].template` dans votre CV YAML. [Modèles PPResume](https://docs.ppresume.com/typesetting/templates) pour plus de détails.
```console
$ yamlresume templates list
| `layouts.[].template` | `Engine` | `Template Name` | `Description` |
| --------------------- | -------- | ------------------ | -------------------------------------- |
| `moderncv-banking` | `latex` | `ModernCV Banking` | `ModernCV template with banking style` |
| `moderncv-casual` | `latex` | `ModernCV Casual` | `ModernCV template with casual style` |
| `moderncv-classic` | `latex` | `ModernCV Classic` | `ModernCV template with classic style` |
```
# Comparaisons
URL: (/fr/docs/comparisons)
## JSON Resume
[JSON Resume](https://jsonresume.org) est un pionnier dans la construction d'un standard ouvert pour un format de données structuré pour les CV. Sa première [sortie officielle](https://jsonresume.org/blog/first-official-release) était le 31 juillet 2014, il y a plus de 10 ans.
D'après son site officiel :
```markdown
## Origines et Conceptualisation
JSON Resume a été conçu comme une solution au paysage fragmenté et incohérent des formats de CV. Les CV traditionnels, généralement créés dans des formats comme Microsoft Word ou PDF, souffrent souvent de problèmes de compatibilité lorsqu'ils sont analysés par différents systèmes. Reconnaissant ce problème, Thomas Davis et Roland Sharp ont initié JSON Resume comme un projet open-source pour créer un format universel et lisible par machine pour les CV.
## Jalons de Développement
Le projet a commencé à prendre de l'élan au début des années 2010, avec des jalons significatifs tels que la création du schéma JSON Resume, le développement des premiers outils CLI, et l'établissement du registre JSON Resume. Ces jalons ont été motivés par les contributions de la communauté et la reconnaissance croissante du besoin d'un format de CV standardisé dans l'industrie technologique.
```
## Pourquoi YAML au lieu de JSON ?
Bien que JSON Resume soit un excellent projet et un standard de facto pour les CV structurés, YAMLResume prend une approche différente en utilisant YAML au lieu de JSON. Voici pourquoi :
### Lisibilité Humaine
YAML est intrinsèquement plus lisible que JSON. Comparez ces deux exemples :
**JSON:**
```json
{
"basics": {
"name": "John Doe",
"email": "john.doe@example.com",
"summary": "Un développeur logiciel passionné avec 5 ans d'expérience"
}
}
```
**YAML:**
```yaml
basics:
name: John Doe
email: john.doe@example.com
summary: Un développeur logiciel passionné avec 5 ans d'expérience
```
### Support des Commentaires
YAML prend en charge nativement les commentaires, permettant de documenter votre CV :
```yaml
basics:
name: John Doe
# Utiliser l'email professionnel pour les candidatures
email: john.doe@company.com
summary: |
Un développeur logiciel passionné avec 5 ans d'expérience
# TODO: Ajouter plus de détails sur les projets récents
```
### Texte Multi-lignes
YAML gère le texte multi-lignes de manière plus élégante :
```yaml
summary: |
• Développeur full-stack expérimenté
• Expert en React, Node.js, et PostgreSQL
• Passionné par l'architecture logicielle et les meilleures pratiques
```
vs JSON :
```json
{
"summary": "• Développeur full-stack expérimenté\n• Expert en React, Node.js, et PostgreSQL\n• Passionné par l'architecture logicielle et les meilleures pratiques"
}
```
## Autres Alternatives
### LaTeX CV
Les CV LaTeX traditionnels offrent un excellent contrôle typographique mais nécessitent :
* Connaissance de LaTeX
* Configuration manuelle de l'environnement
* Mélange de contenu et de présentation
YAMLResume vous donne la puissance de LaTeX sans sa complexité.
### Constructeurs de CV Basés sur le Web
Les constructeurs comme Canva, Resume.io, ou LinkedIn offrent :
✅ Interface utilisateur facile
❌ Verrouillage fournisseur
❌ Options de formatage limitées\
❌ Pas de contrôle de version
### Microsoft Word / Google Docs
Les traitements de texte traditionnels sont :
✅ Familiers à la plupart des utilisateurs
❌ Inconsistants entre les plateformes
❌ Difficiles à versionner
❌ Formatage fragile
## Avantages de YAMLResume
1. **Contrôle de Version** : Votre CV est en texte brut, parfait pour Git
2. **Aucun Verrouillage Fournisseur** : Vos données vous appartiennent
3. **Typographie Professionnelle** : Alimenté par LaTeX
4. **Lisible par l'Humain** : Syntaxe YAML claire
5. **Automation-Friendly** : Facile d'intégrer dans les pipelines CI/CD
6. **Multilingue** : Support natif pour l'internationalisation
YAMLResume combine le meilleur de tous les mondes : la simplicité de YAML, la puissance de LaTeX, et la flexibilité des outils modernes de développement.
# Démarrage Rapide
URL: (/fr/docs)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
import { Step, Steps } from "fumadocs-ui/components/steps";
## Introduction
Créer un CV peut ne pas être difficile, mais c'est définitivement un processus ennuyeux, long et fastidieux.
Avec YAMLResume, vous pouvez créer et versionner vos CV avec YAML et créer des PDF parfaits au pixel près avec une mise en page et une typographie professionnelles en un clin d'œil.
YAMLResume est le moteur central de [PPResume](https://ppresume.com), un constructeur basé sur LaTeX. Il a aidé [des milliers de personnes](https://blog.ppresume.com/posts/2024-recap) à travers le monde à créer des CV parfaits au pixel près et d'apparence professionnelle et à décrocher leur emploi de rêve. Ici, nous avons décidé d'open source le moteur, afin de donner aux gens le droit et la liberté de dire [non au verrouillage fournisseur](https://blog.ppresume.com/posts/no-vendor-lock-in)
## Commencer
### Utilisateurs Docker
Si vous êtes un utilisateur docker, vous avez de la chance, nous avons une [image docker](https://hub.docker.com/r/yamlresume/yamlresume) pour vous, qui a [yamlresume cli](https://www.npmjs.com/package/yamlresume) installé avec toutes ses dépendances, telles que [XeTeX](https://www.tug.org/xetex/) et quelques [polices recommandées](/fr/docs/installation#font).
Vous pouvez simplement créer un nouveau CV avec la commande suivante :
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
```
Modifiez `my-resume.yml` en conséquence puis construisez le CV de yaml à pdf :
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
```
### Utilisateurs macOS
Supposons que vous utilisez macOS avec [Homebrew](https://brew.sh/) comme gestionnaire de paquets. Si ce n'est pas le cas, veuillez consulter le guide d'[Installation](/fr/docs/installation) pour des instructions détaillées pour votre système d'exploitation.
#### Installer Node.js
Vous devez [installer Node.js](https://nodejs.org/en/download/package-manager/all#macos) 20.x ou plus récent.
```sh
brew install node
```
#### Installer le Moteur de Composition
YAMLResume a besoin d'un [moteur de composition](/fr/docs/installation#typesetting-engine) pour générer le PDF. Actuellement, il prend en charge deux moteurs de composition :
* [XeTeX](/fr/docs/installation#xetex)
* [Tectonic](/fr/docs/installation#tectonic)
<>
```sh
brew install mactex
```
```sh
brew install tectonic
```
>
#### Installer YAMLResume
Installer `yamlresume` est un jeu d'enfant. Vous pouvez l'installer en utilisant votre gestionnaire de paquets Node.js favori :
<>
```sh
npm install -g yamlresume
```
```sh
pnpm add -g yamlresume
```
```sh
yarn global add yamlresume
```
>
bun
```sh
bun add -g yamlresume
```
Vous pouvez également installer \[`yamlresume` via
Homebrew]\([http://formulae.brew.sh/formula/yamlresume](http://formulae.brew.sh/formula/yamlresume):
```sh
brew install yamlresume
```
Vérifiez que `yamlresume` est installé avec succès :
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build a resume on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
#### \[Optionnel] Installer les Polices
##### Police Linux Libertine
Nous recommandons également d'installer la [police Linux Libertine](/fr/docs/installation#linux-libertine) pour la meilleure sortie PDF, mais c'est optionnel.
```sh
brew install font-linux-libertine
```
##### Polices Noto
Si vous devez créer un CV CJK (chinois, japonais, coréen), nous recommandons d'installer la [police Noto](https://fonts.google.com/noto) :
```sh
brew install font-noto-sans-cjk font-noto-serif-cjk
```
#### Créez Votre Premier CV YAML
D'accord, nous avons tout prêt, nous pouvons maintenant créer un cv yaml avec `yamlresume new` :
```console
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
Modifiez `resume.yml` en conséquence, puis vous pouvez générer un PDF avec `yamlresume build` :
```console
$ yamlresume build my-resume.yml
◐ Generating resume PDF file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resumep PDF file successfully.
```
Vous pouvez également utiliser `yamlresume dev` pour construire le CV lors des changements de fichier :
```console
$ yamlresume dev my-resume.yml
◐ Generating resume PDF file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume PDF file successfully.
◐ Watching file changes: my-resume.yml...
```
## Exemple de CV
Voici le code YAML complet pour un exemple de CV de deux pages, adapté pour un [ingénieur logiciel](https://github.com/yamlresume/yamlresume/blob/main/packages/cli/resources/resume.yml) :
```yml lineNumbers
---
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@ppresume.com
url: https://ppresume.com/gallery
# All summary fields supports a limited rich text capabilities in markdown
# syntax:
#
# - bold, (e.g, `**bold**`)
# - italic, (e.g, `*italic*`)
# - ordered list, unordored list and nested sub list
# - links (e.g. `[link](https://ppresume.com)`)
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
city: Sacramento
region: California
country: United States
postalCode: "95814"
profiles:
- network: Line
url: https://line.com/PPResumeX
username: PPResumeX
- network: Twitter
url: https://twitter.com/PPResumeX
username: PPResumeX
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
# Valid degree options:
#
# - 'Middle School'
# - 'High School'
# - 'Diploma'
# - 'Associate'
# - 'Bachelor'
# - 'Master'
# - 'Doctor'
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
# Should be a valid date string that can be parsed by `new Date(dateStr)`
# in JavaScript, eg. '2020-01', '2020-02-03', 'Jul 1, 2023' etc.
#
# The date part would be removed in the final output as most of the time
# people won't really care about the exact date for your working
# experience or education background, etc.
# ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/Date
startDate: Sep 1, 2016
# Leave endDate blank to indicate "Present"
endDate: Jul 1, 2020
courses:
- Discrete Methods in Computer Science
- Programming Language Concepts
- Data Structures and Object-Oriented Design
- Operating Systems
- Computer Architecture
- Database Systems
- Computer Networking
- Introduction to the Theory of Computing
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
work:
- name: PPResume
url: https://ppresume.com
startDate: Dec 1, 2022
endDate: ""
position: Senior Software Engineer
summary: |
- Developed and implemented efficient and scalable code, ensuring high-quality and maintainable web applications
- Collaborated with cross-functional teams to gather project requirements and translate them into technical solutions
- Conducted thorough testing and debugging to identify and resolve any issues or bugs in the software
- Actively participated in code reviews, providing valuable feedback to improve code quality and adherence to best practices
- Mentored and guided junior developers, fostering a collaborative and growth-oriented team environment
keywords:
- Scalibility
- Growth
- Quality
- Mentorship
- name: PPResume
url: https://ppresume.com
startDate: Sep 1, 2020
endDate: Dec 1, 2022
position: Software Engineer
summary: |
- Created reusable React components to ensure code efficiency and maintainability
- Integrated with RESTful APIs to fetch and display dynamic data on the frontend
- Implemented client-side routing using React Router for smooth navigation between pages
- Actively participated in Agile development methodologies, attending daily stand-up meetings and sprint planning sessions
keywords:
- RESTful
- React
- Agile
languages:
# Valid language fluency options:
#
# - 'Elementary Proficiency'
# - 'Limited Working Proficiency'
# - 'Minimum Professional Proficiency'
# - 'Full Professional Proficiency'
# - 'Native or Bilingual Proficiency'
- language: English
fluency: Native or Bilingual Proficiency
keywords:
- TOEFL 110
- IELTS 7.5
- language: Chinese
fluency: Elementary Proficiency
keywords: []
skills:
# Valid skill level options:
#
# - 'Novice'
# - 'Beginner'
# - 'Intermediate'
# - 'Advanced'
# - 'Expert'
# - 'Master'
- name: Web Development
level: Expert
keywords:
- Python
- Ruby
- CSS
- React
- JavaScript
- name: DevOps
level: Intermediate
keywords:
- Python
- Kubernetes
- Docker
- Shell
- Ansible
- name: Design
level: Intermediate
keywords:
- Sketch
- Figma
- Photoshop
awards:
- title: Dean's List
awarder: University of Southern California
date: Oct 2016
summary: |
Awarded to students who achieve a high academic standing by maintaining a specified grade point average (GPA) during a semester.
certificates:
- name: AWS Certified Developer - Associate
url: https://aws.amazon.com/certification/
issuer: AWS
date: Mar 2021
publications:
- publisher: ACM Transactions on Interactive Intelligent Systems
url: https://dl.acm.org/journal/tiis
name: Enhancing Human-Computer Interaction through Augmented Reality
releaseDate: Dec 2017
summary: |
- Explores the potential of augmented reality (AR) in improving interaction between humans and computers
- Highlights benefits of AR in various areas such as gaming, education, healthcare, and design
- Discusses challenges and future directions of AR technology in enhancing user experience
references:
- name: Dr. Amanda Reynolds
phone: "(555) 123-4567"
relationship: Computer Science Professor
email: amanda.reynolds@usc.edu
summary: |
Andy Dufresne shows exceptional problem-solving skills and a solid understanding of programming concepts, he would bring immense value to any team or organization he becomes a part of.
projects:
- name: EduWeb
url: https://www.eduweb.xyz/
description: A web-based educational platform for interactive learning
startDate: Sep 2016
endDate: Dec 2016
summary: |
- Designed to enhance online learning experiences
- Facilitates students' engagement and collaboration through interactive features and user-friendly interface
- Offers a wide range of courses across various subjects
- Aims to improve the way students learn through the power of the web
keywords:
- Education
- Online Learning
- HCI
interests:
- name: Sports
keywords:
- Soccer
- Swimming
- Bicycling
- Hiking
- name: Music
keywords:
- Piano
- Guitar
volunteer:
- organization: USC Computer Science and Engineering Society
url: https://www.usccsesociety.org/
position: Tech Mentor
startDate: Sep 2015
endDate: Jul 2023
summary: |
- Volunteered as a Tech Mentor at USC Computer Science and Engineering Society
- Provided guidance and assistance to fellow students in their technical projects and coursework
- Assisted in organizing workshops, coding competitions, and networking events for the society members
- Contributed to fostering a collaborative and supportive environment within the student community
locale:
# Use `yamlresume languages list` to get the list of supported languages
language: en
layouts:
- engine: latex
page:
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
showPageNumbers: true
# Use `yamlresume templates list` to get the list of available templates
template: moderncv-banking
typography:
# LaTeX engine only supports 10pt, 11pt, and 12pt
fontSize: 11pt
- engine: markdown
```
Voici les captures d'écran du [PDF généré](https://github.com/yamlresume/yamlresume/blob/main/packages/cli/resources/resume.pdf) :
Vous pouvez consulter la [Galerie PPResume](https://ppresume.com/gallery) pour plus d'exemples, avec support pour différents [modèles](https://ppresume.com/gallery/templates) et [multi-langues](https://ppresume.com/gallery/languages).
## En Savoir Plus
# Installation
URL: (/fr/docs/installation)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
YAMLResume est un outil Node.js qui, sous le capot, transforme vos CV du format
YAML vers le code LaTeX puis appelle un moteur de composition LaTeX pour compiler
le code LaTeX généré en PDF. De plus, pour obtenir une sortie PDF optimale, nous
suggérons également d'installer certaines polices. En résumé, vous devez installer
les éléments suivants pour commencer avec YAMLResume :
* Node.js
* [package yamlresume](https://www.npmjs.com/package/yamlresume)
* un moteur de composition
* \[optionnel] quelques polices
Cela semble un peu compliqué, mais ne vous inquiétez pas, nous sommes là pour vous.
## Utilisateurs Docker
Si vous êtes un utilisateur Docker, vous avez de la chance, nous avons une [image
docker](https://hub.docker.com/r/yamlresume/yamlresume) pour vous. Cette image a
tout pré-emballé, y compris :
* [Node.js](/docs/installation#nodejs)
* [CLI yamlresume](/docs/installation#yamlresume)
* [XeTeX](/docs/installation#xetex)
* [quelques polices recommandées](/docs/installation#font)
Vous pouvez créer un nouveau CV instantanément avec la commande suivante :
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
```
Cette commande créera un nouveau CV appelé `my-resume.yml` dans votre répertoire
actuel. Étapes :
1. `docker run ... yamlresume/yamlresume` - exécute un nouveau conteneur depuis
l'image `yamlresume/yamlresume`, si cette image n'existe pas sur votre machine
locale, elle sera téléchargée depuis le [Docker
Hub](https://hub.docker.com/r/yamlresume/yamlresume).
2. `--rm` - supprime automatiquement le conteneur quand il se termine
3. `-v $(pwd):/home/yamlresume` - monte le répertoire actuel (`$(pwd)`) dans
le conteneur à `/home/yamlresume`, permettant au conteneur d'accéder aux fichiers
locaux
4. `new my-resume.yml` - exécute la sous-commande CLI yamlresume [new](/docs/cli#new)
pour créer un nouveau CV avec le nom de fichier `my-resume.yml`
Modifiez `my-resume.yml` en conséquence puis construisez le CV de yaml vers pdf :
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
```
En gros, vous pouvez appeler toutes les [sous-commandes CLI](/cli) `yamlresume` de
cette façon—il suffit d'ajouter la sous-commande après `yamlresume/yamlresume` puis
de suivre le guide d'utilisation correspondant.
Le flag `-v` ici est assez important car il monte le répertoire actuel (`$(pwd)`)
dans le conteneur à `/home/yamlresume`, permettant une synchronisation bidirectionnelle
de fichiers entre le répertoire local et le conteneur.
Si vous avez des difficultés à télécharger l'image `yamlresume/yamlresume` depuis
le [Docker Hub](https://hub.docker.com/r/yamlresume/yamlresume), ne vous inquiétez
pas, nous avons un [miroir github](https://github.com/yamlresume/yamlresume/pkgs/container/yamlresume)
pour vous.
Vous pouvez obtenir [l'image
ghcr](https://github.com/yamlresume/yamlresume/pkgs/container/yamlresume) par :
```sh
docker pull ghcr.io/yamlresume/yamlresume
```
### Problèmes de Permissions
Parfois vous pourriez rencontrer des [problèmes de
permissions](https://github.com/yamlresume/yamlresume/issues/24) lors de l'exécution
du conteneur Docker car l'image `yamlresume/yamlresume` est construite avec une
instruction `USER yamlresume`, qui par défaut s'exécute avec moins de privilèges.
Il y a deux façons de résoudre ce problème :
1. Utiliser votre nom d'utilisateur/ID de groupe hôte pour exécuter le conteneur :
```sh
docker run --rm -v $(pwd):/home/yamlresume -u $(id -u):$(id -g) yamlresume/yamlresume new my-resume.yml
```
C'est la façon recommandée d'exécuter le conteneur. Tant que votre utilisateur hôte
a accès au répertoire actuel, vous pouvez exécuter le conteneur avec votre nom
d'utilisateur/ID de groupe hôte.
2. Utiliser `-u root` pour exécuter le conteneur avec accès root :
```sh
docker run --rm -v $(pwd):/home/yamlresume -u root yamlresume/yamlresume new my-resume.yml
```
C'est la façon la moins recommandée d'exécuter le conteneur. Ce n'est pas recommandé
car cela peut causer des problèmes de sécurité, donc vous ne devriez faire cela que
si vous êtes sûr de ce que vous faites.
Enfin, si vous exécutez le conteneur Docker `yamlresume` dans GitHub Actions, alors
l'accès root peut être requis selon la [documentation de
GitHub](https://docs.github.com/en/actions/reference/runners/github-hosted-runners#docker-container-filesystem) :
> Note: GitHub Actions must be run by the default Docker user (root). Ensure
> your Dockerfile does not set the USER instruction, otherwise you will not be
> able to access GITHUB\_WORKSPACE.
Ref: [Understanding the Docker USER Instruction](https://www.docker.com/blog/understanding-the-docker-user-instruction/)
## Utilisateurs Non-Docker
Si vous n'êtes pas un utilisateur Docker, veuillez suivre les instructions
appropriées ci-dessous pour installer le CLI yamlresume et toutes les dépendances
nécessaires basées sur votre système d'exploitation. Au moment de l'écriture, notre
guide couvre macOS, Windows, et certaines distributions Linux (Ubuntu et distributions
basées sur RHEL).
### Node.js
Node.js 20.x ou plus récent est requis.
Théoriquement `yamlresume` devrait fonctionner avec Node.js 18, cependant il
est fortement recommandé d'utiliser Node.js 20 ou plus récent car Node.js 18
LTS est programmé pour atteindre la fin de vie le [30 avril
2025](https://nodejs.org/en/blog/release/v18.20.8).
Il peut y avoir comme 100+ méthodes pour installer Node.js sur différents OS, vous
pouvez consulter le [téléchargement officiel Node.js](https://nodejs.org/en/download)
pour commencer.
Nous recommandons d'utiliser un [gestionnaire de
paquets](https://nodejs.org/en/download/package-manager/all) pour installer Node.js.
Pour les utilisateurs [Homebrew](https://brew.sh/) :
```sh
brew install node
```
Pour les utilisateurs [Chocolatey](https://chocolatey.org/) :
```sh
choco install nodejs.install
```
Pour Ubuntu 24.10 ou plus récent :
```sh
sudo apt install nodejs
```
Pour Ubuntu 24.04 ou plus ancien, veuillez jeter un œil à
[NodeSource](https://downloads.nodesource.com/#debian) pour obtenir Node.js 20 ou
plus récent.
Pour Linux basé sur RHEL comme Fedora, AlmaLinux, Rocky Linux, etc. :
```sh
sudo dnf install nodejs
```
### CLI YAMLResume
Installer `yamlresume` est un jeu d'enfant. Vous pouvez l'installer en utilisant
votre gestionnaire de paquets Node.js préféré :
<>
```console
npm install -g yamlresume
```
```console
pnpm add -g yamlresume
```
```console
yarn global add yamlresume
```
```console
bun add -g yamlresume
```
>
Si vous êtes sous macOS et utilisez [Homebrew](https://brew.sh), vous pouvez
aussi installer \[yamlresume via
Homebrew]\([http://formulae.brew.sh/formula/yamlresume](http://formulae.brew.sh/formula/yamlresume):
```sh
brew install yamlresume
```
Vérifiez que `yamlresume` est installé avec succès :
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build a resume on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
Si vous voulez juste essayer `yamlresume` sans l'installer, vous pouvez utiliser
`npx`, `pnpx` ou d'autres outils similaires :
<>
```console
npx yamlresume help
```
```console
yarn dlx yamlresume help
```
```console
pnpx yamlresume help
```
```console
bun exec yamlresume help
```
>
### Moteur de Composition
Sous le capot, `yamlresume` fait le travail d'un compilateur, analysant un CV YAML
vers un
[AST](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/compiler/ast.ts)
puis [transformant l'AST en code LaTeX](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/compiler/codegen/latex.ts).
En tant que mini-compilateur, `yamlresume` s'appuie sur un moteur de composition
pour compiler le code LaTeX généré en PDFs. Par conséquent, vous devez d'abord
installer un moteur de composition avant de pouvoir utiliser `yamlresume` pour
générer des PDFs de CV.
YAMLResume supporte actuellement deux moteurs de composition : [XeTeX](#xetex) et
[Tectonic](#tectonic).
Au moment de l'écriture, [LaTeX](https://www.latex-project.org/) est toujours
le meilleur choix de moteur de composition pour produire des PDFs d'apparence
professionnelle. [Typst](https://typst.app/) est une excellente alternative,
mais il est encore dans sa phase précoce et son support CJK n'est pas mature
et prêt pour la production. Précédemment j'ai écrit un post [On Typesetting
Engines](https://blog.ppresume.com/posts/on-typesetting-engines) expliquant
les raisons pour lesquelles j'ai choisi LaTeX plutôt que d'autres moteurs de
composition quand j'ai fondé [PPResume](https://ppresume.com).
#### XeTeX
[XeTeX](https://tug.org/xetex/) est un moteur de composition [TeX](https://en.wikipedia.org/wiki/TeX)
utilisant [Unicode](https://en.wikipedia.org/wiki/Unicode) et supportant les
technologies de police modernes comme
[OpenType](https://en.wikipedia.org/wiki/OpenType),
[Graphite](https://fonts.adobe.com/fonts/graphite) et [Apple Advanced
Typography (AAT)](https://en.wikipedia.org/wiki/Apple_Advanced_Typography).
C'est un moteur de composition très mature et stable qui est largement utilisé par
de nombreuses personnes académiques et scientifiques.
La façon la plus facile est d'installer la distribution **MacTeX**.
Elle inclut XeTeX avec de nombreux autres programmes et paquets liés à TeX. Vous
pouvez la télécharger depuis le [site web MacTeX](https://www.tug.org/mactex/) ou
l'installer via homebrew :
```sh
# install the full mactex
brew install mactex
# or if you want to save some disk space
brew install mactex-no-gui
```
La [distribution MiKTeX](https://miktex.org) est un choix populaire pour Windows et
inclut XeTeX. Vous pouvez la télécharger depuis le [site web
MiKTeX](https://miktex.org/download).
Alternativement, vous pouvez installer **TeX Live** pour Windows, qui inclut aussi
XeTeX. Téléchargez-le depuis le [site web TeX
Live](https://www.tug.org/texlive/acquire-netinstall.html).
La plupart des distributions Linux offrent TeX Live via leurs gestionnaires de
paquets. XeTeX est typiquement inclus dans le paquet `texlive-xetex` ou un plus
gros méta-paquet `texlive-full`.
Pour Ubuntu, si votre réseau est bon et vous avez environ 10GB d'espace disque, vous
pouvez installer la distribution texlive complète :
```sh
sudo apt install texlive-full
```
Sinon, vous pouvez installer les paquets minimum requis :
```sh
sudo apt install texlive-xetex texlive-fonts-extra texlive-lang-all
```
Pour Linux basé sur RHEL comme Fedora, AlmaLinux, Rocky Linux, vous pouvez installer
la distribution TeX Live complète si vous avez assez d'espace disque et un bon réseau :
```sh
sudo dnf install texlive-scheme-full
```
Sinon vous pouvez installer les paquets minimum requis :
```sh
sudo dnf install \
texlive-scheme-medium \
texlive-moderncv \
texlive-ctex \
texlive-academicons
```
Alternativement, vous pouvez toujours installer TeX Live directement depuis le [site
web TeX Live](https://www.tug.org/texlive/acquire-netinstall.html) en utilisant leur
installateur, qui fonctionne à travers différentes distributions Linux.
Vérifiez que XeTeX est installé avec succès :
```console
$ xetex -v
XeTeX 3.141592653-2.6-0.999994 (TeX Live 2022)
kpathsea version 6.3.4
Copyright 2022 SIL International, Jonathan Kew and Khaled Hosny.
There is NO warranty. Redistribution of this software is
covered by the terms of both the XeTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the XeTeX source.
Primary author of XeTeX: Jonathan Kew.
Compiled with ICU version 70.1; using 70.1
Compiled with zlib version 1.2.11; using 1.2.11
Compiled with FreeType2 version 2.11.1; using 1.2.11
Compiled with Graphite2 version 1.3.14; using 1.3.14
Compiled with HarfBuzz version 3.4.0; using 3.4.0
Compiled with libpng version 1.6.37; using 1.6.37
Compiled with pplib version v2.05 less toxic i hope
Using Mac OS X Core Text and Cocoa frameworks
```
#### Tectonic
[Tectonic](https://tectonic-typesetting.github.io) est un moteur
[TeX](https://en.wikipedia.org/wiki/TeX)/[LaTeX](https://www.latex-project.org/)
moderne, complet et autonome, alimenté par [XeTeX](https://tug.org/xetex/) et
[TeXLive](https://www.tug.org/texlive/).
Une distribution TeX Live complète prend typiquement plusieurs GB d'espace disque,
tandis que l'installation initiale de tectonic ne prend que 10+ MB. Il télécharge
automatiquement les fichiers de support, donc vous n'avez pas besoin d'installer
une distribution LaTeX complète. Quand vous commencez à utiliser un nouveau paquet
LaTeX, Tectonic télécharge simplement les fichiers dont il a besoin et continue
le traitement.
Tectonic fournit un [guide d'installation
officiel](https://tectonic-typesetting.github.io/en-US/install.html), mais cela
mettrait juste tectonic dans le répertoire où vous avez exécuté la commande
d'installation, `yamlresume` a besoin d'une commande globale `tectonic` dans votre
`$PATH`, donc vous devez résoudre cela avec quelques astuces shell par vous-même.
Si vous êtes un utilisateur macOS, vous avez de la chance car Homebrew fournit un
paquet pré-construit :
```sh
brew install tectonic
```
D'après mon expérience, tectonic a encore quelques problèmes de compatibilité mineurs
avec XeTeX officiel, donc si vous ne vous souciez pas du long temps de téléchargement
d'une distribution TeX Live complète, XeTeX est toujours le choix recommandé ici.
### Police
#### Linux Libertine
YAMLResume adopte [Linux Libertine](https://www.dafont.com/linux-libertine.font)
comme police par défaut pour les caractères latins. Il est fortement recommandé de
l'installer afin d'obtenir une sortie PDF optimale.
Pour les utilisateurs Homebrew :
```sh
brew install font-linux-libertine
```
Sinon vous pouvez télécharger la dernière version de [Linux
Libertine](https://www.dafont.com/linux-libertine.font) depuis le site web et
installer la police avec [Font
Book](https://support.apple.com/en-gb/guide/font-book/fntbk1000/mac) de macOS.
Téléchargez la dernière version de [Linux
Libertine](https://www.dafont.com/linux-libertine.font) depuis le site web et
extrayez l'archive et installez la police.
Pour les utilisateurs Ubuntu, la police Linux Libertine est déjà incluse dans le
paquet `texlive-fonts-extra`, cependant, si vous voulez l'installer manuellement, vous
pouvez le faire par :
```sh
sudo apt install fonts-linuxlibertine
```
Pour Linux basé sur RHEL comme Fedora, AlmaLinux, Rocky Linux, vous pouvez installer
la police Linux Libertine par :
```sh
sudo dnf install linux-libertine-fonts
```
#### Google Noto
Si vous avez besoin de CV CJK, vous devrez aussi installer les [polices Google Noto](https://fonts.google.com/noto/) pour [la meilleure couverture unicode](https://github.com/ppresume/community/issues/63).
Pour les utilisateurs Homebrew :
```sh
brew install font-noto-sans-cjk font-noto-serif-cjk
```
Téléchargez les polices Noto et suivez le [guide
officiel](https://fonts.google.com/noto/use#use-noto-fonts) pour installer sur
Windows.
Pour les utilisateurs Ubuntu :
```sh
sudo apt install fonts-noto-cjk fonts-noto-cjk-extra
```
Pour Linux basé sur RHEL comme Fedora, AlmaLinux, Rocky Linux, vous pouvez installer
les polices Noto par :
```sh
sudo dnf install google-noto-sans-cjk-fonts google-noto-serif-cjk-fonts
```
## Dépannage
Vous pouvez [créer un problème](https://github.com/yamlresume/yamlresume/issues/new) si
vous avez des difficultés à installer `yamlresume` ou ses dépendances.
Vous pouvez activer la journalisation verbeuse en passant un flag `--verbose` à
`yamlresume` ou ses sous-commandes.
### Vous en avez marre ?
Si vous en avez marre du processus d'installation, vous pouvez essayer
[PPResume](https://ppresume.com), qui est une solution de constructeur de CV hébergée
et commerciale qui a open sourcé YAMLResume.
# Architecture
URL: (/fr/docs/compiler/architecture)
Comme tout compilateur, YAMLResume contient également un pipeline qui transforme les
données de CV d'entrée vers la sortie avec plusieurs phases.
* **Phase d'Entrée** : accepte les fichiers de CV YAML et JSON comme entrée.
* **Phase d'Analyse** : analyse et valide le contenu et la mise en page du CV à partir des
fichiers d'entrée.
* **Phase de Transformation** : transforme le contenu et les données de mise en page
du CV avec un pipeline.
* **Phase de Génération de Code** : rend le contenu et les données de mise en page du CV en utilisant des
modèles LaTeX.
* **Phase de Sortie** : génère le document PDF final.
Voici un diagramme d'architecture de haut niveau de YAMLResume depuis 30 000 pieds :
## Pipeline de Traitement des Données
Le pipeline de transformation est responsable du traitement des données brutes de CV à partir
des fichiers YAML et de leur préparation pour le rendu LaTeX. Il fonctionne en deux phases principales :
transformation du contenu et transformation de la mise en page :
* La phase de transformation du contenu traite toutes les données textuelles, applique
les règles de localisation, échappe les caractères spéciaux LaTeX, et calcule les
valeurs dérivées.
* La phase de transformation de la mise en page fusionne les paramètres de mise en page fournis par l'utilisateur avec
les valeurs par défaut et applique les règles typographiques spécifiques aux locales.
Pour un long pipeline de traitement de données comme celui-ci, le code parle plus que les mots, vous
pouvez consulter
[transform.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/preprocess/transform.ts)
pour plus de détails si vous êtes intéressé par l'implémentation.
# Compilateur
URL: (/fr/docs/compiler)
## Vue d'ensemble
YAMLResume est un compilateur de CV qui permet aux utilisateurs de créer des CV en utilisant YAML,
puis de générer des documents PDF professionnels avec une typographie précise.
YAMLResume adopte la [Séparation des
Responsabilités](https://en.wikipedia.org/wiki/Separation_of_concerns) comme principe
de conception central, ce qui permet aux utilisateurs de se concentrer sur le contenu du CV, sans
trop s'inquiéter du style/mise en page, d'échanger des modèles sans changer le contenu,
et de maintenir la cohérence entre différents formats de sortie.
Cela dit, les utilisateurs peuvent et doivent seulement se concentrer sur le contenu du CV,
et YAMLResume s'occupera du reste comme la composition, la mise en page,
la localisation, la génération de PDF, etc.
Capacités clés :
* Définit un [format YAML structuré standard](/fr/docs/compiler/types) qui couvre
à la fois le [contenu](/fr/docs/compiler/types#resumecontent) et
la [mise en page](/fr/docs/compiler/types#resumecontent)
* Valide le contenu du CV avec [zod](https://zod.dev) ou [JSON
Schema](https://json-schema.org)
* Transforme les données de contenu du CV avec un
[pipeline](/fr/docs/compiler/architecture#data-processing-pipeline)
* Rend le contenu en utilisant des [modèles LaTeX](/fr/docs/layouts/latex/templates)
* Génère des PDF via les moteurs de compilation [XeTeX](/fr/docs/installation#xetex) ou
[Tectonic](/fr/docs/installation#tectonic)
* Supporte [plusieurs langues](/fr/docs/locale) et la localisation
* Fournit des commandes [CLI](/fr/docs/cli) pour la gestion de projet et l'automatisation de build
Regardez la démo en direct suivante pour voir pourquoi j'appelle YAMLResume un **compilateur de CV** :
[](https://asciinema.org/a/728098)
## En Savoir Plus
# Types
URL: (/fr/docs/compiler/types)
Ce document présente les types TypeScript qui définissent la structure d'un
CV avec YAMLResume. En tant que projet TypeScript, YAMLResume emploie le
typage statique pour assurer la cohérence des données. Ce fichier fournit un aperçu des
structures de données principales utilisées pour représenter les informations de CV, incluant les
détails personnels, l'éducation, l'expérience, les compétences et plus.
Vous pouvez consulter
[types/index.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/models/types/index.ts)
pour les détails de la source de vérité.
Comprendre ces types est essentiel pour les contributeurs et développeurs qui veulent
personnaliser ou étendre les fonctionnalités de YAMLResume.
Ce document sert de référence définitive pour les utilisateurs cherchant à créer un
YAMLResume valide, clarifiant la distinction entre les champs optionnels et obligatoires.
Pour garantir une compilation réussie dans YAMLResume, un CV minimal
doit incorporer les champs essentiels suivants :
* `content.basics.name`
* `education[number].area`
* `education[number].degree`
* `education[number].institution`
* `education[number].startDate`
Donc théoriquement un CV minimal viable ressemble à ceci :
```yml lineNumbers
content:
basics:
name: Xiao Hanyu
education:
- area: Computer Science and Technology
degree: Bachelor
institution: Zhejiang University
startDate: Sep, 2007
```
## Resume
Définit la structure globale du CV, incluant le contenu et la mise en page.
| Prop | Type | Requis | Description |
| ---------- | --------------------- | ------ | ------------------------------------------------------ |
| `content` | [`Content`](#content) | ✅ | Définit la structure pour l'ensemble du contenu du CV. |
| `layouts?` | [`Layouts`](#layouts) | ⬜ | Définit la configuration globale de mise en page. |
| `locale?` | [`Locale`](#locale) | ⬜ | Définit la configuration globale de locale. |
Voici un diagramme de haut niveau de la structure du CV :
### Content
Définit la structure pour l'ensemble du contenu du CV.
| Prop | Type | Requis | Description |
| --------------- | --------------------------------------- | ------ | ------------------------------------------------------------------------ |
| `basics` | [`BasicsItem`](#basicsitem) | ✅ | Représente les informations personnelles et de contact principales. |
| `education` | [`EducationItem[]`](#educationitem) | ✅ | Contient une collection d'expériences éducatives. |
| `awards?` | [`AwardItem[]`](#awarditem) | ⬜ | Contient une collection de prix et reconnaissances. |
| `certificates?` | [`CertificateItem[]`](#certificateitem) | ⬜ | Contient une collection de certifications et références. |
| `interests?` | [`InterestItem[]`](#interestitem) | ⬜ | Contient une collection d'intérêts, loisirs ou activités personnelles. |
| `languages?` | [`LanguageItem[]`](#languageitem) | ⬜ | Contient une collection de compétences linguistiques. |
| `location?` | [`LocationItem`](#locationitem) | ⬜ | Contient les informations de localisation. |
| `projects?` | [`ProjectItem[]`](#projectitem) | ⬜ | Contient une collection de projets. |
| `profiles?` | [`ProfileItem[]`](#profileitem) | ⬜ | Contient une collection de profils en ligne. |
| `publications?` | [`PublicationItem[]`](#publicationitem) | ⬜ | Contient une collection de publications. |
| `references?` | [`ReferenceItem[]`](#referenceitem) | ⬜ | Contient une collection de références. |
| `skills?` | [`SkillItem[]`](#skillitem) | ⬜ | Contient une collection de compétences. |
| `volunteer?` | [`VolunteerItem[]`](#volunteeritem) | ⬜ | Contient une collection d'expériences bénévoles. |
| `work?` | [`WorkItem[]`](#workitem) | ⬜ | Contient une collection d'expériences de travail et historique d'emploi. |
#### AwardItem
Représente un prix, honneur ou reconnaissance reçu.
| Prop | Type | Requis | Description |
| ---------- | -------- | ------ | ------------------------------------------------------ |
| `awarder` | `string` | ✅ | L'organisation ou entité qui a donné le prix. |
| `title` | `string` | ✅ | Le nom ou titre du prix. |
| `date?` | `string` | ⬜ | La date de réception du prix (ex: "2020", "Oct 2020"). |
| `summary?` | `string` | ⬜ | Une courte description ou détails sur le prix. |
#### BasicsItem
Représente les informations personnelles et de contact principales.
| Prop | Type | Requis | Description |
| ----------- | -------- | ------ | ------------------------------------------------------- |
| `name` | `string` | ✅ | Nom complet. |
| `email?` | `string` | ⬜ | Adresse email. |
| `headline?` | `string` | ⬜ | Un bref titre professionnel (ex: "Ingénieur Logiciel"). |
| `phone?` | `string` | ⬜ | Numéro de téléphone. |
| `summary?` | `string` | ⬜ | Un résumé professionnel ou déclaration d'objectif. |
| `url?` | `string` | ⬜ | Site web personnel ou URL de portfolio. |
#### CertificateItem
Représente une certification, référence ou qualification professionnelle.
| Prop | Type | Requis | Description |
| -------- | -------- | ------ | ----------------------------------------------------------- |
| `issuer` | `string` | ✅ | L'organisation qui a émis le certificat. |
| `name` | `string` | ✅ | Le nom du certificat. |
| `date?` | `string` | ⬜ | La date d'obtention du certificat (ex: "2021", "Nov 2021"). |
| `url?` | `string` | ⬜ | URL liée au certificat (ex: lien de vérification). |
#### EducationItem
Représente une expérience éducative ou un programme d'études.
| Prop | Type | Requis | Description |
| ------------- | ------------------- | ------ | ----------------------------------------------------------------------- |
| `area` | `string` | ✅ | Domaine d'étude (ex: "Informatique"). |
| `degree` | [`Degree`](#degree) | ✅ | Le type de diplôme obtenu. |
| `institution` | `string` | ✅ | Nom de l'institution. |
| `startDate` | `string` | ✅ | Date de début d'études (ex: "2016", "Sep 2016"). |
| `courses?` | `string[]` | ⬜ | Liste des cours suivis. |
| `endDate?` | `string` | ⬜ | Date de fin d'études (ex: "2020", "May 2020"), vide implique "Présent". |
| `summary?` | `string` | ⬜ | Description des accomplissements ou détails. |
| `score?` | `string` | ⬜ | GPA ou note académique. |
| `url?` | `string` | ⬜ | URL liée à l'institution ou au diplôme. |
#### InterestItem
Représente un intérêt, loisir ou activité personnelle.
| Prop | Type | Requis | Description |
| ----------- | ---------- | ------ | -------------------------------------------------------------- |
| `name` | `string` | ✅ | Nom de la catégorie d'intérêt (ex: "Lecture", "Photographie"). |
| `keywords?` | `string[]` | ⬜ | Mots-clés liés à l'intérêt. |
#### LanguageItem
Représente une compétence linguistique.
| Prop | Type | Requis | Description |
| ----------- | ----------------------- | ------ | ---------------------------------------------------------------------------- |
| `fluency` | [`Fluency`](#fluency) | ✅ | Le niveau de maîtrise de la langue. |
| `language` | [`Language`](#language) | ✅ | La langue. |
| `keywords?` | `string[]` | ⬜ | Mots-clés spécifiques liés aux compétences linguistiques (ex: "Traduction"). |
#### LocationItem
Représente les informations de localisation et d'adresse.
| Prop | Type | Requis | Description |
| ------------- | --------------------- | ------ | ------------------------- |
| `city` | `string` | ✅ | Nom de la ville. |
| `address?` | `string` | ⬜ | Adresse de rue. |
| `country?` | [`Country`](#country) | ⬜ | Code ou nom du pays. |
| `postalCode?` | `string` | ⬜ | Code postal. |
| `region?` | `string` | ⬜ | État, province ou région. |
#### ProfileItem
Représente un profil en ligne ou une présence sur les réseaux sociaux.
| Prop | Type | Requis | Description |
| ---------- | --------------------- | ------ | --------------------------------------- |
| `network` | [`Network`](#network) | ✅ | Le nom du réseau ou de la plateforme. |
| `username` | `string` | ✅ | Le nom d'utilisateur sur la plateforme. |
| `url?` | `string` | ⬜ | L'URL du profil. |
#### ProjectItem
Représente un projet, pièce de portfolio ou travail technique.
| Prop | Type | Requis | Description |
| -------------- | ---------- | ------ | --------------------------------------------------- |
| `name` | `string` | ✅ | Nom du projet. |
| `startDate` | `string` | ✅ | Date de début du projet (ex: "2021", "Jan 2021"). |
| `summary` | `string` | ✅ | Accomplissements détaillés pour le projet. |
| `description?` | `string` | ⬜ | Description du projet. |
| `endDate?` | `string` | ⬜ | Date de fin du projet (ex: "2022", "Jul 2022"). |
| `keywords?` | `string[]` | ⬜ | Mots-clés ou technologies utilisées dans le projet. |
| `url?` | `string` | ⬜ | URL liée au projet (ex: dépôt, démo en direct). |
#### PublicationItem
Représente une publication, travail de recherche ou article académique.
| Prop | Type | Requis | Description |
| -------------- | -------- | ------ | --------------------------------------------- |
| `name` | `string` | ✅ | Nom ou titre de la publication. |
| `publisher` | `string` | ✅ | Éditeur du travail. |
| `releaseDate?` | `string` | ⬜ | Date de publication (ex: "2023", "Mar 2023"). |
| `summary?` | `string` | ⬜ | Résumé ou abstrait de la publication. |
| `url?` | `string` | ⬜ | URL liée à la publication (ex: DOI, lien). |
#### ReferenceItem
Représente une référence professionnelle ou recommandation.
| Prop | Type | Requis | Description |
| --------------- | -------- | ------ | -------------------------------------------------- |
| `name` | `string` | ✅ | Nom de la référence. |
| `summary` | `string` | ✅ | Une note brève sur la référence. |
| `email?` | `string` | ⬜ | Adresse email de la référence. |
| `phone?` | `string` | ⬜ | Numéro de téléphone de la référence. |
| `relationship?` | `string` | ⬜ | Relation avec la référence (ex: "Ancien Manager"). |
#### SkillItem
Représente une compétence, capacité ou aptitude technique.
| Prop | Type | Requis | Description |
| ----------- | ----------------- | ------ | ------------------------------------------------------------ |
| `level` | [`Level`](#level) | ✅ | Niveau de maîtrise de la compétence. |
| `name` | `string` | ✅ | Nom de la compétence. |
| `keywords?` | `string[]` | ⬜ | Mots-clés spécifiques ou technologies liées à la compétence. |
#### VolunteerItem
Représente une expérience bénévole ou un service communautaire.
| Prop | Type | Requis | Description |
| -------------- | -------- | ------ | ----------------------------------------------------------- |
| `organization` | `string` | ✅ | Nom de l'organisation. |
| `position` | `string` | ✅ | Rôle ou poste occupé. |
| `startDate` | `string` | ✅ | Date de début du travail bénévole (ex: "2019", "Jun 2019"). |
| `summary` | `string` | ✅ | Résumé des responsabilités ou accomplissements. |
| `endDate?` | `string` | ⬜ | Date de fin du travail bénévole (ex: "2020", "Dec 2020"). |
| `url?` | `string` | ⬜ | URL liée à l'organisation ou au travail. |
#### WorkItem
Représente une expérience de travail ou un poste d'emploi.
| Prop | Type | Requis | Description |
| ----------- | ---------- | ------ | ------------------------------------------------- |
| `name` | `string` | ✅ | Nom de l'entreprise ou employeur. |
| `position` | `string` | ✅ | Titre du poste ou position occupée. |
| `startDate` | `string` | ✅ | Date de début d'emploi (ex: "2021", "Apr 2021"). |
| `summary` | `string` | ✅ | Résumé des responsabilités et accomplissements. |
| `endDate?` | `string` | ⬜ | Date de fin d'emploi (ex: "2023", "Aug 2023"). |
| `keywords?` | `string[]` | ⬜ | Mots-clés liés au rôle ou technologies utilisées. |
| `url?` | `string` | ⬜ | URL liée à l'entreprise ou au travail. |
### Locale
Définit les paramètres de locale pour l'internationalisation et la localisation.
| Prop | Type | Requis | Description |
| ----------- | ----------------------------------- | ------ | --------------------------------------------------------------------- |
| `language?` | [`LocaleLanguage`](#localelanguage) | ⬜ | La langue sélectionnée pour le contenu du CV et les termes du modèle. |
### Layouts
Tableau d'éléments de mise en page prenant en charge plusieurs formats de sortie.
| Prop | Type | Requis | Description |
| ----------- | -------------------------------------------------------------------- | ------ | ----------------------------------------- |
| `layouts[]` | [`LatexLayout`](#latexlayout) \| [`MarkdownLayout`](#markdownlayout) | ⬜ | Configurations de mise en page multiples. |
#### Types de Mise en Page Courants
##### Margins
Définit les paramètres de marges de page pour la mise en page du document.
| Prop | Type | Requis | Description |
| --------- | -------- | ------ | ----------------------------------------- |
| `top?` | `string` | ⬜ | Valeur de marge supérieure (ex: "2.5cm"). |
| `bottom?` | `string` | ⬜ | Valeur de marge inférieure (ex: "2.5cm"). |
| `left?` | `string` | ⬜ | Valeur de marge gauche (ex: "1.5cm"). |
| `right?` | `string` | ⬜ | Valeur de marge droite (ex: "1.5cm"). |
##### Sections
Définit les paramètres d'alias de section pour personnaliser les noms de section.
| Prop | Type | Requis | Description |
| ---------- | --------------------------- | ------ | ----------------------------------------------------------- |
| `aliases?` | `Record` | ⬜ | Alias personnalisés pour les noms de section. |
| `order?` | `OrderableSectionID[]` | ⬜ | Ordre personnalisé pour les sections dans la sortie finale. |
#### HtmlLayout
Configuration de mise en page HTML.
| Prop | Type | Requis | Description |
| ------------- | ----------------------------------------- | ------ | ---------------------------------------------- |
| `engine` | `'html'` | ✅ | Le moteur pour générer le CV. |
| `advanced?` | [`HtmlAdvanced`](#htmladvanced) | ⬜ | Définit les options de configuration avancées. |
| `sections?` | [`Sections`](#sections) | ⬜ | Configuration de sections. |
| `template?` | [`HtmlTemplate`](#htmltemplate) | ⬜ | Modèle sélectionné. |
| `typography?` | [`HtmlTypography`](#htmltypographyschema) | ⬜ | Configuration typographique. |
##### HtmlAdvanced
Définit les options de configuration avancées pour HTML.
| Prop | Type | Requis | Description |
| -------------- | --------- | ------ | -------------------------------------------------------------------- |
| `showIcons?` | `boolean` | ⬜ | Indique s'il faut afficher les icônes pour les liens et les profils. |
| `title?` | `string` | ⬜ | Titre personnalisé pour le document HTML. |
| `footer?` | `string` | ⬜ | Pied de page personnalisé pour le document HTML. |
| `description?` | `string` | ⬜ | Description méta pour le document HTML. |
| `keywords?` | `string` | ⬜ | Mots-clés méta pour le document HTML. |
##### HtmlTypography
Définit les paramètres typographiques pour le formatage du document HTML.
| Prop | Type | Requis | Description |
| ------------- | ------------------------------- | ------ | ----------------------------------------------------------- |
| `fontFamily?` | `string` | ⬜ | Une liste de familles de polices séparées par des virgules. |
| `fontSize?` | [`HtmlFontSize`](#htmlfontsize) | ⬜ | Taille de police de base pour le document. |
#### LatexLayout
Configuration de mise en page LaTeX.
| Prop | Type | Requis | Description |
| ------------- | ------------------------------------- | ------ | ------------------------------------------------------ |
| `advanced?` | [`LatexAdvanced`](#latexadvanced) | ⬜ | Définit les options de configuration avancées. |
| `engine` | `'latex'` | ✅ | Le moteur pour générer le CV. |
| `page?` | [`LatexPage`](#latexpage) | ⬜ | Définit les paramètres au niveau de la page. |
| `sections?` | [`Sections`](#sections) | ⬜ | Définit les paramètres de personnalisation de section. |
| `template?` | [`LatexTemplate`](#latextemplate) | ⬜ | Définit le modèle sélectionné. |
| `typography?` | [`LatexTypography`](#latextypography) | ⬜ | Définit les paramètres typographiques. |
##### LatexAdvanced
Définit les options de configuration avancées pour LaTeX.
| Prop | Type | Requis | Description |
| ------------ | ------------------------------------ | ------ | -------------------------------------------------------------------- |
| `fontspec?` | `{ numbers?: LatexFontspecNumbers }` | ⬜ | Configurations du package LaTeX fontspec. |
| `showIcons?` | `boolean` | ⬜ | Indique s'il faut afficher les icônes pour les liens et les profils. |
##### LatexPage
Définit les paramètres au niveau de la page pour la présentation du document.
| Prop | Type | Requis | Description |
| ------------------ | ------------------------- | ------ | ----------------------------------------------- |
| `margins?` | [`Margins`](#margins) | ⬜ | Définit les paramètres de marges de page. |
| `paperSize?` | [`PaperSize`](#papersize) | ⬜ | Définit la taille du papier. |
| `showPageNumbers?` | `boolean` | ⬜ | Indique s'il faut afficher les numéros de page. |
##### LatexTypography
Définit les paramètres typographiques pour le formatage du document.
| Prop | Type | Requis | Description |
| ------------- | --------------------------------- | ------ | ----------------------------------------------------------- |
| `fontSize?` | [`LatexFontSize`](#latexfontsize) | ⬜ | Taille de police de base pour le document. |
| `fontFamily?` | `string` | ⬜ | Une liste de familles de polices séparées par des virgules. |
| `links?` | `{ underline?: boolean }` | ⬜ | Paramètres de style de lien. |
#### MarkdownLayout
Configuration de mise en page Markdown.
| Prop | Type | Requis | Description |
| ----------- | ----------------------- | ------ | ------------------------------------------------------ |
| `engine` | `'markdown'` | ✅ | Le moteur pour générer le CV. |
| `sections?` | [`Sections`](#sections) | ⬜ | Définit les paramètres de personnalisation de section. |
## Types d'Énumération
### Enums de Contenu
#### Country
Un type union pour tous les pays et régions possibles dans le monde.
#### Degree
Un type union pour tous les diplômes possibles.
* `Associate`
* `Bachelor`
* `Diploma`
* `Doctor`
* `High School`
* `Master`
* `Middle School`
#### Fluency
Un type union pour tous les niveaux de maîtrise linguistique possibles.
* `Elementary Proficiency`
* `Full Professional Proficiency`
* `Limited Working Proficiency`
* `Minimum Professional Proficiency`
* `Native or Bilingual Proficiency`
#### Language
Un type union pour toutes les langues supportées.
#### Level
Un type union pour tous les niveaux de maîtrise de compétences possibles.
* `Advanced`
* `Beginner`
* `Expert`
* `Intermediate`
* `Master`
* `Novice`
#### Network
Un type union pour toutes les options de réseaux sociaux possibles.
### Enums de Mise en Page
#### HtmlFontSize
Un type union pour toutes les options de taille de police HTML possibles.
Le moteur HTML supporte les tailles de 14px à 20px :
* `14px`, `15px`, `16px` (par défaut), `17px`, `18px`, `19px`, `20px`
#### HtmlTemplate
Un type union pour toutes les options de modèles HTML possibles.
Voir aussi : [modèles](/fr/docs/layouts/html/templates)
* `calm`
#### LatexFontSize
Un type union pour toutes les options de taille de police LaTeX possibles.
Pour l'instant, seulement 3 options sont supportées :
* `10pt` - taille de police 10pt (par défaut)
* `11pt` - taille de police 11pt
* `12pt` - taille de police 12pt
#### LatexFontspecNumbers
Un type union pour toutes les options de nombres fontspec LaTeX possibles.
* `Auto` - permettant au style d'être automatiquement déterminé basé sur la
`LocaleLanguage` sélectionnée (par défaut)
* `Lining` - chiffres alignés standard (par défaut pour les langues CJK)
* `OldStyle` - chiffres à l'ancienne avec des hauteurs variées (par défaut pour les
langues latines)
#### LatexTemplate
Un type union pour toutes les options de modèles possibles.
Voir aussi : [modèles](/fr/docs/layouts/latex/templates)
* `moderncv-banking`
* `moderncv-casual`
* `moderncv-classic`
#### PaperSize
Un type union pour toutes les options de taille de papier LaTeX possibles.
* `a4` (par défaut)
* `letter`
### Enums de Localisation
#### LocaleLanguage
Un type union pour toutes les langues de locale possibles.
Voir aussi : [multi-langues](/fr/docs/locale)
* `en`
* `es`
* `zh-hans`
* `zh-hant-hk`
* `zh-hant-tw`
# Contenu
URL: (/fr/docs/content)
Ce chapitre plonge au cœur de votre CV : le contenu.
Le contenu est le cœur de votre CV. C'est ce qui fait que votre CV se démarque des
autres, avec la [mise en page](/fr/docs/layouts) et le design étant la cerise sur le gâteau.
Nous couvrirons deux aspects clés de la création de contenu dans YAMLResume :
* **Texte Enrichi** : Comment utiliser Markdown pour ajouter du formatage comme le gras, l'italique,
les liens, et les listes à vos descriptions.
* **Support Multi-Langues** : Comment créer des CV dans différentes langues,
en tenant compte des nuances linguistiques et culturelles.
Explorez les guides ci-dessous pour maîtriser le contenu de votre CV.
# Texte Enrichi
URL: (/fr/docs/content/rich-text)
Dans YAMLResume, vous n'êtes pas limité au texte brut. Les champs `summary` dans
différentes sections (comme `work`, `education`, `projects`, etc.), supportent un
ensemble limité de syntaxe [Markdown](https://en.wikipedia.org/wiki/Markdown) pour
permettre le formatage de texte enrichi. Cela vous permet de créer du contenu de CV plus expressif et
lisible.
## Syntaxe Supportée
Voici un aperçu rapide des fonctionnalités Markdown que vous pouvez utiliser :
### Gras et Italique
Vous pouvez mettre l'accent sur le texte en utilisant le style gras ou italique.
* **Gras :** `**votre texte en gras**`
* **Italique :** `*votre texte en italique*`
* **Les Deux :** `***votre texte en gras et italique***`
### Liens
Vous pouvez intégrer des hyperliens dans votre texte.
* **Syntaxe :** `[texte du lien](https://example.com)`
### Listes
Les listes ordonnées et non ordonnées sont supportées, y compris l'imbrication.
Le caractère `|` (pipe) en YAML est utilisé pour créer un "scalaire de bloc littéral,"
qui est une façon d'écrire des [chaînes multi-lignes](https://stackoverflow.com/a/21699210/2310396) tout en préservant
les sauts de ligne. C'est particulièrement utile pour des champs comme `summary` où vous
pourriez vouloir inclure des listes ou des paragraphes. Tout ce qui est indenté sous le `|`
sera traité comme une seule chaîne, avec les sauts de ligne maintenus.
#### Listes Non Ordonnées
Utilisez un tiret (`-`) ou un astérisque (`*`) pour chaque élément de liste.
```yml lineNumbers
summary: |
- First item
- Second item
- Third item
```
#### Listes Ordonnées
Utilisez des numéros suivis d'un point pour les listes ordonnées.
```yml lineNumbers
summary: |
1. First item
2. Second item
3. Third item
```
#### Listes Imbriquées
Vous pouvez indenter les listes pour créer des structures imbriquées.
```yml lineNumbers
summary: |
- Team player with a detail-oriented mindset.
- Experienced in databases (SQL, NoSQL).
- Proficient in PostgreSQL and MongoDB.
- Familiar with Redis for caching.
- Strong foundation in data structures and algorithms.
```
## Un Exemple Complet
Voici un champ `summary` d'une entrée `work` qui combine plusieurs des
fonctionnalités de syntaxe supportées :
```yml lineNumbers
---
content:
basics:
# ...
summary: |
This is a sample YAML resume that support limited set of markdown rich text syntax (bold, italics, links, lists):
- Computer Science major with **strong foundation** in data structures, *algorithms*, and software development
1. Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
2. Experiened in databases (SQL, NoSQL), familiar with server-side technologies ([Node.js](https://nodejs.org/en), Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
```
Voici le PDF généré :
## Qu'est-ce qui n'est pas Supporté ?
YAMLResume ne supporte que la syntaxe listée ci-dessus. D'autres fonctionnalités Markdown communes
telles que les titres, les citations, les images, les règles horizontales, et les tableaux ne sont **pas
supportées et seront ignorées pendant le traitement**.
# CLI
URL: (/fr/docs/contributing/cli)
YAMLResume adopte une structure mono-repo, ce qui signifie que tous les packages sont contenus
dans un seul dépôt. Grâce à [pnpm
workspace](https://pnpm.io/workspaces), cette approche simplifie la gestion des dépendances
et le versioning entre les packages.
Au moment de l'écriture, le dépôt YAMLResume a deux packages :
* [yamlresume/cli](https://github.com/yamlresume/yamlresume/tree/main/packages/cli) :
l'interface CLI pour YAMLResume.
* [yamlresume/core](https://github.com/yamlresume/yamlresume/tree/main/packages/core) :
contient le moteur principal pour YAMLResume. Il gère l'analyse, la validation et
le rendu des CV basés sur le [schéma officiel](/docs/compiler/schema).
## Construction de yamlresume/core
`yamlresume/cli` dépend de `yamlresume/core` pour fonctionner correctement. Donc quand vous
voulez tester `yamlresume/cli`, vous devez vous assurer que `yamlresume/core` est aussi
construit et disponible.
Vous pouvez faire cela avec les commandes suivantes :
```bash
# construire pour le développement
pnpm core build
# construire pour la production, ce qui va minifier la sortie et générer les fichiers
# TypeScript DTS `.d.ts`
pnpm core build:prod
# surveiller les changements de fichiers et construire automatiquement
pnpm core build:watch
```
## Construction de yamlresume/cli
Une fois que `yamlresume/core` est construit, vous pouvez exécuter les commandes CLI de deux façons :
1. construire `yamlresume/cli` localement et exécuter node.js avec `dist/cli.js` :
```bash
pnpm cli build
node packages/cli/dist/cli.js [options]
```
2. exécuter `yamlresume/cli` directement avec l'aide de [tsx](https://tsx.is/) :
```bash
pnpm cli dev [options]
# cette commande se traduira par
# tsx src/cli.ts
```
## Démonstration
Construction de `yamlresume/core` :
```console
$ pnpm core build
> @yamlresume/yamlresume@0.7.1 core /Users/hanyu/work/yamlresume/yamlresume
> pnpm --filter @yamlresume/core build
> @yamlresume/core@0.7.1 build /Users/hanyu/work/yamlresume/yamlresume/packages/core
> tsup
CLI Building entry: src/index.ts
CLI Using tsconfig: tsconfig.json
CLI tsup v8.4.0
CLI Using tsup config: /Users/hanyu/work/yamlresume/yamlresume/packages/core/tsup.config.ts
CLI Target: esnext
CLI Cleaning output folder
ESM Build start
ESM dist/index.js 160.91 KB
ESM ⚡️ Build success in 111ms
```
Construction de `yamlresume/cli` :
```console
$ pnpm cli build
> @yamlresume/yamlresume@0.7.1 cli /Users/hanyu/work/yamlresume/yamlresume
> pnpm --filter yamlresume build
> yamlresume@0.7.1 build /Users/hanyu/work/yamlresume/yamlresume/packages/cli
> tsup
CLI Building entry: src/cli.ts
CLI Using tsconfig: tsconfig.json
CLI tsup v8.4.0
CLI Using tsup config: /Users/hanyu/work/yamlresume/yamlresume/packages/cli/tsup.config.ts
CLI Target: esnext
CLI Cleaning output folder
ESM Build start
ESM dist/cli.js 11.36 KB
ESM ⚡️ Build success in 42ms
```
Tester `yamlresume/cli` avec tsx par `pnpm cli dev` :
```console
$ pnpm cli dev help
> @yamlresume/yamlresume@0.7.1 cli /Users/hanyu/work/yamlresume/yamlresume
> pnpm --filter yamlresume dev help
> yamlresume@0.7.1 dev /Users/hanyu/work/yamlresume/yamlresume/packages/cli
> tsx src/cli.ts help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
Tester `yamlresume/cli` avec Node.js :
```console
$ node packages/cli/dist/cli.js -V
0.7.1
```
# Docker
URL: (/fr/docs/contributing/docker)
En plus du [package CLI](https://www.npmjs.com/package/yamlresume), YAMLResume
fournit aussi une [image docker](https://hub.docker.com/r/yamlresume/yamlresume)
pour un onboarding facile.
Comme nous l'avons [documenté](/docs/installation#docker-users), vous pouvez exécuter le conteneur
docker yamlresume avec la commande suivante :
```bash
docker run --rm -v $(pwd):/app -w /app yamlresume/yamlresume
```
Cependant, si vous êtes intéressé, vous pouvez personnaliser l'image Docker selon vos
besoins.
## Construire l'Image Docker
L'image Docker de YAMLResume est définie et générée en deux phases :
### Dockerfile.base
[Dockerfile.base](https://github.com/yamlresume/yamlresume/blob/main/Dockerfile.base)
contient l'environnement de base pour exécuter YAMLResume, incluant toutes
les dépendances nécessaires comme [XeTeX](/docs/installation#xetex) de [TeX
Live](https://www.tug.org/texlive/) et [Google Noto
Font](/docs/installation#google-noto).
C'est une image de base principalement utilisée pour accélérer le processus de construction sur Github
Actions—installer texlive par `apt install texlive-xetex` prend environ [30
minutes](https://github.com/yamlresume/yamlresume/actions/runs/15438395862),
ce qui est trop long à exécuter pour chaque construction docker, donc nous avons décidé de construire et
[publier cette image de base
une fois](https://hub.docker.com/r/yamlresume/yamlresume-base) et la réutiliser pour
chaque construction ultérieure.
Généralement, vous n'avez pas besoin de construire cette image vous-même, vous pouvez simplement réutiliser
l'image publiée sur dockerhub.
### Dockerfile
[Dockerfile](https://github.com/yamlresume/yamlresume/blob/main/Dockerfile)
définit comment l'image `yamlresume/yamlresume` est construite, c'est très simple et
direct, il installe juste `yamlresume` depuis npmjs par `npm install -g
yamlresume@latest` et crée les utilisateurs et groupes nécessaires selon les
[meilleures pratiques de sécurité de Docker](https://www.docker.com/blog/understanding-the-docker-user-instruction/).
Construire l'image yamlresume localement est une tâche triviale. Vous devez juste exécuter
```bash
docker build -t yamlresume/yamlresume .
```
Vous pourriez avoir besoin de regarder [la construction docker multi-plateforme](https://docs.docker.com/build/building/multi-platform/) si vous, par exemple, rencontrez
des problèmes de construction d'images docker pour différentes architectures.
J'ai écrit [quelques conseils sur
X](https://x.com/xiaohanyu1988/status/1931178628785778722), vous pouvez y jeter un coup d'œil
si vous êtes intéressé.
# Contribuer
URL: (/fr/docs/contributing)
Tout d'abord, merci de considérer contribuer à YAMLResume ! Ce sont des gens
comme vous qui rendent l'open source formidable. Nous accueillons tout type de contribution, pas
seulement le code. Vous pouvez aider avec :
* Signaler un bug
* Discuter de l'état actuel du code
* Soumettre un correctif
* Proposer de nouvelles fonctionnalités
* Améliorer la documentation
Voici quelques raccourcis pour des tâches spécifiques :
## Commencer
### Prérequis
* [Node.js](https://nodejs.org/) (version >= 20, vérifiez `.nvmrc` ou
le champ engines de `package.json`)
* [pnpm](https://pnpm.io/) (version >= 10, vérifiez le champ packageManager de
`package.json`)
* Git
### Configuration
1. **Forker le dépôt :** Cliquez sur le bouton "Fork" sur la [page GitHub
YAMLResume](https://github.com/yamlresume/yamlresume). Cela crée votre propre copie
du projet.
2. **Cloner votre fork :**
```bash
git clone https://github.com//yamlresume.git
cd yamlresume
```
3. **Installer les dépendances :**
```bash
pnpm install
```
Cette commande installe toutes les dépendances nécessaires pour l'ensemble de l'espace de travail.
## Flux de Développement
### Construction des Packages
* Construire tous les packages une fois :
```bash
pnpm build
```
* Construire tous les packages et surveiller les changements :
```bash
pnpm build:watch
```
* Construire pour la production (incluant les définitions de types, minification) :
```bash
pnpm build:prod
```
### Exécution des Tests
* Exécuter les tests pour tous les packages :
```bash
pnpm test
```
* Exécuter les tests en mode surveillance :
```bash
pnpm test:watch
```
* Exécuter les tests avec rapport de couverture :
```bash
pnpm test:cov
```
Consultez [Test](./contributing/test) pour plus de détails et cas d'usage.
### Formatage et Linting du Code
Nous utilisons [Biome](https://biomejs.dev/) pour le formatage et le linting du code. Assurez-vous
que votre code respecte les guides de style du projet avant de commiter.
* Vérifier et corriger automatiquement les problèmes :
```bash
pnpm check
```
* Exécuter les vérifications sans appliquer les corrections (utile pour CI) :
```bash
pnpm check:ci
```
Nous utilisons aussi [addlicense](https://github.com/google/addlicense) pour nous assurer que les fichiers
source ont l'en-tête de licence correct. Vous devez l'installer pour exécuter
les commandes suivantes.
* Ajouter les en-têtes de licence manquants :
```bash
pnpm license:add
```
* Vérifier les en-têtes de licence manquants :
```bash
pnpm license:check
```
## Soumettre des Contributions
### Signaler des Problèmes
Si vous trouvez un bug ou avez une demande de fonctionnalité, veuillez
[ouvrir un problème](https://github.com/yamlresume/yamlresume/issues) sur GitHub.
Fournissez autant de détails que possible, incluant :
* Un titre clair et descriptif.
* Les étapes pour reproduire le bug (si applicable).
* Le comportement attendu et le comportement réel.
* Des captures d'écran ou des extraits de code (si utiles).
* Les détails de votre environnement (OS, version Node, version pnpm).
### Pull Requests (PRs)
Nous adorons les pull requests ! Voici un guide rapide :
1. **Créer une branche :** Commencez depuis la branche `main` et créez un nom de
branche descriptif (par exemple, `fix/login-bug`, `feat/new-template-option`).
```bash
git checkout main
git pull origin main
git checkout -b your-branch-name
```
2. **Faire vos changements :** Écrivez votre code ou améliorez la documentation.
3. **Tester vos changements :** Assurez-vous que tous les tests passent :
```bash
pnpm test
```
4. **Vérifier la qualité du code :** Assurez-vous que les vérifications de formatage et de linting passent :
```bash
pnpm check
```
5. **Commiter vos changements :** Nous utilisons
[Conventional Commits](https://www.conventionalcommits.org/) pour les messages de commit,
appliqué par `commitlint`. Cela aide à automatiser les changelogs et
le versioning. Un message de commit typique ressemble à
`feat: add new command` ou `fix: resolve issue with parsing`. Vous pouvez utiliser
`pnpm commitlint` pour aider à formater votre message si nécessaire, ou utiliser des outils comme
[git cz](https://github.com/commitizen/cz-cli) si vous l'avez installé.
```bash
git add .
git commit -m "feat: your descriptive commit message"
```
6. **Pousser votre branche :**
```bash
git push origin your-branch-name
```
7. **Ouvrir une Pull Request :** Allez sur le dépôt YAMLResume sur GitHub et cliquez
sur le bouton "New pull request". Comparez votre branche avec la branche `main`.
8. **Décrire votre PR :** Fournissez une description claire des changements que vous avez apportés.
Liez tout problème pertinent (par exemple, "Closes #123").
9. **Révision :** Un mainteneur révisera votre PR. Répondez à tout feedback ou
changements demandés.
10. **Fusion :** Une fois approuvée, votre PR sera fusionnée. Merci pour votre
contribution !
## Licence
En contribuant à YAMLResume, vous acceptez que vos contributions soient
sous licence [MIT License](LICENSE).
# Nouvelle Langue
URL: (/fr/docs/contributing/new-language)
import { Step, Steps } from "fumadocs-ui/components/steps";
YAMLResume est conçu pour supporter [plusieurs
langues](/docs/locale) de bas en haut, permettant aux utilisateurs de créer
des CV dans leur langue préférée.
Au moment de l'écriture, YAMLResume supporte les langues suivantes :
* [Anglais](/docs/locale/english)
* [Chinois](/docs/locale/chinese)
* [Norvégien](/docs/locale/norwegian)
* [Espagnol](/docs/locale/spanish)
Si votre langue préférée n'est pas listée, vous pouvez contribuer en suivant les
étapes ci-dessous pour ajouter le support d'une nouvelle langue.
## Enregistrer Votre Langue
Pour ajouter une nouvelle option `locale.language` à YAMLResume, d'abord enregistrez votre
langue dans
[models/resume.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/models/resume.ts)
en ajoutant une nouvelle entrée à `LOCALE_LANGUAGE_OPTIONS`.
**Liste de vérification :**
* [ ] Ajouter votre langue à `LOCALE_LANGUAGE_OPTIONS`.
* [ ] [Construire et tester le nouveau CLI](/docs/contributing/cli#yamlresumecli-build)
avec `pnpm cli dev languages list`, en s'assurant que votre langue apparaît dans
la liste.
## Ajouter les Traductions
Fournir des traductions pour toutes les
[options](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/translations/options.ts),
[ponctuations et
termes](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/translations/template.ts)
pertinents utilisés dans YAMLResume. Cela assure que les utilisateurs peuvent générer des CV dans la nouvelle langue
avec des étiquettes, options, traductions de termes et noms de sections précis. Voici
une [PR de référence](https://github.com/yamlresume/yamlresume/pull/44) pour ajouter
des traductions pour la langue norvégienne.
**Liste de vérification :**
* [ ] Ajouter des traductions pour les [noms de
pays](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/models/country.ts)
* [ ] Ajouter des traductions d'options pour `degrees`, `fluency`, `languages`, `sections`,
et `skills`
* [ ] Ajouter des traductions de ponctuation pour `comma`, `colon`, et `separator`
* [ ] Ajouter des traductions de termes pour `courses`, `keywords`, et `score`
## Mettre à Jour la Configuration Babel
YAMLResume utilise LaTeX pour la génération PDF, et pour obtenir les meilleurs résultats de composition,
nous devons définir une configuration appropriée du [package babel](https://latex3.github.io/babel/). Voici un [commit de référence](https://github.com/yamlresume/yamlresume/commit/b72a4441ad2542873f449bc35a265e7208eafbe7)
pour la langue norvégienne.
**Liste de vérification :**
* [ ] Mettre à jour la fonction `renderBabelConfig()` dans
[preamble.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/renderer/preamble.ts)
pour inclure le package babel pour votre nouvelle langue.
## Tester avec la Nouvelle Langue
[Construire](/docs/contributing/cli#yamlresumecore-build) les packages `yamlresume/core` et `yamlresume/cli`, puis :
* [ ] Créer un nouveau CV `pnpm cli dev new my-resume.yml`
* [ ] Définir `locale.language` à la nouvelle langue que vous venez d'ajouter
* [ ] Tester vos changements en générant un CV dans la nouvelle langue
par `pnpm cli dev build my-resume.yml`
* [ ] S'assurer que les deux sorties PDF fonctionnent comme attendu.
## Soumettre Votre PR
Une fois que vous avez complété les étapes ci-dessus, soumettez votre pull request avec une description claire
des changements et de la langue que vous ajoutez. Les mainteneurs vont
réviser votre PR et peuvent demander des changements ou des clarifications.
Merci d'aider à rendre YAMLResume accessible à plus de personnes dans le monde !
# Test
URL: (/fr/docs/contributing/test)
Pour avoir une expérience de développement fluide, il est important d'avoir une
stratégie de test solide en place. Cela inclut les tests unitaires, les tests d'intégration,
et les tests end-to-end pour s'assurer que tous les aspects de l'application
fonctionnent comme attendu.
## Test Unitaire
Vous pouvez exécuter les tests unitaires en utilisant la commande suivante :
```bash
# exécuter les tests pour le package yamlresume/cli
pnpm cli test
# exécuter les tests pour le package yamlresume/core
pnpm core test
# exécuter les tests pour tous les packages
pnpm test
```
Si vous travaillez sur une nouvelle fonctionnalité, vous pouvez exécuter les tests sur les changements de fichiers :
```bash
# surveiller et tester les changements dans le package yamlresume/cli
pnpm cli test:watch
# surveiller et tester les changements dans le package yamlresume/core
pnpm core test:watch
# surveiller et tester les changements dans tous les packages
pnpm test:watch
```
N'oubliez pas de [construire](./contributing/cli#yamlresumecore-build)
le package `yamlresume/core` si vous travaillez sur une fonctionnalité CLI qui dépend du
package `yamlresume/core`.
## Couverture de Test
YAMLResume maintient une **[couverture de test unitaire de 100%](https://app.codecov.io/gh/yamlresume/yamlresume)** afin de poursuivre
une haute qualité de code et prévenir les régressions. Vous pouvez vérifier le rapport de couverture de test
en exécutant :
```bash
# vérifier la couverture de test pour le package yamlresume/cli
pnpm cli test:cov
# vérifier la couverture de test pour le package yamlresume/core
pnpm core test:cov
# vérifier la couverture de test pour tous les packages
pnpm test:cov
```
# create-yamlresume
URL: (/fr/docs/ecosystem/create-yamlresume)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
[create-yamlresume](https://yamlresume.dev/docs/ecosystem/create-yamlresume)
vous aide à créer un nouveau projet [YAMLResume](https://yamlresume.dev) avec une
commande en une ligne.
## Utilisation
<>
```console
npx create-yamlresume my-resume
# or
npm init yamlresume my-resume
```
```console
pnpm create yamlresume my-resume
```
```console
yarn create yamlresume my-resume
```
```console
bun create yamlresume my-resume
```
>
## Ce qu'il fait
Cet outil va :
1. Créer un nouveau répertoire avec le nom de votre projet
2. Créer une structure de projet Node.js de base avec :
* `package.json` avec la dépendance YAMLResume et des scripts utiles
* Fichier `.gitignore` avec les exclusions appropriées
* `README.md` avec les instructions d'utilisation de base
3. Installer toutes les dépendances nécessaires
4. Créer un nouveau fichier de CV d'exemple en utilisant `yamlresume new`
5. Afficher les commandes disponibles et les prochaines étapes
## Session d'Exemple
```
$ pnpm create yamlresume
✔ What is your project name? … yamlresume
ℹ Using pnpm.
✔ What should your resume file be called? (without .yml extension) … resume
◐ Creating YAMLResume project in /private/tmp/yamlresume...
◐ Installing dependencies with pnpm...
Packages: +59
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 59, reused 59, downloaded 0, added 59, done
dependencies:
+ yamlresume 0.7.5
Done in 4s using pnpm v10.6.3
✔ Dependencies installed successfully!
◐ Creating resume file resume.yml...
✔ Created resume.yml successfully.
◐ Initializing git repository...
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m
Initialized empty Git repository in /tmp/yamlresume/.git/
✔ Git repository initialized!
[master (root-commit) 53c6210] init a new YAMLResume project
4 files changed, 421 insertions(+)
create mode 100644 .gitignore
create mode 100644 README.md
create mode 100644 package.json
create mode 100644 resume.yml
✔ Initial commit created!
ℹ
✨ Project created successfully!
ℹ
Next steps:
ℹ 1. cd yamlresume
ℹ 2. Edit your resume: resume.yml
ℹ 3. Build your resume: pnpm run build
ℹ 4. Watch for changes: pnpm run dev
ℹ 5. Show all commands: pnpm run yamlresume help
ℹ
Learn more:
ℹ 🏠 Homepage: https://yamlresume.dev
ℹ 📖 Documentation: https://yamlresume.dev/docs/
ℹ 🎨 Templates: https://yamlresume.dev/docs/layouts/latex/templates
ℹ 📝 Schema: https://yamlresume.dev/docs/compiler/schema
```
## Structure du Projet
Le projet généré ressemble à ceci :
```
my-resume/
├── package.json # Project configuration with yamlresume dependency
├── .gitignore # Git ignore rules
├── README.md # Project documentation
└── resume.yml # Your YAML resume (filename you choose)
```
## Commandes Disponibles
Dans le projet généré, vous pouvez exécuter :
* `npm run build` - Construire votre CV en PDF
* `npm run dev` - Surveiller les changements et reconstruire automatiquement
* `npm run validate` - Valider votre CV contre le schéma
* `npm run yamlresume` - Exécuter le CLI YAMLResume
# Écosystème
URL: (/fr/docs/ecosystem)
YAMLResume fournit un ensemble d'outils pour vous aider à créer, convertir et gérer vos
CV plus efficacement. Voici quelques-uns des utilitaires clés disponibles :
## create-yamlresume
[create-yamlresume](./ecosystem/create-yamlresume) facilite le démarrage d'un nouveau
projet YAMLResume avec une commande en une ligne. Il échafaudera votre répertoire de projet,
installera les dépendances nécessaires, et générera un fichier de CV d'exemple
pour que vous puissiez commencer immédiatement.
* Échafauder un nouveau projet avec `npx create-yamlresume my-resume` ou des commandes
similaires pour `npm`, `yarn`, ou `pnpm`.
* Inclut une structure de projet prête à l'emploi, des scripts pour construire et valider
les CV, et un fichier de CV YAML d'exemple.
## json2yamlresume
[json2yamlresume](./ecosystem/json2yamlresume) est un outil CLI pour convertir
les fichiers [JSON Resume](https://jsonresume.org/) au format YAMLResume.
* Convertit les fichiers JSON Resume vers YAMLResume, transformant les champs et la structure selon
les besoins.
* S'assure que vos données sont validées contre le schéma YAMLResume.
Ces outils vous aident à migrer depuis d'autres formats, automatiser la configuration de projet, et
rationaliser votre flux de travail avec YAMLResume.
## En Savoir Plus
# json2yamlresume
URL: (/fr/docs/ecosystem/json2yamlresume)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
[json2yamlresume](https://yamlresume.dev/docs/ecosystem/json2yamlresume) est un
[outil en ligne de commande](https://npmjs.com/package/json2yamlresume) pour convertir [JSON
Resume](https://jsonresume.org/) au format [YAMLResume](https://yamlresume.dev/).
## Fonctionnalités
* **Conversion de Format** : convertit de manière transparente JSON Resume au format YAMLResume
* **[Transformation de Structure](#regles-de-conversion)**
* **Interface CLI** : interface en ligne de commande simple pour une conversion facile
* **Validation** : construit au-dessus de la [validation de schéma](/docs/compiler/schema) robuste de YAMLResume
## Installation
<>
```console
npm install -g json2yamlresume
```
```console
pnpm add -g json2yamlresume
```
```console
yarn global add json2yamlresume
```
```console
bun add -g json2yamlresume
```
>
## Utilisation
### Convertir un JSON Resume en YAMLResume
```bash
$ json2yamlresume input.json output.yaml
# ou appelez la commande sans le chemin de sortie optionnel, dans ce cas la
# sortie sera écrite dans le même répertoire que le fichier d'entrée avec le même
# nom mais avec une extension .yml
$ json2yamlresume input.json
```
### Afficher l'aide
```bash
$ json2yamlresume --help
Usage: json2yamlresume [options] [output-file]
Convert JSON Resume to YAMLResume format
Arguments:
input-file Input JSON Resume file path
output-file Output YAMLResume file path
Options:
-V, --version output the version number
-h, --help display help for command
```
### Afficher la version
```bash
$ json2yamlresume --version
0.7.4
```
## Exemple
Voici un exemple de CV au format JSON Resume :
```json lineNumbers title="json-resume.json"
{
"basics": {
"name": "John Doe",
"label": "Software Engineer",
"email": "john@example.com",
"location": {
"city": "San Francisco",
"countryCode": "US"
},
"profiles": [
{
"network": "GitHub",
"username": "johndoe",
"url": "https://github.com/johndoe"
}
]
},
"work": [
{
"name": "Tech Corp",
"position": "Senior Developer",
"startDate": "2020-01",
"summary": "Led development of web applications.",
"highlights": [
"Increased performance by 40%",
"Mentored 5 junior developers"
]
}
],
"education": [
{
"institution": "University of California",
"area": "Computer Science",
"studyType": "Bachelor of Science",
"startDate": "2018"
}
]
}
```
Vous pouvez appeler la commande suivante pour convertir le JSON Resume en YAMLResume :
```bash
$ json2yamlresume json-resume.json yamlresume.yml
```
Voici la sortie au format YAMLResume :
```yaml lineNumbers title="yamlresume.yml"
---
content:
basics:
name: John Doe
headline: Software Engineer
email: john@example.com
education:
- institution: University of California
area: Computer Science
degree: Bachelor of Science
startDate: "2018"
location:
city: San Francisco
country: US
profiles:
- network: GitHub
username: johndoe
url: https://github.com/johndoe
work:
- name: Tech Corp
position: Senior Developer
startDate: 2020-01
summary: |-
- Increased performance by 40%
- Mentored 5 junior developers
```
## Règles de Conversion
### 1. Déplacement de Location et Profiles
* `basics.location` → `location` de niveau supérieur
* `basics.profiles` → `profiles` de niveau supérieur
* `basics.label` → `basics.headline`
### 2. Mappage des Champs Education
* `education[].studyType` → `education[].degree`
### 3. Intégration des Highlights
Le convertisseur fusionne les tableaux `highlights` dans les champs `summary` comme des listes
non ordonnées markdown pour ces sections :
* `work[]`
* `volunteer[]`
* `projects[]`
Exemple :
```json
{
"summary": "Led development team.",
"highlights": ["Increased performance", "Mentored developers"]
}
```
Devient :
```yaml
summary: |-
Led development team.
- Increased performance
- Mentored developers
```
Rappelez-vous que le champ summary de YAMLResume supporte le [texte
enrichi](/docs/content/rich-text) !
### 4. References
* `references[].reference` → `references[].summary`
## Sections JSON Resume Supportées
Le convertisseur supporte toutes les sections standards JSON Resume :
* ✅ `basics`
* ✅ `work`
* ✅ `volunteer`
* ✅ `education`
* ✅ `awards`
* ✅ `certificates`
* ✅ `publications`
* ✅ `skills`
* ✅ `languages`
* ✅ `interests`
* ✅ `references`
* ✅ `projects`
# Police
URL: (/fr/docs/guide/font)
Si le texte est le véhicule pour la transmission d'informations, alors les caractéristiques
visuelles du texte lui-même—c'est-à-dire la police—influencent la qualité du
message.
En principe, la composition d'un CV devrait être concise et claire. Quant à la
police, d'abord vous ne devriez jamais utiliser de polices trop fantaisistes, deuxièmement les types de
polices ne devraient pas être trop nombreux—mieux limités à trois. Ici nous discuterons de quelques
bases des polices et points principaux en composition.
## Classification des polices
### Serif vs. sans-serif
En termes de serifs, les polices pour l'alphabet latin sont divisées en deux familles :
serif et sans-serif[^1].
Un serif est une petite ligne attachée à la fin d'un trait dans une lettre. Une police avec
des serifs est appelée police serif, ou police serifée. En contraste, une police sans serifs
est appelée police sans-serif, où *sans* est le mot français pour "sans".
### Proportionnel vs. monospace
Selon que les largeurs des lettres sont les mêmes ou non, les polices peuvent être
divisées en monospace et proportionnelles. Comme le nom le suggère, toutes les lettres dans une
police monospace occupent la même quantité d'espace horizontal, tandis que dans une
police proportionnelle elles ne le font pas.
Dans l'impression traditionnelle, les polices proportionnelles peuvent améliorer la lisibilité des mots.
En raison des limitations techniques, les premiers ordinateurs et machines à écrire ne peuvent pas ajuster
les largeurs des lettres. Donc tous les caractères sont faits de la même largeur, ainsi
les polices monospace voient le jour. Avec l'amélioration de la technologie informatique,
l'interface graphique (GUI) est devenue le courant dominant et se développe
continuellement, les limitations techniques n'existent plus, donc les polices proportionnelles sont
devenues très populaires, car elles sont plus naturellement lisibles pour l'humain.
### Police CJK
Les styles de police dans [CJK](https://en.wikipedia.org/wiki/CJK_characters) sont un peu
compliqués. Généralement parlant, il y a aussi des polices serif et sans-serif dans les langues
CJK.
#### Song
**[Song](https://en.wikipedia.org/wiki/Ming_typefaces)** : connu comme 宋体/明体 en
chinois simplifié, 宋體/明體 en chinois traditionnel, みんちょうたい/明朝体 en japonais,
명조체/明朝體 en coréen, est la police serif en CJK.
Song est généralement utilisé pour le texte principal, les titres et les notes. Quand utilisé pour les titres,
le poids des caractères est souvent augmenté pour les différencier du
texte principal. Actuellement c'est la police la plus couramment utilisée en impression.
#### Bold
**[Bold](https://en.wikipedia.org/wiki/Sans-serif)**, connu comme 黑体 en chinois
simplifié, 黑體 en chinois traditionnel, est la police sans-serif en CJK.
Bold est souvent utilisé pour les gros titres, les introductions, les logos, etc. Bold est aussi utilisé
dans le texte principal pour souligner des mots spécifiques. En raison du grand nombre de traits dans
les caractères chinois et de la mauvaise clarté du bold en petits caractères, l'impression
traditionnelle utilise rarement le bold comme texte principal ; cependant, avec le raffinement de
la technologie de création de caractères, couplé au développement d'Internet et
de l'édition numérique, de nombreuses polices bold ont été développées pour le texte principal, et un
petit nombre de livres ont commencé à utiliser le bold comme police de texte principal.
En plus de Song et Bold, *le chinois a aussi deux styles de police supplémentaires qui sont
largement utilisés*.
#### Regular
**[Regular](https://en.wikipedia.org/wiki/Regular_script)** : connu comme 楷体 en
chinois simplifié, 楷體 en chinois traditionnel, est le style le plus couramment utilisé dans
les écrits chinois modernes.
Regular est principalement utilisé pour les titres, les introductions, les dialogues, les résumés et
autres paragraphes qui sont différents du texte principal. Cependant, regular est
moins fréquemment utilisé pour l'emphase à cause de sa proximité avec Song.
#### Fangsong
**[Fangsong](https://en.wikipedia.org/wiki/Fangsong)**, connu comme 仿宋体 en
chinois simplifié, 仿宋體 en chinois traditionnel, est un type de police de script régulier.
Il est principalement utilisé dans l'introduction, le résumé et autres paragraphes
qui sont différents du texte principal. En même temps, c'est aussi la police standard
utilisée dans les documents officiels produits par le gouvernement chinois.
## Conception et utilisation des polices
L'édition numérique se développe depuis de nombreuses années, et les langues occidentales ont
un très petit jeu de caractères, donc il y a de nombreux types de polices conçues par
différentes personnes avec diverses demandes.
Pour une police monospace, l'accent principal est sur la conception de chaque lettre individuelle,
autre que cela, dans une police proportionnelle, l'espace entre les lettres devrait aussi
être sérieusement considéré.
### Composition des lettres
Les lettres dans chaque police ont une structure cohérente, les utilisateurs de polices sont supposés
connaître ces concepts de base :
* ligne de base : la ligne invisible sur laquelle "H" ou "n" se tient
* hauteur de cap : la distance de la ligne de base au sommet d'une lettre majuscule linéaire
comme "H" ou "E"
* hauteur x : la distance du bas au sommet du "x" minuscule
* ascendant : les parties ascendantes des lettres minuscules comme "b", "d", "f", "h",
"k", "l" au-dessus du sommet de "x", sa hauteur est appelée la hauteur d'ascendant, la ligne
du haut à laquelle les ascendants s'alignent est appelée la ligne d'ascendant
* descendant : les parties descendantes des lettres minuscules comme "g", "j", "p", "q",
"y" en dessous de la ligne de base, sa hauteur est appelée la hauteur de descendant, la ligne
du bas à laquelle les descendants s'alignent est appelée la ligne de descendant
### Espacement des lettres
L'espacement des lettres, ou tracking, fait référence à l'espace entre les lettres.
L'ajustement de l'espacement des lettres est divisé entre le côté des concepteurs de polices et le côté des utilisateurs de polices ;
il affecte la densité dans une ligne ou un bloc de texte.
Pour les concepteurs de polices, l'ajustement de l'espacement des lettres est une procédure importante
dans la conception. Dans une police proportionnelle, l'espacement du côté gauche d'une lettre
individuelle n'est pas nécessairement le même que du côté droit. Le but est de
s'assurer de la lisibilité quand la lettre est à côté de n'importe quelles autres lettres des deux
côtés.
Pour les utilisateurs de polices, l'ajustement de l'espacement des lettres signifie réorganiser manuellement l'espace
entre les lettres par logiciel après la composition originale, afin d'obtenir un alignement spécial[^2], ou un meilleur effet de mise en page[^3].
### Crénage
Le crénage fait référence au processus d'augmentation ou de diminution de l'espace entre
des paires de lettres spécifiques dans une police proportionnelle. Ces paires de lettres sont appelées
paires de crénage. Le crénage est plus concerné par l'espacement visuel plutôt que
l'espacement réel.
Les concepteurs de nombreuses polices feront attention aux paires de crénage pendant la conception, et
stockeront les valeurs d'ajustement de crénage dans le fichier de police. De cette façon, les logiciels
de composition peuvent automatiquement ajuster l'espacement pour les paires de crénage selon les
valeurs, produisant ainsi un meilleur effet de mise en page.
Chaque lettre a une forme unique, donc pendant la conception et l'implémentation d'une
police, les lettres dans toutes les paires de crénage doivent coopérer pour produire le meilleur effet
visuel. En fait, c'est là que se trouvent la procédure clé et les difficultés[^4].
### Ligature
Une ligature est un glyphe qui joint deux ou plusieurs lettres ensemble.
Les ligatures en impression proviennent des caractères avec trait d'union en écriture manuscrite. Après
la naissance de l'impression à caractères mobiles, de nombreuses ligatures ont été directement faites en caractères.
Cependant, après l'utilisation généralisée des polices sans-serif dans les années 1950 et
de la photocomposition dans les années 1970, l'utilisation des lettres en blocs est devenue rare. Le
premier logiciel de composition numérique qui pouvait utiliser des ligatures pour la
composition numérique est TeX créé par [Donald
Knuth](https://en.wikipedia.org/wiki/Donald_Knuth). Cette tendance a aussi affecté l'édition
de bureau après 1985. Dans les premiers temps, les logiciels ne pouvaient pas remplacer
les lettres par des ligatures (mais TeX le pouvait), et la plupart des nouvelles polices faites pour
les ordinateurs n'incluaient pas de ligatures. De plus, dans les premiers jours des
ordinateurs personnels, la plupart des ordinateurs étaient en anglais, et il n'y avait pas de besoin
pratique pour l'utilisation de ligatures, car ce n'était pas obligatoire de l'utiliser dans la langue
anglaise. Avec le développement de la technologie de composition numérique comme
[OpenType](https://en.wikipedia.org/wiki/OpenType), les ligatures ont
graduellement retourné à la pratique[^5].
Dans les documents d'affaires normaux de tous les jours, le manque de ligatures n'est pas traité comme
une erreur d'orthographe, mais pour la composition professionnelle en publicité, édition de livres
et autres domaines, les ligatures sont essentiellement requises.
### Italiques
L'italique est un style de police obtenu en inclinant la police au-dessus du style de police
normal ; il peut faire référence au type italique ou au type oblique[^6].
Il y a deux types de polices inclinées dans la police occidentale : le type oblique et le type
italique. Celui qui est incliné avec un changement dans la forme des caractères est
"Type Italique", tandis que celui qui incline simplement la police originale vers la droite
sans changement dans la forme des caractères est connu comme type oblique. Depuis que
les italiques obliques, qui sont simplement inclinés et déformés par des algorithmes logiciels,
ont des traits lâches, de plus en plus de conceptions ont récemment favorisé l'utilisation de types
italiques spécialisés nouvellement conçus.
Théoriquement, les italiques incluent le type italique et le type oblique, mais il devrait être
remarqué qu'en fait pas tous les types italiques sont inclinés.
En pratique, les italiques sont généralement appliqués à un morceau de texte pour l'emphase ou
le distinguer du corps principal qui est en polices serif.
### Chiffres de style ancien
Les chiffres de style ancien, aussi connus comme [chiffres de
texte](https://en.wikipedia.org/wiki/Text_figures), conçus avec des hauteurs variables pour les langues de script latin d'une façon qui ressemble à une ligne typique de
texte courant, d'où le nom.
En contraste, les chiffres de style aligné (aussi appelés alignés, titrage ou chiffres
modernes), ont la même hauteur que les caractères majuscules.
YAMLResume utilise par défaut les chiffres de style ancien pour les CV en langues de script latin et
les chiffres de style aligné pour les autres.
> La composition de haute qualité préfère généralement les chiffres de texte dans le texte principal : ils
> s'intègrent mieux avec les lettres minuscules et les petites majuscules, contrairement aux séries de
> chiffres alignés. Les chiffres alignés sont appelés dans les paramètres tout en majuscules (d'où
> le nom alternatif chiffres de titrage), et peuvent mieux fonctionner dans les tableaux et
> feuilles de calcul.
>
> — [Text figures](https://en.wikipedia.org/wiki/Text_figures#Design)
### Police Occidentale Recommandée
Il y a des tonnes de polices là-bas de nos jours, donc recommander un schéma de police occidentale
universel pour votre CV n'est pas une tâche facile.
* RECOMMANDÉ, utiliser des polices serif pour le texte principal
* RECOMMANDÉ, utiliser des polices sans-serif pour les titres, mais les polices serif peuvent être utilisées
aussi
* RECOMMANDÉ, utiliser le style de police italique pour souligner le texte dans le corps principal,
le style gras correspondant peut être utilisé aussi
Voici une liste de polices serif couramment utilisées :
* [Garamond](https://en.wikipedia.org/wiki/Garamond)
* [Palatino](https://en.wikipedia.org/wiki/Palatino)
* [Geogria](https://en.wikipedia.org/wiki/Georgia_\(typeface\))
* [Baskerville](https://en.wikipedia.org/wiki/Baskerville)
* [Minion](https://en.wikipedia.org/wiki/Minion_\(typeface\))
* [Hoefler Text](https://en.wikipedia.org/wiki/Hoefler_Text)
* [Linux Libertine](https://en.wikipedia.org/wiki/Linux_Libertine)
Une liste de polices sans-serif couramment utilisées :
* [Helvetica](https://en.wikipedia.org/wiki/Helvetica)
* [Gill Sans](https://en.wikipedia.org/wiki/Gill_Sans)
* [Optima](https://en.wikipedia.org/wiki/Optima)
***
[^1]: [Serif vs Sans: The Final Battle](http://designreviver.com/inspiration/serif-vs-sans-the-final-battle/)
[^2]: Quand la largeur de la mise en page est petite, généralement ce n'est pas approprié
d'utiliser l'alignement justifié, car appliquer l'alignement justifié va
forcer la plupart des logiciels à ajuster l'espacement des lettres, et souvent, l'effet
de mise en page final sera très mauvais.
[^3]: Par exemple, l'innovation du système de composition TeX réside dans son
excellent
[algorithme de justification](https://en.wikipedia.org/wiki/TeX#Hyphenation_and_justification),
le principe duquel est d'ajuster l'espacement des lettres pour
rendre la mise en page plus
[justifiée](https://en.wikipedia.org/wiki/Typographic_alignment#Justified).
[^4]: Un [Guide](https://designschool.canva.com/blog/kerning/) pour débutants sur le Crénage comme un Designer
[^5]: [Ligature](https://en.wikipedia.org/wiki/Ligature)
[^6]: [Italic Type](https://en.wikipedia.org/wiki/Italic_type)
# Grammaire
URL: (/fr/docs/guide/grammar)
## Contenu
Être concis est le plus important pour un CV. L'information objective de base est
le cœur d'un CV :
* informations personnelles
* les informations de contact importantes comme le téléphone, l'e-mail doivent être claires
* parcours éducatifs
* si vous êtes un nouveau diplômé, vous pouvez ajouter le parcours éducatif du lycée
* compétences professionnelles
* récompenses
* expériences de travail (stage)
Soyez prudent pour ajouter des informations subjectives :
* auto-évaluation
* hobbies personnels
* activités sociales, expériences de bénévolat, etc., qui n'ont pas de
relations claires avec le poste appliqué
Soyez prudent pour ajouter des informations objectives qui ne sont pas liées au poste
appliqué :
* photos
* anniversaire
* adresse domiciliaire
* nationalité
* identité politique
* statut marital et familial
Contenus interdits :
* "Mon CV" comme titre
* filigranes de logos sur les modèles de CV de différentes sources
## Orthographe
Les erreurs d'orthographe dans un CV sont un grand non-non dans une recherche d'emploi. Trop d'erreurs d'orthographe
élémentaires peuvent affecter la première impression d'un employeur sur un candidat. La plupart
des logiciels ont un correcteur orthographique, donc utilisez-le appropriément pour éviter de nombreuses erreurs d'orthographe
primaires. Bien sûr, ne comptez pas trop sur la vérification orthographique du logiciel,
il vaut mieux trouver un ami de confiance pour une relecture.
### Noms propres
En plus des erreurs d'orthographe communes, il y a des erreurs d'orthographe très fréquentes
dans les noms propres, car ils sont plus sensibles à la casse. La même combinaison de
lettres avec différentes capitalisations peut avoir des significations complètement différentes dans
divers domaines, donc les chercheurs d'emploi doivent être très prudents. Par exemple,
[iOS](http://www.apple.com/ios/) avec "i" minuscule représente le système d'exploitation
mobile sur un iPhone Apple, tandis que
[IOS](https://en.wikipedia.org/wiki/Cisco_IOS) avec "I" majuscule est le
système dédié sur les routeurs Cisco.
Limité à notre arrière-plan, ce guide résume quelques erreurs d'orthographe communes de
noms propres dans le domaine informatique.
| Fautes de frappe | Correction |
| ------------------------------ | -------------- |
| ajax | Ajax AJAX |
| android | Android |
| android studio | Android Studio |
| APP | App |
| AppStore, app store | App Store |
| Css, css | CSS |
| eclipse | Eclipse |
| git, GIT | Git |
| Html, html | HTML |
| Http, http | HTTP |
| json, Json | JSON |
| JAVA, java | Java |
| Javascript, javascript, JS, js | JavaScript |
| linux, LINUX | Linux |
| mysql | MySQL |
| node, Node, NodeJS, nodejs | Node.js |
| OC, oc, objective-c | Objective-C |
| python | Python |
| ruby | Ruby |
| sqlite | SQLite |
| xml, Xml | XML |
| xcode, XCODE, XCode | Xcode |
| ios, IOS | iOS |
| iphone, IPHONE | iPhone |
| jquery, JQuery | jQuery |
## Syntaxe
Comparé à l'écriture ordinaire, il y a quelques exigences de grammaire spéciales pour
l'écriture de CV.
* généralement utiliser le passé composé, mais si vous décrivez le travail présent ou
l'expérience éducative, utiliser le présent
* généralement commencer un élément avec un verbe au passé composé, omettant le sujet
* essayer d'utiliser des phrases simples et courtes qui sont faciles à comprendre, au lieu de
longues clauses complexes
* lister les parcours éducatifs et expériences de travail en flashbacks, et le format de temps
devrait être précis au mois
* utiliser le format de temps standard comme "2015.05", ou format qui peut être définitivement
interprété, tel que "Juin 2016", au lieu d'abréviations d'année comme "05/06",
qui peuvent être interprétées différemment dans différents pays
Voici une liste de 100 mots couramment utilisés au passé composé dans l'écriture de CV :
| | | | | |
| ---------- | ------------- | ------------ | ------------ | ------------ |
| Accéléré | Accompli | Comptabilisé | Accumulé | Atteint |
| Administré | Arbitré | Articulé | Stimulé | Briefé |
| Élargi | Budgétisé | Campagné | Présidé | Championné |
| Clarifié | Coaché | Collaboré | Coordonné | Corroboré |
| Cultivé | Personnalisé | Décidé | Diminué | Délégué |
| Démontré | Désigné | Développé | Conçu | Diagnostiqué |
| Documenté | Doublé | Économisé | Édité | Éduqué |
| Autonomisé | Permis | Encouragé | Approuvé | Amélioré |
| Facilité | Concentré | Prévu | Généré | Harmonisé |
| Exploité | Identifié | Illustré | Impressionné | Amélioré |
| Augmenté | Justifié | Lancé | Dirigé | Magnifié |
| Géré | Commercialisé | Maîtrisé | Navigué | Négocié |
| Observé | Obtenu | Organisé | Orchestré | Participé |
| Ciblé | Performé | Publicisé | Publié | Réaligné |
| Reconnu | Recommandé | Sélectionné | Séparé | Dirigé |
| Stimulé | Réussi | Dépassé | Synchronisé | Synergisé |
| Tabularisé | Visé | Testé | Échangé | Traduit |
| Déclenché | Triomphé | Dépanné | Découvert | Souscrit |
| Exhumé | Unifié | Amélioré | Pressé | Utilisé |
| Validé | Verbalisé | Vérifié | Vitalisé | Produit |
# Guide
URL: (/fr/docs/guide)
## Un Guide pour l'Écriture et la Composition de CV
Un CV donne aux gens une première impression de votre carrière.
Sur une feuille de papier A4 (210 mm \* 297 mm), un CV termine l'étape précédente de
votre vie et commence la suivante.
> Une tour de neuf étages naît d'un tas de terre.
>
> — [Laozi](https://en.wikipedia.org/wiki/Laozi), Chapitre 64
Un CV joliment imprimé est basé sur des détails tels que la police, la ponctuation, la mise en page
et la grammaire.
Ce guide explique systématiquement les essentiels de l'écriture et de la composition de CV
avec un accent particulier sur la typographie, vous aidant à faire un CV
beau en forme et en esprit. Pour chaque sujet, il explique d'abord CE QUE c'est, puis
POURQUOI c'est ainsi, et enfin COMMENT le faire.
Le guide essaie d'être aussi concis et clair que possible, il y a quatre niveaux de priorité
pour les différentes explications :
* **OBLIGATOIRE**, obligatoire en composition, erreur grave si violé
* **RECOMMANDÉ**, conforme aux standards généraux de composition, fortement recommandé
* **NE DEVRAIT PAS**, nécessite des connaissances ou fonctionnalités avancées en composition, ou divers
dans différentes langues et cultures, ou varie selon les réglementations des entreprises,
dangereux à utiliser si pas informé
* **NE DOIT PAS**, en conflit avec les standards généraux de composition, interdit d'appliquer
# Publication
URL: (/fr/docs/guide/publishing)
## Format de fichier
Les formats de fichier communs pour les CV incluent :
* PDF
* Microsoft Word (doc, docx)
* Texte brut
* HTML
Ici nous recommandons le PDF le plus :
* Le PDF a une excellente qualité de sortie multiplateforme, assurant près de 100%
de cohérence d'impression et d'affichage
* Le PDF peut être intégré avec des polices, permettant une grande liberté dans la sélection de polices
* lecteur PDF par défaut disponible sur la plupart des plateformes
* Windows 8 et plus ont un lecteur PDF intégré
* macOS a
[Preview](https://en.wikipedia.org/wiki/Preview_\(Mac_OS\)), iOS
a [iBooks](http://www.apple.com/ibooks/)
* de nombreux navigateurs (comme Chrome) ont intégré
[pdf.js](http://mozilla.github.io/pdf.js/), qui peut aussi ouvrir PDF par défaut
Il est plus facile d'apprendre MS Word, mais livrer un CV avec le format Word a de grands
désavantages :
* Les documents Word doivent être ouverts avec un logiciel de bureau supplémentaire
installé
* Microsoft Word, [WPS Office](https://wps.com) pour Windows
* [iWork](https://en.wikipedia.org/wiki/IWork) pour macOS
* [WPS Office](https://wps.com), [LibreOffice](https://www.libreoffice.org/)
pour Linux
* de nombreux systèmes d'édition de documents en ligne comme [Google
Docs](https://docs.google.com/) peuvent aussi ouvrir et éditer les documents Word
* Les documents Word peuvent s'afficher très différemment dans différents logiciels sur
différentes plateformes
* en réalité pas tout le monde a installé [Microsoft
Word](https://products.office.com/en-us/word) sur son ordinateur
* un autre fait est qu'une licence authentique pour Microsoft Word peut coûter des centaines
de dollars
* afin d'essayer d'assurer un affichage et une sortie cohérents, les documents Word sont
mieux utilisés avec seulement quelques polices qui sont communes aux principaux systèmes d'exploitation,
ce qui résulte en documents Word avec très peu de liberté dans la sélection de polices.
Bien sûr, différents gestionnaires RH dans diverses entreprises peuvent avoir différentes
exigences et préférences. Nous recommandons que vous exportiez le CV en PDF comme
alternative si vous le faites par Word
## Étiquette e-mail
En plus du système de recrutement propriétaire de l'entreprise, la méthode principale de
soumission de CV pour les candidatures d'emploi devrait être l'e-mail. Quelques étiquettes e-mail
de base sont les suivantes.
* définir le bon surnom e-mail, ne pas utiliser de surnoms informels trop fantaisistes, cela
donnera à l'employeur une impression d'être très peu professionnel
* utiliser un format uniforme dans l'en-tête de l'e-mail, le garder clair et concis pour transmettre
les informations les plus importantes
* format recommandé : `Candidature-Entreprise Poste-Nom-[Université/Éducation]-[Expérience de Travail]`
* le corps de l'e-mail devrait être concis, il n'est pas recommandé d'écrire une longue
lettre de motivation avec beaucoup d'évaluation subjective personnelle
* mieux ajouter le titre et une salutation au début du texte
* contenu dans le corps
* informations personnelles de base, comme le statut de travail (en service ou pas),
position, parcours éducatifs et expériences de travail, etc.
* position appliquée
* approche de candidature, si recommandé par d'autres
* ajouter une inscription contenant le nom et les informations de contact (téléphone/e-mail)
* attacher le fichier de CV nommé avec le même format de l'en-tête
# Ponctuation
URL: (/fr/docs/guide/punctuations)
La ponctuation est la partie la plus discrète mais aussi la plus sujette aux erreurs dans l'écriture de
CV. Que vous puissiez ou non utiliser la ponctuation correctement et de manière standardisée
reflète l'attitude du chercheur d'emploi à postuler pour le travail.
L'utilisation correcte et standardisée de la ponctuation peut sembler facile, mais ce n'est pas aussi
simple qu'il y paraît. La raison principale est que différents environnements linguistiques
n'ont soit pas de spécification claire pour l'utilisation de la ponctuation, soit ont une
spécification mais de nombreux endroits ne sont pas clairement définis, soit il y a plusieurs ensembles
de [guides de style](https://en.wikipedia.org/wiki/Style_guide) mais ils sont
incompatibles ou même en conflit les uns avec les autres ; et deuxièmement, la composition
réelle rencontre souvent la situation de mélange multi-langue, et alors
le problème devient encore plus compliqué. Ce guide essaie de résumer
quelques règles générales pour l'utilisation de la ponctuation pour votre référence.
* OBLIGATOIRE, ajouter un espace après les virgules, points, points-virgules, deux-points, points d'exclamation
et points d'interrogation
* OBLIGATOIRE, ajouter un espace avant une parenthèse ouvrante et après une parenthèse fermante, même
qu'un mot, mais pas d'espace après une parenthèse fermante suivie d'une virgule
* RECOMMANDÉ, ajouter un espace entre un nombre et son unité
* RECOMMANDÉ, ne pas ajouter d'espaces autour d'un trait d'union, parfois nécessaire pour ajuster finement
l'espacement des lettres
* RECOMMANDÉ, ne pas ajouter d'espaces autour d'une barre oblique qui localise deux choses parallèles
comme "A ou B"
* RECOMMANDÉ, utiliser des guillemets (`'`、`'`、`"`、`"`), au lieu d'
[apostrophes](https://en.wikipedia.org/wiki/Apostrophe)
* NE DEVRAIT PAS, ajouter une marque de ponctuation à la fin des éléments dans une [liste à
puces](https://en.wikipedia.org/wiki/Bullet_\(typography\))
* NE DOIT PAS, suspendre une marque de ponctuation au début d'une ligne, ce qui peut être
évité par les paramètres automatiques du logiciel ou l'ajustement manuel
## Marque de connexion
Le trait d'union (-), le tiret (–), et le tiret cadratin (—) sont trois marques de ponctuation qui peuvent être
facilement confondues et conduire à des erreurs. L'utilisation d'entre elles est décrite ci-dessous.
> pour un trait d'union, tapez un trait d'union (-) ;
>
> pour un tiret, tapez deux traits d'union (--) ;
>
> pour un tiret cadratin, tapez trois traits d'union (---) ;
>
> pour un signe moins, tapez un trait d'union en mode mathématique ($-$).
>
> — Donald Knuth, [The TeXBook](https://en.wikipedia.org/wiki/Computers_and_Typesetting)
### Trait d'union (-)
Le trait d'union est utilisé principalement pour :
* les mots composés comme "lettre majuscule"
* séparer les nombres ou caractères, comme les numéros de téléphone, "1-888-777-666"
* couper le mot à la fin d'une ligne pour garder toute la mise en page soignée
Il y a quelques règles sur la césure à la fin d'une ligne :
* essayer de ne pas couper le dernier mot dans plus de trois lignes continues
* éviter de diviser les noms propres, noms personnels, etc.
* éviter la césure inter-pages
* segmenter les mots selon les syllabes en principe, cependant la position pour
couper varie avec les mots, donc il vaut mieux vérifier les dictionnaires si
nécessaire[^7]
### Tiret (–)
La longueur d'un tiret égale la largeur du "N" majuscule, et est la moitié de la
longueur d'un tiret cadratin. Il est principalement utilisé pour :
* indiquer une plage de nombres, date temps, etc. comme les dates dans une année, "Juillet–Août 1968"
* indiquer les points de départ et d'arrivée du chemin de navigation, comme
"route Boston–Hartford"
Quand on utilise un tiret, il n'est généralement pas nécessaire d'ajouter des espaces autour.
### Tiret cadratin (—)
La longueur d'un tiret cadratin égale la largeur du "M" majuscule, et son utilisation est la
plus flexible et complexe. Il est généralement utilisé pour :
* expliquer quelque chose en détail, équivalent aux parenthèses ou deux-points
* segmenter les clauses déclaratives
* indiquer que la conversation est interrompue, dans ce cas une
ellipse peut aussi être utilisée
En plus, il y a des situations où deux ou trois tirets cadratins sont joints
ensemble, mais je n'entrerai pas dans les détails ici[^8].
***
[^7]: Les logiciels de composition professionnels ont généralement une fonction de
césure automatique, dans une certaine mesure ils peuvent localiser la position pour
la césure si activée, mais il vaut mieux vérifier artificiellement
à nouveau.
[^8]: [Wikipedia/Dash](https://en.wikipedia.org/wiki/Dash) démontre l'utilisation détaillée
de ce symbole et les méthodes de saisie de celui-ci sur différents systèmes d'exploitation.
# Composition
URL: (/fr/docs/guide/typesetting)
La composition est "l'architecture en deux dimensions."
Si le texte et ses polices sont les matériaux du bâtiment, alors la composition est
les plans du bâtiment. Avant de discuter de la composition, nous devons clarifier
quelques concepts de base, surtout le système d'unités dimensionnelles couramment utilisé en
composition.
## Taille de police
La taille de police est la mesure standard pour la taille des caractères. L'unité
universelle internationale de taille de police est le point.
Le [point](https://en.wikipedia.org/wiki/Point_\(typography\)) est généralement
abrévié en pt, c'est la plus petite unité de mesure en composition. En fait,
la taille du point a varié tout au long de l'histoire de l'impression. Depuis le
18ème siècle, la taille du point a varié de 0,18 à 0,4 mm. Suite à
l'avènement de [l'édition de bureau](https://en.wikipedia.org/wiki/Desktop_publishing)
dans les années 1980 et 1990, [l'impression
numérique](https://en.wikipedia.org/wiki/Digital_printing) a largement supplanté
[l'impression typographique](https://en.wikipedia.org/wiki/Printing_press) et
graduellement établi le point DTP comme standard de facto.
Le point DTP est défini comme 1/72 d'un
[pouce](https://en.wikipedia.org/wiki/Inch).
La plupart des polices donneront les meilleurs effets quand réglées à 10-12 pt. En d'autres termes, à la fois
les traits et la structure des caractères eux-mêmes et l'espacement entre
les lettres présenteront des effets visuels relativement bons dans une telle taille. Plus la
taille de police est grande, plus le texte apparaît lâche, donc vous devez manuellement diminuer l'espacement
des lettres ; d'autre part, plus la taille de police est petite, plus le texte apparaît
compact, donc vous devez manuellement augmenter l'espacement des lettres.
| pt | mm | cm | pica | pouce |
| -- | ------ | ------- | ---- | ----- |
| 1 | 0.3528 | 0.03528 | 1/12 | 1/72 |
## Interlignage
L'interlignage ou espacement des lignes fait référence à la distance entre les lignes de base de deux
lignes consécutives.
L'interlignage idéal est au moins 120% de la taille de police du texte, généralement 1,2-1,5
fois sont recommandés. Différentes polices ont différentes hauteurs x, en principe,
plus la hauteur x de la police appliquée est grande, plus l'interlignage devrait être grand,
inversement, plus la hauteur x est petite, plus l'interlignage est petit.
## Mise en page
La mise en page est le contour de la composition, c'est comme la corde principale d'un filet de pêche,
une fois que la corde principale est levée, tous les mailles s'étalent naturellement. En plus des
règles générales de composition pour la taille de police et l'interlignage, il y a quelques exigences
uniques dans la conception de mise en page de CV. En principe, il vaut mieux contrôler le
CV sur une page.
* Rendre la langue claire et concise
* Ajuster la taille de police et l'interlignage dans une plage raisonnable
* Garder les marges de page à 10-25 mm et rendre les marges gauche et droite
symétriques
* Utiliser des listes plutôt que des phrases parallèles pour lister les informations
* Utiliser l'alignement à gauche, en prenant soin d'utiliser l'alignement justifié car
l'alignement justifié peut causer des problèmes dans la césure et l'espacement des lettres
car les longueurs des mots sont différentes
# Mise en Page
URL: (/fr/docs/layouts)
Le cœur d'un CV est le contenu, mais la mise en page est aussi importante. Beaucoup de
générateurs de CV basés sur JSON/YAML se concentrent seulement sur le contenu, laissant la
mise en page intacte, ce qui laisse un gros problème pour l'utilisateur.
Contrairement aux autres générateurs de CV, YAMLResume fournit une solution de mise en page
opiniâtre prête à l'emploi, qui permet aux utilisateurs de se concentrer sur le contenu du
CV tout en générant des CV d'apparence professionnelle avec une mise en page et une
composition parfaites au pixel près.
À partir de la version v0.8.0, YAMLResume prend en charge plusieurs mises en page et plusieurs moteurs de sortie (LaTeX et Markdown) via le tableau `layouts`.
Voici un exemple de configuration de mise en page dans un fichier `resume.yml` :
```yml lineNumbers title="resume.yml"
---
content:
# ...
locale:
language: en
layouts:
- engine: latex
template: moderncv-banking
page:
showPageNumbers: true
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
typography:
fontSize: 11pt
- engine: markdown
```
## Moteurs
YAMLResume prend actuellement en charge deux moteurs :
* [LaTeX](./layouts/latex) : Génère des CV PDF de haute qualité.
* [Markdown](./layouts/markdown) : Génère des CV Markdown simples.
## En Savoir Plus
# Chinois
URL: (/fr/docs/locale/chinese)
La [langue chinoise](https://en.wikipedia.org/wiki/Chinese_language) appartient
à la [famille linguistique sino-tibétaine](https://en.wikipedia.org/wiki/Sino-Tibetan_language_family), qui est
très différente des langues à script latin. Environ 1,4 milliard
de personnes, soit 17% de la population mondiale, parlent une variété de chinois comme leur
langue maternelle.
## Linguistique
### Jeu de Caractères
Les [caractères chinois](https://en.wikipedia.org/wiki/Chinese_characters) et
les [caractères latins](https://en.wikipedia.org/wiki/Western_Latin_character_sets_\(computing\))
représentent deux approches fondamentalement différentes de la langue écrite.
Les caractères latins ont un jeu de caractères limité, où relativement peu
de caractères sont nécessaires pour représenter un large vocabulaire, chaque caractère représente
un son spécifique ou [phonème](https://en.wikipedia.org/wiki/Phoneme), et les mots
sont formés en combinant ces caractères dans des séquences spécifiques. Le chinois, d'autre part, a des dizaines de milliers de caractères pour exprimer la gamme complète
de la langue chinoise, chaque caractère représente un
[morphème](https://en.wikipedia.org/wiki/Morpheme) ou un mot, transmettant souvent
le sens directement, et les mots sont formés en combinant des caractères individuels, chacun
avec sa propre signification et prononciation.
Cette différence fondamentale dans les systèmes d'écriture a des implications significatives pour
l'apprentissage des langues, le traitement de texte et l'échange culturel. Tandis que les
caractères latins sont relativement faciles à apprendre et utiliser, les caractères chinois
nécessitent une mémorisation et une pratique importantes.
### Variantes
Bien qu'il existe de nombreuses variations régionales de la langue chinoise, les deux
formes écrites principales sont le chinois simplifié et le chinois traditionnel.
Voici un aperçu :
**Chinois simplifié**
* Principalement utilisé en Chine continentale et à Singapour.
* Développé au milieu du 20e siècle pour augmenter les taux d'alphabétisation.
* Utilise des [caractères
simplifiés](https://en.wikipedia.org/wiki/Simplified_Chinese_characters), souvent
avec moins de traits que les caractères traditionnels.
**Chinois traditionnel**
* Principalement utilisé à Hong Kong, Macao, Taïwan et dans de nombreuses communautés chinoises d'outre-mer.
* La forme plus ancienne du chinois écrit.
* Utilise des [caractères
traditionnels](https://en.wikipedia.org/wiki/Traditional_Chinese_characters), avec
plus de traits complexes.
Il est important de noter que le chinois simplifié et traditionnel peuvent tous deux être utilisés
pour écrire divers dialectes chinois, tels que le
[mandarin](https://en.wikipedia.org/wiki/Mandarin_Chinese),
le [cantonais](https://en.wikipedia.org/wiki/Cantonese), et
le [hokkien](https://en.wikipedia.org/wiki/Hokkien).
Pendant ce temps, le chinois traditionnel a au moins deux variantes, à savoir, la variante de Hong Kong
[zh-HK](https://simplelocalize.io/data/locale-code/zh-HK/) et la
variante de Taïwan [zh-TW](https://simplelocalize.io/data/locale-code/zh-TW/). La plupart
des scripts en zh-HK et zh-TW sont identiques, avec seulement quelques différences mineures.
Par exemple, le mot "software", lorsqu'il est traduit en zh-HK, c'est "軟件", tandis qu'en
zh-TW, c'est "軟體". Il y a environ des dizaines de mots en anglais qui sont traduits
différemment en zh-HK et zh-TW, détails
[ici](https://zh.wikipedia.org/wiki/%E7%B9%81%E4%BD%93%E5%AD%97#%E7%94%A8%E8%AA%9E%E5%B7%AE%E7%95%B0).
En général, YAMLResume ne peut pas faire grand-chose pour la différence entre zh-HK et
zh-TW, car les utilisateurs doivent décider quelle variante utiliser lors de la rédaction de CV et
s'assurer que le contenu se conforme aux idiomes et conventions de zh-HK ou
zh-TW. Cependant, il y a une chose que YAMLResume doit gérer correctement pour
zh-HK et zh-TW, car certains pays et régions ont des noms différents en zh-HK et
zh-TW. [L'Arabie Saoudite](https://en.wikipedia.org/wiki/Saudi_Arabia), par exemple,
est traduite par "沙特阿拉伯" en zh-HK et "沙烏地阿拉伯" en zh-TW. Il y a aussi quelques
autres pays. YAMLResume [prend soin](#location-countries-and-regions) de tous les
pays et régions qui ont des traductions différentes en zh-HK et zh-TW.
## Expressions Idiomatiques
### Date
Les dates sont présentées différemment en anglais et en chinois, par exemple "Jun 2018 –
Present" en anglais devrait être traduit par "2018 年 6 月至今" en chinois, la
position de l'année et du mois devrait être inversée, et le tiret cadratin "–" devrait être
remplacé par "至".
Pendant ce temps, les Chinois n'utilisent pas de mots dédiés pour les mois, à la place, ils utilisent une
combinaison d'un chiffre arabe et d'un caractère "月", ce qui en fait un simple
jeu de comptage.
| English | Chinese |
| --------------- | ------- |
| January (Jan) | 1 月 |
| February (Feb) | 2 月 |
| March (Mar) | 3 月 |
| April (Apr) | 4 月 |
| May (May) | 5 月 |
| June (Jun) | 6 月 |
| July (Jul) | 7 月 |
| August (Aug) | 8 月 |
| September (Sep) | 9 月 |
| October (Oct) | 10 月 |
| November (Nov) | 11 月 |
| December (Dec) | 12 月 |
### Localisation
Les formats d'adresse diffèrent entre les conventions
[anglaises](/locale/english#location) et chinoises.
Contrairement à l'anglais, lors de la présentation d'une localisation avec adresse, ville et pays, la
partie générale (pays, état, etc.) vient généralement en premier en chinois, tandis que la
partie la plus spécifique (ville, adresse, etc.) vient en dernier.
## Composition Typographique
### Police
Tout comme les langues à script latin, le chinois a sa police serif
[Song](/docs/guide/font#song) et sa police sans-serif [Bold](/docs/guide/font#bold). De plus,
il a aussi deux styles de police supplémentaires, [Regular](/docs/guide/font#regular) et
[Fangsong](/docs/guide/font#fangsong). Vous pouvez consulter [Guide -> Police -> Police CJK](/docs/guide/font#cjk-font) pour plus de détails.
YAMLResume utilise Song comme police principale pour les CV chinois.
### Ponctuation
La ponctuation chinoise, comme la langue elle-même, a ses propres
caractéristiques uniques. Une distinction importante à noter est la différence entre
les ponctuations [demi-largeur et
pleine largeur](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms).
La différence principale entre les ponctuations demi-largeur et pleine largeur en chinois
réside dans leur largeur visuelle et leur usage prévu.
**Ponctuations demi-largeur**
* **Plus étroites** : ces ponctuations sont typiquement utilisées en conjonction avec les
caractères latins ou les chiffres, comme dans les URLs, adresses email, ou extraits de code.
* **Moins communes** : elles sont moins couramment utilisées dans le texte chinois standard, souvent
utilisées dans une petite portion de phrases ou paragraphes de langue à script latin.
**Ponctuations pleine largeur**
* **Plus larges** : ces ponctuations sont conçues pour correspondre à la largeur des
caractères chinois, assurant une apparence visuellement équilibrée et cohérente dans le
texte chinois.
* **Plus communes** : elles sont les marques de ponctuation standard utilisées dans le texte chinois.
Utiliser le bon type de ponctuation est crucial pour un formatage et une
lisibilité appropriés dans le texte chinois. Des ponctuations mal assorties peuvent conduire à des
incohérences visuelles et à une confusion potentielle.
En comprenant la différence entre les ponctuations demi-largeur et pleine largeur,
vous pouvez vous assurer que votre texte chinois est correctement formaté et visuellement
attrayant. Voici un tableau des ponctuations dans les deux formes demi-largeur et pleine largeur,
utilisées respectivement dans les langues à script latin et chinois.
| | English | Simplified Chinese |
| ---------------------- | ------- | ------------------ |
| Full Stop/Period (句号) | . | 。 |
| Question Mark (问号) | ? | ? |
| Exclamation Mark (感叹号) | ! | ! |
| Comma (逗点) | , | , |
| Colon (冒号) | : | : |
| Semicolon (分号) | ; | ; |
| Parenthesis (小括号) | () | () |
| Bracket (中括号) | \[] | [] |
| Brace (花括号) | \{} | {} |
Pour les CV, c'est le devoir de l'auteur d'utiliser les bonnes ponctuations lors de la composition
du contenu, mais YAMLResume peut garantir que nos modèles de CV utiliseront toujours
les bonnes ponctuations. Nous avons deux cas maintenant :
#### Virgule
L'anglais utilise la virgule `,` comme séparateur pour séparer les parties d'une phrase et
les éléments d'une liste, tandis que le chinois utilise une virgule chinoise `,` pour séparer les phrases,
et une virgule d'énumération dédiée
([顿号](https://en.wikipedia.org/wiki/Comma#East_Asia), `、`) pour séparer les éléments dans
une liste (par exemple liste de mots-clés).
#### Deux-points
L'anglais et le chinois ont aussi des
[deux-points différents](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms).
Le [deux-points anglais](https://www.compart.com/en/unicode/U+003A) est `:`, avec
Unicode `U+003A`, tandis que le [deux-points
chinois](https://www.compart.com/en/unicode/U+FF1A) est `:`, avec Unicode `U+FF1A`.
Comme vous pouvez toujours faire confiance, YAMLResume s'occupe aussi de cela. Nous utilisons les bons
deux-points pour divers termes fixes comme "Keywords:" ("关键字:" en chinois
simplifié, "關鍵字:" en chinois traditionnel) et "Courses:" ( `课程:` en
chinois simplifié, `課程:` en chinois traditionnel) dans notre modèle de CV.
### Nombres Ancien Style
Par défaut, **YAMLResume n'utilise pas les [nombres ancien
style](/docs/guide/font#old-style-numbers) pour les CV chinois**. Pourquoi ? Parce que
les caractères chinois ont tous la même hauteur et largeur (c'est pourquoi les
caractères chinois sont aussi appelés "方块字", ce qui signifie caractères carrés), fondamentalement tous
les caractères chinois sont titrés et à chasse fixe par nature. En adoptant les nombres dans
le style lining, le style de nombre s'adapte plus étroitement aux
caractères chinois.
### Italiques
Par défaut, **YAMLResume n'utilise pas les italiques dans les CV chinois** car les italiques
en chinois sont considérées comme une [mauvaise
pratique](https://drwhispers.com/2021/11/16/italics-in-chinese/), pourquoi ?
Dans les langues à script latin, les italiques sont généralement distinguées des serifs de corps
et sont utilisées pour mettre l'accent ou différencier des parties du texte, cependant,
mettre en italique les caractères chinois peut perturber le flux naturel et la lisibilité du
texte.
Contrairement aux caractères latins, les caractères chinois sont des caractères carrés qui ne sont pas
traditionnellement écrits en italique, et de nombreuses polices chinoises n'ont pas de glyphes
italiques spécifiques pour chaque caractère. Lors de la mise en italique du texte chinois, les logiciels
inclinent souvent simplement les caractères, ce qui peut résulter en une apparence visuellement désagréable et
non professionnelle.
## Traductions
YAMLResume adopte les traductions suivantes pour diverses options et termes utilisés
dans les CV chinois.
### Diplômes d'Éducation
| English | Chinese (Simplified) | Chinese (Traditional, Hong Kong) | Chinese (Traditional, Taiwan) |
| ------------- | -------------------- | -------------------------------- | ----------------------------- |
| Middle School | 初中 | 初中 | 初中 |
| High School | 高中 | 高中 | 高中 |
| Diploma | 专科 | 專科 | 專科 |
| Associate | 副学士 | 副學士 | 副學士 |
| Bachelor | 学士 | 學士 | 學士 |
| Master | 硕士 | 碩士 | 碩士 |
| Doctor | 博士 | 博士 | 博士 |
### Langues
| English | Chinese (Simplified) | Chinese (Traditional, Hong Kong) | Chinese (Traditional, Taiwan) |
| ----------- | -------------------- | -------------------------------- | ----------------------------- |
| Afrikaans | 南非荷兰语 | 南非荷蘭語 | 南非荷蘭語 |
| Albanian | 阿尔巴尼亚语 | 阿爾巴尼亞語 | 阿爾巴尼亞語 |
| Amharic | 阿姆哈拉语 | 阿姆哈拉語 | 阿姆哈拉語 |
| Arabic | 阿拉伯语 | 阿拉伯語 | 阿拉伯語 |
| Azerbaijani | 阿塞拜疆语 | 阿塞拜疆語 | 亞塞拜然語 |
| Belarusian | 白俄罗斯语 | 白俄羅斯語 | 白俄羅斯語 |
| Bengali | 孟加拉语 | 孟加拉語 | 孟加拉語 |
| Bhojpuri | 博杰普尔语 | 博傑普爾語 | 博傑普爾語 |
| Bulgarian | 保加利亚语 | 保加利亞語 | 保加利亞語 |
| Burmese | 缅甸语 | 緬甸語 | 緬甸語 |
| Cantonese | 粤语 | 粵語 | 粵語 |
| Catalan | 加泰罗尼亚语 | 加泰羅尼亞語 | 加泰隆尼亞語 |
| Chinese | 中文 | 中文 | 中文 |
| Croatian | 克罗地亚语 | 克羅地亞語 | 克羅埃西亞語 |
| Czech | 捷克语 | 捷克語 | 捷克語 |
| Danish | 丹麦语 | 丹麥語 | 丹麥語 |
| Dutch | 荷兰语 | 荷蘭語 | 荷蘭語 |
| English | 英语 | 英語 | 英語 |
| Estonian | 爱沙尼亚语 | 愛沙尼亞語 | 愛沙尼亞語 |
| Farsi | 波斯语 | 波斯語 | 波斯語 |
| Filipino | 菲律宾语 | 菲律賓語 | 菲律賓語 |
| Finnish | 芬兰语 | 芬蘭語 | 芬蘭語 |
| French | 法语 | 法語 | 法語 |
| German | 德语 | 德語 | 德語 |
| Greek | 希腊语 | 希臘語 | 希臘語 |
| Gujarati | 古吉拉特语 | 古吉拉特語 | 古吉拉特語 |
| Hausa | 豪萨语 | 豪薩語 | 豪薩語 |
| Hebrew | 希伯来语 | 希伯來語 | 希伯來語 |
| Hindi | 印地语 | 印地語 | 印地語 |
| Hungarian | 匈牙利语 | 匈牙利語 | 匈牙利語 |
| Icelandic | 冰岛语 | 冰島語 | 冰島語 |
| Igbo | 伊博语 | 伊博語 | 伊博語 |
| Indonesian | 印度尼西亚语 | 印度尼西亞語 | 印度尼西亞語 |
| Irish | 爱尔兰语 | 愛爾蘭語 | 愛爾蘭語 |
| Italian | 意大利语 | 意大利語 | 意大利語 |
| Japanese | 日语 | 日語 | 日語 |
| Javanese | 爪哇语 | 爪哇語 | 爪哇語 |
| Kazakh | 哈萨克语 | 哈薩克語 | 哈薩克語 |
| Khmer | 高棉语 | 高棉語 | 高棉語 |
| Korean | 韩语 | 韓語 | 韓語 |
| Lahnda | 拉亨达语 | 拉亨達語 | 拉亨達語 |
| Latvian | 拉脱维亚语 | 拉脫維亞語 | 拉脫維亞語 |
| Lithuanian | 立陶宛语 | 立陶宛語 | 立陶宛語 |
| Malay | 马来语 | 馬來語 | 馬來語 |
| Mandarin | 普通话 | 普通話 | 普通話 |
| Marathi | 马拉地语 | 馬拉地語 | 馬拉地語 |
| Nepali | 尼泊尔语 | 尼泊爾語 | 尼泊爾語 |
| Norwegian | 挪威语 | 挪威語 | 挪威語 |
| Oromo | 奥罗莫语 | 奧羅莫語 | 奧羅莫語 |
| Pashto | 普什图语 | 普什圖語 | 普什圖語 |
| Polish | 波兰语 | 波蘭語 | 波蘭語 |
| Portuguese | 葡萄牙语 | 葡萄牙語 | 葡萄牙語 |
| Romanian | 罗马尼亚语 | 羅馬尼亞語 | 羅馬尼亞語 |
| Russian | 俄语 | 俄語 | 俄語 |
| Serbian | 塞尔维亚语 | 塞爾維亞語 | 塞爾維亞語 |
| Shona | 绍纳语 | 紹納語 | 紹納語 |
| Sinhala | 僧伽罗语 | 僧伽羅語 | 僧伽羅語 |
| Slovak | 斯洛伐克语 | 斯洛伐克語 | 斯洛伐克語 |
| Slovene | 斯洛文尼亚语 | 斯洛文尼亞語 | 斯洛文尼亞語 |
| Somali | 索马里语 | 索馬里語 | 索馬里語 |
| Spanish | 西班牙语 | 西班牙語 | 西班牙語 |
| Sundanese | 巽他语 | 巽他語 | 巽他語 |
| Swahili | 斯瓦希里语 | 斯瓦希里語 | 斯瓦希里語 |
| Swedish | 瑞典语 | 瑞典語 | 瑞典語 |
| Tagalog | 他加禄语 | 他加祿語 | 他加祿語 |
| Tamil | 泰米尔语 | 泰米爾語 | 泰米爾語 |
| Telugu | 泰卢固语 | 泰盧固語 | 泰盧固語 |
| Thai | 泰语 | 泰語 | 泰語 |
| Turkish | 土耳其语 | 土耳其語 | 土耳其語 |
| Ukrainian | 乌克兰语 | 烏克蘭語 | 烏克蘭語 |
| Urdu | 乌尔都语 | 烏爾都語 | 烏爾都語 |
| Uzbek | 乌兹别克语 | 烏茲別克語 | 烏茲別克語 |
| Vietnamese | 越南语 | 越南語 | 越南語 |
| Yoruba | 约鲁巴语 | 約魯巴語 | 約魯巴語 |
| Zulu | 祖鲁语 | 祖魯語 | 祖魯語 |
### Niveaux de Maîtrise des Langues
| English | Chinese (Simplified) | Chinese (Traditional, Hong Kong) | Chinese (Traditional, Taiwan) |
| -------------------------------- | -------------------- | -------------------------------- | ----------------------------- |
| Elementary Proficiency | 初级水平 | 初級水平 | 初級水平 |
| Limited Working Proficiency | 有限工作水平 | 有限工作水平 | 有限工作水平 |
| Minimum Professional Proficiency | 最低专业水平 | 最低專業水平 | 最低專業水平 |
| Full Professional Proficiency | 完全专业水平 | 完全專業水平 | 完全專業水平 |
| Native or Bilingual Proficiency | 母语或双语水平 | 母語或雙語水平 | 母語或雙語水平 |
### Localisation (Pays et Régions)
| English | Chinese (Simplified) | Chinese (Traditional, Hong Kong) | Chinese (Traditional, Taiwan) |
| ------------------------------------ | -------------------- | -------------------------------- | ----------------------------- |
| Afghanistan | 阿富汗 | 阿富汗 | 阿富汗 |
| Aland Islands | 奥兰群岛 | 奧蘭羣島 | 奧蘭群島 |
| Albania | 阿尔巴尼亚 | 阿爾巴尼亞 | 阿爾巴尼亞 |
| Algeria | 阿尔及利亚 | 阿爾及利亞 | 阿爾及利亞 |
| American Samoa | 美属萨摩亚 | 美屬薩摩亞 | 美屬薩摩亞 |
| Andorra | 安道尔 | 安道爾 | 安道爾 |
| Angola | 安哥拉 | 安哥拉 | 安哥拉 |
| Anguilla | 安圭拉 | 安圭拉 | 安圭拉 |
| Antarctica | 南极洲 | 南極洲 | 南極洲 |
| Antigua And Barbuda | 安提瓜和巴布达 | 安提瓜和巴布達 | 安地卡及巴布達 |
| Argentina | 阿根廷 | 阿根廷 | 阿根廷 |
| Armenia | 亚美尼亚 | 亞美尼亞 | 亞美尼亞 |
| Aruba | 阿鲁巴 | 阿魯巴 | 阿魯巴 |
| Australia | 澳大利亚 | 澳大利亞 | 澳大利亞 |
| Austria | 奥地利 | 奧地利 | 奧地利 |
| Azerbaijan | 阿塞拜疆 | 阿塞拜疆 | 亞塞拜然 |
| Bahrain | 巴林 | 巴林 | 巴林 |
| Bangladesh | 孟加拉 | 孟加拉 | 孟加拉 |
| Barbados | 巴巴多斯 | 巴巴多斯 | 巴貝多 |
| Belarus | 白俄罗斯 | 白俄羅斯 | 白俄羅斯 |
| Belgium | 比利时 | 比利時 | 比利時 |
| Belize | 伯利兹 | 伯利茲 | 貝里斯 |
| Benin | 贝宁 | 貝寧 | 貝南 |
| Bermuda | 百慕大 | 百慕大 | 百慕大 |
| Bhutan | 不丹 | 不丹 | 不丹 |
| Bolivia | 玻利维亚 | 玻利維亞 | 玻利維亞 |
| Bonaire, Sint Eustatius and Saba | 博内尔岛、圣尤斯特歇斯和萨巴岛 | 博內爾島、聖尤斯特歇斯和薩巴島 | 博內爾島、聖尤斯特歇斯和薩巴島 |
| Bosnia and Herzegovina | 波斯尼亚和黑塞哥维那 | 波斯尼亞和黑塞哥維那 | 波斯尼亞和黑塞哥維那 |
| Botswana | 博茨瓦纳 | 博茨瓦納 | 波札那 |
| Bouvet Island | 布维岛 | 布維島 | 布維島 |
| Brazil | 巴西 | 巴西 | 巴西 |
| British Indian Ocean Territory | 英属印度洋领地 | 英屬印度洋領地 | 英屬印度洋領地 |
| Brunei | 文莱 | 文萊 | 汶萊 |
| Bulgaria | 保加利亚 | 保加利亞 | 保加利亞 |
| Burkina Faso | 布基纳法索 | 布基納法索 | 布吉納法索 |
| Burundi | 布隆迪 | 布隆迪 | 蒲隆地 |
| Cambodia | 柬埔寨 | 柬埔寨 | 柬埔寨 |
| Cameroon | 喀麦隆 | 喀麥隆 | 喀麥隆 |
| Canada | 加拿大 | 加拿大 | 加拿大 |
| Cape Verde | 佛得角 | 佛得角 | 維德角 |
| Cayman Islands | 开曼群岛 | 開曼羣島 | 開曼群島 |
| Central African Republic | 中非 | 中非 | 中非 |
| Chad | 乍得 | 乍得 | 查德 |
| Chile | 智利 | 智利 | 智利 |
| China | 中国 | 中國 | 中國 |
| Christmas Island | 圣诞岛 | 聖誕島 | 聖誕島 |
| Cocos (Keeling) Islands | 科科斯(基林)群岛 | 科科斯(基林)羣島 | 科科斯(基林)群島 |
| Colombia | 哥伦比亚 | 哥倫比亞 | 哥倫比亞 |
| Comoros | 科摩罗 | 科摩羅 | 葛摩 |
| Congo | 刚果 | 剛果 | 剛果 |
| Cook Islands | 库克群岛 | 庫克羣島 | 庫克群島 |
| Costa Rica | 哥斯达黎加 | 哥斯達黎加 | 哥斯大黎加 |
| Cote D'Ivoire (Ivory Coast) | 科特迪瓦 | 科特迪瓦 | 象牙海岸 |
| Croatia | 克罗地亚 | 克羅地亞 | 克羅埃西亞 |
| Cuba | 古巴 | 古巴 | 古巴 |
| Curaçao | 库拉索 | 庫拉索 | 庫拉索 |
| Cyprus | 塞浦路斯 | 塞浦路斯 | 塞普勒斯 |
| Czech Republic | 捷克 | 捷克 | 捷克 |
| Democratic Republic of the Congo | 刚果(金) | 剛果(金) | 剛果(金) |
| Denmark | 丹麦 | 丹麥 | 丹麥 |
| Djibouti | 吉布提 | 吉布提 | 吉布提 |
| Dominica | 多米尼加 | 多米尼加 | 多明尼加 |
| Dominican Republic | 多明尼加共和国 | 多明尼加共和國 | 多明尼加共和國 |
| East Timor | 东帝汶 | 東帝汶 | 東帝汶 |
| Ecuador | 厄瓜多尔 | 厄瓜多爾 | 厄瓜多 |
| Egypt | 埃及 | 埃及 | 埃及 |
| El Salvador | 萨尔瓦多 | 薩爾瓦多 | 薩爾瓦多 |
| Equatorial Guinea | 赤道几内亚 | 赤道幾內亞 | 赤道幾內亞 |
| Eritrea | 厄立特里亚 | 厄立特里亞 | 厄利垂亞 |
| Estonia | 爱沙尼亚 | 愛沙尼亞 | 愛沙尼亞 |
| Ethiopia | 埃塞俄比亚 | 埃塞俄比亞 | 衣索比亞 |
| Falkland Islands | 福克兰群岛 | 福克蘭羣島 | 福克蘭群島 |
| Faroe Islands | 法罗群岛 | 法羅羣島 | 法羅群島 |
| Fiji Islands | 斐济 | 斐濟 | 斐濟 |
| Finland | 芬兰 | 芬蘭 | 芬蘭 |
| France | 法国 | 法國 | 法國 |
| French Guiana | 法属圭亚那 | 法屬圭亞那 | 法屬蓋亞那 |
| French Polynesia | 法属波利尼西亚 | 法屬波利尼西亞 | 法屬波利尼西亞 |
| French Southern Territories | 法属南部领地 | 法屬南部領地 | 法屬南部領地 |
| Gabon | 加蓬 | 加蓬 | 加彭 |
| Gambia The | 冈比亚 | 岡比亞 | 甘比亞 |
| Georgia | 格鲁吉亚 | 格魯吉亞 | 喬治亞 |
| Germany | 德国 | 德國 | 德國 |
| Ghana | 加纳 | 加納 | 迦納 |
| Gibraltar | 直布罗陀 | 直布羅陀 | 直布羅陀 |
| Greece | 希腊 | 希臘 | 希臘 |
| Greenland | 格陵兰岛 | 格陵蘭島 | 格陵蘭島 |
| Grenada | 格林纳达 | 格林納達 | 格瑞那達 |
| Guadeloupe | 瓜德罗普岛 | 瓜德羅普島 | 瓜德羅普島 |
| Guam | 关岛 | 關島 | 關島 |
| Guatemala | 危地马拉 | 危地馬拉 | 瓜地馬拉 |
| Guernsey and Alderney | 根西岛 | 根西島 | 根西島 |
| Guinea | 几内亚 | 幾內亞 | 幾內亞 |
| Guinea-Bissau | 几内亚比绍 | 幾內亞比紹 | 幾內亞比索 |
| Guyana | 圭亚那 | 圭亞那 | 蓋亞那 |
| Haiti | 海地 | 海地 | 海地 |
| Heard Island and McDonald Islands | 赫德·唐纳岛及麦唐纳岛 | 赫德·唐納島及麥唐納島 | 赫德·唐納島及麥唐納島 |
| Honduras | 洪都拉斯 | 洪都拉斯 | 宏都拉斯 |
| Hong Kong S.A.R. | 中国香港 | 中國香港 | 中國香港 |
| Hungary | 匈牙利 | 匈牙利 | 匈牙利 |
| Iceland | 冰岛 | 冰島 | 冰島 |
| India | 印度 | 印度 | 印度 |
| Indonesia | 印度尼西亚 | 印度尼西亞 | 印度尼西亞 |
| Iran | 伊朗 | 伊朗 | 伊朗 |
| Iraq | 伊拉克 | 伊拉克 | 伊拉克 |
| Ireland | 爱尔兰 | 愛爾蘭 | 愛爾蘭 |
| Israel | 以色列 | 以色列 | 以色列 |
| Italy | 意大利 | 意大利 | 義大利 |
| Jamaica | 牙买加 | 牙買加 | 牙買加 |
| Japan | 日本 | 日本 | 日本 |
| Jersey | 泽西岛 | 澤西島 | 澤西島 |
| Jordan | 约旦 | 約旦 | 約旦 |
| Kazakhstan | 哈萨克斯坦 | 哈薩克斯坦 | 哈薩克 |
| Kenya | 肯尼亚 | 肯尼亞 | 肯亞 |
| Kiribati | 基里巴斯 | 基里巴斯 | 吉里巴斯 |
| Kosovo | 科索沃 | 科索沃 | 科索沃 |
| Kuwait | 科威特 | 科威特 | 科威特 |
| Kyrgyzstan | 吉尔吉斯斯坦 | 吉爾吉斯斯坦 | 吉爾吉斯斯坦 |
| Laos | 寮人民民主共和国 | 寮人民民主共和國 | 寮人民民主共和國 |
| Latvia | 拉脱维亚 | 拉脫維亞 | 拉脫維亞 |
| Lebanon | 黎巴嫩 | 黎巴嫩 | 黎巴嫩 |
| Lesotho | 莱索托 | 萊索托 | 賴索托 |
| Liberia | 利比里亚 | 利比里亞 | 賴比瑞亞 |
| Libya | 利比亚 | 利比亞 | 利比亞 |
| Liechtenstein | 列支敦士登 | 列支敦士登 | 列支敦斯登 |
| Lithuania | 立陶宛 | 立陶宛 | 立陶宛 |
| Luxembourg | 卢森堡 | 盧森堡 | 盧森堡 |
| Macau S.A.R. | 中国澳门 | 中國澳門 | 中國澳門 |
| Madagascar | 马达加斯加 | 馬達加斯加 | 馬達加斯加 |
| Malawi | 马拉维 | 馬拉維 | 馬拉維 |
| Malaysia | 马来西亚 | 馬來西亞 | 馬來西亞 |
| Maldives | 马尔代夫 | 馬爾代夫 | 馬爾地夫 |
| Mali | 马里 | 馬裏 | 馬裡 |
| Malta | 马耳他 | 馬耳他 | 馬耳他 |
| Man (Isle of) | 马恩岛 | 馬恩島 | 馬恩島 |
| Marshall Islands | 马绍尔群岛 | 馬紹爾羣島 | 馬紹爾群島 |
| Martinique | 马提尼克岛 | 馬提尼克島 | 馬提尼克島 |
| Mauritania | 毛里塔尼亚 | 毛里塔尼亞 | 茅利塔尼亞 |
| Mauritius | 毛里求斯 | 毛里求斯 | 模里西斯 |
| Mayotte | 马约特 | 馬約特 | 馬約特 |
| Mexico | 墨西哥 | 墨西哥 | 墨西哥 |
| Micronesia | 密克罗尼西亚 | 密克羅尼西亞 | 密克羅尼西亞 |
| Moldova | 摩尔多瓦 | 摩爾多瓦 | 摩爾多瓦 |
| Monaco | 摩纳哥 | 摩納哥 | 摩納哥 |
| Mongolia | 蒙古 | 蒙古 | 蒙古 |
| Montenegro | 黑山 | 黑山 | 黑山 |
| Montserrat | 蒙特塞拉特 | 蒙特塞拉特 | 蒙特塞拉特 |
| Morocco | 摩洛哥 | 摩洛哥 | 摩洛哥 |
| Mozambique | 莫桑比克 | 莫桑比克 | 莫三比克 |
| Myanmar | 缅甸 | 緬甸 | 緬甸 |
| Namibia | 纳米比亚 | 納米比亞 | 奈米比亞 |
| Nauru | 瑙鲁 | 瑙魯 | 諾魯 |
| Nepal | 尼泊尔 | 尼泊爾 | 尼泊爾 |
| Netherlands | 荷兰 | 荷蘭 | 荷蘭 |
| New Caledonia | 新喀里多尼亚 | 新喀里多尼亞 | 新喀里多尼亞 |
| New Zealand | 新西兰 | 新西蘭 | 紐西蘭 |
| Nicaragua | 尼加拉瓜 | 尼加拉瓜 | 尼加拉瓜 |
| Niger | 尼日尔 | 尼日爾 | 尼日 |
| Nigeria | 尼日利亚 | 尼日利亞 | 奈及利亞 |
| Niue | 纽埃 | 紐埃 | 紐埃 |
| Norfolk Island | 诺福克岛 | 諾福克島 | 諾福克島 |
| North Korea | 朝鲜 | 朝鮮 | 朝鮮 |
| North Macedonia | 北馬其頓 | 北馬其頓 | 北馬其頓 |
| Northern Mariana Islands | 北马里亚纳群岛 | 北马里亞納羣島 | 北马里亞納群島 |
| Norway | 挪威 | 挪威 | 挪威 |
| Oman | 阿曼 | 阿曼 | 阿曼 |
| Pakistan | 巴基斯坦 | 巴基斯坦 | 巴基斯坦 |
| Palau | 帕劳 | 帕勞 | 帛琉 |
| Palestinian Territory Occupied | 巴勒斯坦 | 巴勒斯坦 | 巴勒斯坦 |
| Panama | 巴拿马 | 巴拿馬 | 巴拿馬 |
| Papua new Guinea | 巴布亚新几内亚 | 巴布亞新幾內亞 | 巴布亞紐幾內亞 |
| Paraguay | 巴拉圭 | 巴拉圭 | 巴拉圭 |
| Peru | 秘鲁 | 祕魯 | 秘魯 |
| Philippines | 菲律宾 | 菲律賓 | 菲律賓 |
| Pitcairn Island | 皮特凯恩群岛 | 皮特凱恩羣島 | 皮特凱恩群島 |
| Poland | 波兰 | 波蘭 | 波蘭 |
| Portugal | 葡萄牙 | 葡萄牙 | 葡萄牙 |
| Puerto Rico | 波多黎各 | 波多黎各 | 波多黎各 |
| Qatar | 卡塔尔 | 卡塔爾 | 卡達 |
| Reunion | 留尼汪岛 | 留尼汪島 | 留尼汪島 |
| Romania | 罗马尼亚 | 羅馬尼亞 | 羅馬尼亞 |
| Russia | 俄罗斯联邦 | 俄羅斯聯邦 | 俄羅斯聯邦 |
| Rwanda | 卢旺达 | 盧旺達 | 盧安達 |
| Saint Helena | 圣赫勒拿 | 聖赫勒拿 | 聖赫勒拿 |
| Saint Kitts And Nevis | 圣基茨和尼维斯 | 聖基茨和尼維斯 | 聖克里斯多福及尼維斯 |
| Saint Lucia | 圣卢西亚 | 聖盧西亞 | 聖露西亞 |
| Saint Pierre and Miquelon | 圣皮埃尔和密克隆 | 聖皮埃爾和密克隆 | 聖皮埃爾和密克隆 |
| Saint Vincent And The Grenadines | 圣文森特和格林纳丁斯 | 聖文森特和格林納丁斯 | 聖文森及格瑞那丁 |
| Saint-Barthelemy | 圣巴泰勒米 | 聖巴泰勒米 | 聖巴泰勒米 |
| Saint-Martin (French part) | 密克罗尼西亚 | 密克羅尼西亞 | 密克羅尼西亞 |
| Samoa | 萨摩亚 | 薩摩亞 | 薩摩亞 |
| San Marino | 圣马力诺 | 聖馬力諾 | 聖馬利諾 |
| Sao Tome and Principe | 圣多美和普林西比 | 聖多美和普林西比 | 聖多美和普林西比 |
| Saudi Arabia | 沙特阿拉伯 | 沙特阿拉伯 | 沙烏地阿拉伯 |
| Senegal | 塞内加尔 | 塞內加爾 | 塞內加爾 |
| Serbia | 塞尔维亚 | 塞爾維亞 | 塞爾維亞 |
| Seychelles | 塞舌尔 | 塞舌爾 | 塞席爾 |
| Sierra Leone | 塞拉利昂 | 塞拉利昂 | 獅子山 |
| Singapore | 新加坡 | 新加坡 | 新加坡 |
| Sint Maarten (Dutch part) | 圣马丁岛(荷兰部分) | 聖馬丁島(荷蘭部分) | 聖馬丁島(荷蘭部分) |
| Slovakia | 斯洛伐克 | 斯洛伐克 | 斯洛伐克 |
| Slovenia | 斯洛文尼亚 | 斯洛文尼亞 | 斯洛維尼亞 |
| Solomon Islands | 所罗门群岛 | 所羅門羣島 | 索羅門群島 |
| Somalia | 索马里 | 索馬里 | 索馬利亞 |
| South Africa | 南非 | 南非 | 南非 |
| South Georgia | 南乔治亚 | 南喬治亞 | 南喬治亞 |
| South Korea | 韩国 | 韓國 | 韓國 |
| South Sudan | 南苏丹 | 南蘇丹 | 南蘇丹 |
| Spain | 西班牙 | 西班牙 | 西班牙 |
| Sri Lanka | 斯里兰卡 | 斯里蘭卡 | 斯里蘭卡 |
| Sudan | 苏丹 | 蘇丹 | 蘇丹 |
| Suriname | 苏里南 | 蘇里南 | 蘇利南 |
| Svalbard And Jan Mayen Islands | 斯瓦尔巴和扬马延群岛 | 斯瓦爾巴和揚馬延羣島 | 斯瓦爾巴和揚馬延群島 |
| Swaziland | 斯威士兰 | 斯威士蘭 | 史瓦濟蘭 |
| Sweden | 瑞典 | 瑞典 | 瑞典 |
| Switzerland | 瑞士 | 瑞士 | 瑞士 |
| Syria | 叙利亚 | 敘利亞 | 敘利亞 |
| Taiwan | 中国台湾 | 中國臺灣 | 中國臺灣 |
| Tajikistan | 塔吉克斯坦 | 塔吉克斯坦 | 塔吉克 |
| Tanzania | 坦桑尼亚 | 坦桑尼亞 | 坦尚尼亞 |
| Thailand | 泰国 | 泰國 | 泰國 |
| The Bahamas | 巴哈马 | 巴哈馬 | 巴哈馬 |
| Togo | 多哥 | 多哥 | 多哥 |
| Tokelau | 托克劳 | 托克勞 | 托克勞 |
| Tonga | 汤加 | 湯加 | 湯加 |
| Trinidad And Tobago | 特立尼达和多巴哥 | 特立尼達和多巴哥 | 千里達及托巴哥 |
| Tunisia | 突尼斯 | 突尼斯 | 突尼西亞 |
| Türkiye | 土耳其 | 土耳其 | 土耳其 |
| Turkmenistan | 土库曼斯坦 | 土庫曼斯坦 | 土庫曼 |
| Turks And Caicos Islands | 特克斯和凯科斯群岛 | 特克斯和凱科斯羣島 | 特克斯和凱科斯群島 |
| Tuvalu | 图瓦卢 | 圖瓦盧 | 吐瓦魯 |
| Uganda | 乌干达 | 烏干達 | 烏干達 |
| Ukraine | 乌克兰 | 烏克蘭 | 烏克蘭 |
| United Arab Emirates | 阿拉伯联合酋长国 | 阿拉伯聯合酋長國 | 阿拉伯聯合大公國 |
| United Kingdom | 英国 | 英國 | 英國 |
| United States | 美国 | 美國 | 美國 |
| United States Minor Outlying Islands | 美国本土外小岛屿 | 美國本土外小島嶼 | 美國本土外小島嶼 |
| Uruguay | 乌拉圭 | 烏拉圭 | 烏拉圭 |
| Uzbekistan | 乌兹别克斯坦 | 烏茲別克斯坦 | 烏茲別克 |
| Vanuatu | 瓦努阿图 | 瓦努阿圖 | 萬那杜 |
| Vatican City State (Holy See) | 梵蒂冈 | 梵蒂岡 | 梵蒂岡 |
| Venezuela | 委内瑞拉 | 委內瑞拉 | 委內瑞拉 |
| Vietnam | 越南 | 越南 | 越南 |
| Virgin Islands (British) | 圣文森特和格林纳丁斯 | 聖文森特和格林納丁斯 | 聖文森及格瑞那丁 |
| Virgin Islands (US) | 维尔京群岛(美国) | 維爾京羣島(美國) | 維爾京群島(美國) |
| Wallis And Futuna Islands | 瓦利斯群岛和富图纳群岛 | 瓦利斯羣島和富圖納羣島 | 瓦利斯群島和富圖納群島 |
| Western Sahara | 西撒哈拉 | 西撒哈拉 | 西撒哈拉 |
| Yemen | 也门 | 也門 | 葉門 |
| Zambia | 赞比亚 | 贊比亞 | 尚比亞 |
| Zimbabwe | 津巴布韦 | 津巴布韋 | 辛巴威 |
### Noms de Sections
| English | Chinese (Simplified) | Chinese (Traditional, Hong Kong) | Chinese (Traditional, Taiwan) |
| ------------ | -------------------- | -------------------------------- | ----------------------------- |
| Awards | 荣誉 | 榮譽 | 榮譽 |
| Basics | 简介 | 簡介 | 簡介 |
| Certificates | 证书 | 證書 | 證書 |
| Education | 教育背景 | 教育背景 | 教育背景 |
| Interests | 兴趣爱好 | 興趣愛好 | 興趣愛好 |
| Languages | 语言 | 語言 | 語言 |
| Location | 地址 | 地址 | 地址 |
| Profiles | 社交信息 | 社交信息 | 社交信息 |
| Projects | 项目 | 項目 | 項目 |
| Publications | 出版刊物 | 出版刊物 | 出版刊物 |
| References | 引荐 | 引薦 | 引薦 |
| Skills | 专业技能 | 專業技能 | 專業技能 |
| Volunteer | 志愿服务 | 志願服務 | 志願服務 |
| Work | 工作经历 | 工作經歷 | 工作經歷 |
### Niveaux de Compétences
| English | Chinese (Simplified) | Chinese (Traditional, Hong Kong) | Chinese (Traditional, Taiwan) |
| ------------ | -------------------- | -------------------------------- | ----------------------------- |
| Novice | 新手 | 新手 | 新手 |
| Beginner | 初级 | 初級 | 初級 |
| Intermediate | 中级 | 中級 | 中級 |
| Advanced | 高级 | 高級 | 高級 |
| Expert | 专家 | 專家 | 專家 |
| Master | 大师 | 大師 | 大師 |
### Termes
| English | Chinese (Simplified) | Chinese (Traditional, Hong Kong) | Chinese (Traditional, Taiwan) |
| -------- | -------------------- | -------------------------------- | ----------------------------- |
| Courses | 课程 | 課程 | 課程 |
| Keywords | 关键字 | 關鍵字 | 關鍵字 |
| Score | 成绩 | 成績 | 成績 |
# Néerlandais
URL: (/fr/docs/locale/dutch)
L'anglais et le néerlandais sont tous deux des
[langues germaniques](https://en.wikipedia.org/wiki/Germanic_languages), le
néerlandais faisant partie de la branche germanique occidentale, étroitement
liée à l'anglais et à l'allemand. Bien qu'ils partagent de nombreuses
similitudes, le néerlandais possède des caractéristiques distinctes qui
nécessitent des considérations spécifiques pour YAMLResume.
## Linguistique
### Jeu de caractères
L'anglais et le néerlandais utilisent tous deux
l'[alphabet latin](https://en.wikipedia.org/wiki/Latin_alphabet). Cependant, le
néerlandais inclut certaines fonctionnalités spécifiques :
| Caractéristique | Jeu de caractères anglais | Jeu de caractères néerlandais |
| :---------------------- | :----------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Alphabet** | 26 lettres (`a-z`) | 26 lettres (`a-z`). Le digramme `ij` est parfois traité comme une lettre distincte. |
| **Diacritiques** | Aucun | Utilise des diacritiques comme le tréma (`ë`, `ï`) pour indiquer la séparation des voyelles (par ex., *coöperatie*) et des accents aigus (`é`) pour l'accentuation. |
| **Caractères spéciaux** | Limité aux caractères latins de base | Inclut les caractères standard mais traite `ij` spécialement en majuscules (par ex., *IJsselmeer*). |
Les principales différences incluent :
* **Digramme `ij`** : En néerlandais, la combinaison `ij` est souvent traitée
comme une seule lettre. Lorsqu'elle est écrite en majuscule au début d'une
phrase ou d'un nom propre, le I et le J sont tous deux écrits en majuscule
(par ex., *IJmuiden*).
* **Diacritiques** : Le tréma est utilisé pour indiquer que deux voyelles sont
prononcées séparément (hiatus), plutôt que comme une diphtongue.
## Conventions
### Date
En néerlandais, les jours de la semaine et les mois s'écrivent en minuscules
(contrairement à l'anglais), sauf s'ils apparaissent au début d'une phrase. Par
exemple, "Sep 2021" se traduit par "sep. 2021" ou "sept. 2021" en néerlandais,
avec le mois en minuscule.
### Capitalisation
Les règles de capitalisation du néerlandais sont généralement similaires à
celles de l'anglais, mais avec des exceptions :
* **Jours/Mois** : Écrits en minuscules (*maandag*, *januari*).
* **Langues/Nationalités** : Mises en majuscule (*Nederlands*, *Engels*).
* **Pronom "je"** : Le "ik" néerlandais s'écrit en minuscule, sauf au début
d'une phrase.
YAMLResume adopte en interne un ensemble fixe d'options et de termes pour tous
les modèles de CV. Par exemple, les langues dans les modèles de CV YAMLResume
adoptent les
[options de maîtrise linguistique de LinkedIn](https://www.linkedin.com/pulse/language-proficiency-linkedin-duaa-ali/)
:
* Elementary Proficiency
* Limited Working Proficiency
* Minimum Professional Proficiency
* Full Professional Proficiency
* Native or Bilingual Proficiency
Celles-ci sont traduites en néerlandais comme suit :
* Elementaire vaardigheid
* Beperkte werkvaardigheid
* Minimale professionele vaardigheid
* Volledige professionele vaardigheid
* Moedertaal of tweetalige vaardigheid
Seul le premier mot prend une majuscule, suivant les conventions de
capitalisation néerlandaises.
## Typographie
### Ponctuation
Le néerlandais présente plusieurs différences notables de ponctuation par
rapport à l'anglais :
* **Séparateur décimal** : Le néerlandais utilise une virgule comme séparateur
décimal (par ex., 3,14) au lieu d'un point comme en anglais (3.14).
* **Séparateur de milliers** : Le néerlandais utilise un point ou une espace
comme séparateur de milliers (par ex., 1.000 ou 1 000) plutôt qu'une virgule.
* **Guillemets** : Le néerlandais utilise officiellement des guillemets doubles
(souvent bas-haut `„...”` ou haut-haut `"..."`) ou des guillemets simples
(`'...'`).
## Traductions
YAMLResume adopte les traductions suivantes pour diverses options et termes
utilisés dans les CV néerlandais.
### Diplômes scolaires
| English | Dutch |
| :------------ | :--------- |
| Middle School | Middelbaar |
| High School | Hogeschool |
| Diploma | Diploma |
| Associate | Graduaat |
| Bachelor | Bachelor |
| Master | Master |
| Doctor | Doctoraat |
### Langues
| English | Dutch |
| :---------- | :------------- |
| Afrikaans | Afrikaans |
| Albanian | Albanees |
| Amharic | Amhaars |
| Arabic | Arabisch |
| Azerbaijani | Azerbeidzjaans |
| Belarusian | Wit-Russisch |
| Bengali | Bengaals |
| Bhojpuri | Bhojpuri |
| Bulgarian | Bulgaars |
| Burmese | Birmees |
| Cantonese | Kantonees |
| Catalan | Catalaans |
| Chinese | Chinees |
| Croatian | Kroatisch |
| Czech | Tsjechisch |
| Danish | Deens |
| Dutch | Nederlands |
| English | Engels |
| Estonian | Ests |
| Farsi | Persan |
| Filipino | Filipijns |
| Finnish | Fins |
| French | Frans |
| German | Duits |
| Greek | Grieks |
| Gujarati | Gujarati |
| Hausa | Haoussa |
| Hebrew | Hebreeuws |
| Hindi | Hindi |
| Hungarian | Hongaars |
| Icelandic | IJslands |
| Igbo | Igbo |
| Indonesian | Indonesisch |
| Irish | Iers |
| Italian | Italiaans |
| Japanese | Japans |
| Javanese | Javaans |
| Kazakh | Kazachs |
| Khmer | Khmer |
| Korean | Koreaans |
| Lahnda | Lahnda |
| Latvian | Lets |
| Lithuanian | Litouws |
| Malay | Maleis |
| Mandarin | Mandarijn |
| Marathi | Marathi |
| Nepali | Nepalees |
| Norwegian | Noors |
| Oromo | Oromo |
| Pashto | Pasjto |
| Polish | Pools |
| Portuguese | Portugees |
| Romanian | Roemeense |
| Russian | Russisch |
| Serbian | Servisch |
| Shona | Shona |
| Sinhala | Singalees |
| Slovak | Slowaaks |
| Slovene | Sloveens |
| Somali | Somalisch |
| Spanish | Spaans |
| Sundanese | Soendanees |
| Swahili | Swahili |
| Swedish | Zweeds |
| Tagalog | Tagalog |
| Tamil | Tamoul |
| Telugu | Telugu |
| Thai | Thais |
| Turkish | Turks |
| Ukrainian | Oekraïens |
| Urdu | Urdu |
| Uzbek | Oezbeeks |
| Vietnamese | Vietnamees |
| Yoruba | Joruba |
| Zulu | Zoeloe |
### Maîtrise de la langue
| English | Dutch |
| :------------------------------- | :----------------------------------- |
| Elementary Proficiency | Elementaire vaardigheid |
| Limited Working Proficiency | Beperkte werkvaardigheid |
| Minimum Professional Proficiency | Minimale professionele vaardigheid |
| Full Professional Proficiency | Volledige professionele vaardigheid |
| Native or Bilingual Proficiency | Moedertaal of tweetalige vaardigheid |
### Lieu (Pays et Régions)
| English | Dutch |
| :----------------------------------- | :------------------------------------------------ |
| Afghanistan | Afghanistan |
| Aland Islands | Åland eilanden |
| Albania | Albanië |
| Algeria | Algerije |
| American Samoa | Amerikaans-Samoa |
| Andorra | Andorra |
| Angola | Angola |
| Anguilla | Anguilla |
| Antarctica | Antarctica |
| Antigua And Barbuda | Antigua en Barbuda |
| Argentina | Argentinië |
| Armenia | Armenië |
| Aruba | Aruba |
| Australia | Australië |
| Austria | Oostenrijk |
| Azerbaijan | Azerbeidzjan |
| Bahrain | Bahrein |
| Bangladesh | Bangladesh |
| Barbados | Barbados |
| Belarus | Belarus |
| Belgium | België |
| Belize | Belize |
| Benin | Benin |
| Bermuda | Bermuda |
| Bhutan | Bhutan |
| Bolivia | Bolivia |
| Bonaire, Sint Eustatius and Saba | Bonaire, Sint Eustatius en Saba |
| Bosnia and Herzegovina | Bosnië en Herzegovina |
| Botswana | Botswana |
| Bouvet Island | Bouvet-eiland |
| Brazil | Brazilië |
| British Indian Ocean Territory | Brits Indische Oceaanterritorium |
| Brunei | Brunei |
| Bulgaria | Bulgarije |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Cambodja |
| Cameroon | Kameroen |
| Canada | Canada |
| Cape Verde | Kaapverdië |
| Cayman Islands | Kaaimaneilanden |
| Central African Republic | Centraal-Afrikaanse Republiek |
| Chad | Tsjaad |
| Chile | Chili |
| China | China |
| Christmas Island | Christmaseiland |
| Cocos (Keeling) Islands | Cocoseilanden |
| Colombia | Colombië |
| Comoros | Comoren |
| Congo | Congo |
| Cook Islands | Cook Eilanden |
| Costa Rica | Costa Rica |
| Cote D'Ivoire (Ivory Coast) | Ivoorkust |
| Croatia | Kroatië |
| Cuba | Cuba |
| Curaçao | Curacao |
| Cyprus | Cyprus |
| Czech Republic | Tsjechische Republiek |
| Democratic Republic of the Congo | Democratische Republiek Congo |
| Denmark | Denemarken |
| Djibouti | Djibouti |
| Dominica | Dominica |
| Dominican Republic | Dominicaanse Republiek |
| East Timor | Oost-Timor |
| Ecuador | Ecuador |
| Egypt | Egypte |
| El Salvador | El Salvador |
| Equatorial Guinea | Equatoriaal-Guinea |
| Eritrea | Eritrea |
| Estonia | Estland |
| Ethiopia | Ethiopië |
| Falkland Islands | Falklandeilanden |
| Faroe Islands | Faeröer eilanden |
| Fiji Islands | Fiji-eilanden |
| Finland | Finland |
| France | Frankrijk |
| French Guiana | Frans-Guyana |
| French Polynesia | Frans-Polynesië |
| French Southern Territories | Franse Zuidelijke Gebieden |
| Gabon | Gabon |
| Gambia The | Gambia De |
| Georgia | Georgië |
| Germany | Duitsland |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Griekenland |
| Greenland | Groenland |
| Grenada | Grenada |
| Guadeloupe | Guadeloupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernsey en Alderney |
| Guinea | Guinea |
| Guinea-Bissau | Guinee-Bissau |
| Guyana | Guyana |
| Haiti | Haïti |
| Heard Island and McDonald Islands | Heard Island en McDonald Islands |
| Honduras | Honduras |
| Hong Kong | HongKong |
| Hungary | Hongarijë |
| Iceland | Ijsland |
| India | India |
| Indonesia | Indonesië |
| Iran | Iran |
| Iraq | Iraq |
| Ireland | Ierland |
| Israel | Israël |
| Italy | Italië |
| Jamaica | Jamaica |
| Japan | Japan |
| Jersey | Jersey |
| Jordan | Jordanië |
| Kazakhstan | Kazachstan |
| Kenya | Kenia |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Koeweit |
| Kyrgyzstan | Kirgizië |
| Laos | Laos |
| Latvia | Letland |
| Lebanon | Libanon |
| Lesotho | Lesotho |
| Liberia | Liberia |
| Libya | Libië |
| Liechtenstein | Liechtenstein |
| Lithuania | Litouwen |
| Luxembourg | Luxemburg |
| Macau | Macau |
| Madagascar | Madagascar |
| Malawi | Malawi |
| Malaysia | Maleisië |
| Maldives | Maldiven |
| Mali | Mali |
| Malta | Malta |
| Man (Isle of) | Man (Eiland van) |
| Marshall Islands | Marshall eilanden |
| Martinique | Martinique |
| Mauritania | Mauritanië |
| Mauritius | Mauritius |
| Mayotte | Mayotte |
| Mexico | Mexico |
| Micronesia | Micronesië |
| Moldova | Moldavië |
| Monaco | Monaco |
| Mongolia | Mongolië |
| Montenegro | Montenegro |
| Montserrat | Montserrat |
| Morocco | Marokko |
| Mozambique | Mozambique |
| Myanmar | Myanmar |
| Namibia | Namibië |
| Nauru | Nauru |
| Nepal | Nepal |
| Netherlands | Nederland |
| New Caledonia | Nieuw-Caledonië |
| New Zealand | Nieuw-Zeeland |
| Nicaragua | Nicaragua |
| Niger | Niger |
| Nigeria | Nigeria |
| Niue | Niue |
| Norfolk Island | Norfolkeiland |
| North Korea | Noord-Korea |
| North Macedonia | Noord-Macedionië |
| Northern Mariana Islands | Noordelijke Marianen |
| Norway | Noorwegen |
| Oman | Oman |
| Pakistan | Pakistan |
| Palau | Palau |
| Palestinian Territory Occupied | Palestijns bezet gebied |
| Panama | Panama |
| Papua new Guinea | Papoea-Nieuw-Guinea |
| Paraguay | Paraguay |
| Peru | Peru |
| Philippines | Philippines |
| Pitcairn Island | Pitcairn-eiland |
| Poland | Polen |
| Portugal | Portugal |
| Puerto Rico | Puerto Rico |
| Qatar | Katar |
| Reunion | Reunion |
| Romania | Roemenië |
| Russia | Rusland |
| Rwanda | Rwanda |
| Saint Helena | Sint-Helena |
| Saint Kitts And Nevis | Saint Kitts en Nevis |
| Saint Lucia | Saint Lucia |
| Saint Pierre and Miquelon | Saint Pierre en Miquelon |
| Saint Vincent And The Grenadines | Saint Vincent en de Grenadines |
| Saint-Barthelemy | Saint-Barthélemy |
| Saint-Martin (French part) | Saint-Martin (Frans deel) |
| Samoa | Samoa |
| San Marino | San Marino |
| Sao Tome and Principe | Sao Tomé en Principe |
| Saudi Arabia | Saoedi-Arabië |
| Senegal | Senegal |
| Serbia | Servië |
| Seychelles | Seychellen |
| Sierra Leone | Sierra Leone |
| Singapore | Singapore |
| Sint Maarten (Dutch part) | Sint Maarten (Nederlands deel) |
| Slovakia | Slowakije |
| Slovenia | Slovenië |
| Solomon Islands | Salomonseilanden |
| Somalia | Somalië |
| South Africa | Zuid-Afrika |
| South Georgia | Zuid-Georgië |
| South Korea | Zuid-Korea |
| South Sudan | Zuid-Sudan |
| Spain | Spanje |
| Sri Lanka | Sri Lanka |
| Sudan | Sudan |
| Suriname | Suriname |
| Svalbard And Jan Mayen Islands | Svalbard- en Jan Mayen-eilanden |
| Swaziland | Swaziland |
| Sweden | Zweden |
| Switzerland | Zwitserland |
| Syria | Syrië |
| Taiwan | Taiwan |
| Tajikistan | Tadsjikistan |
| Tanzania | Tanzania |
| Thailand | Thailand |
| The Bahamas | De Bahama's |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinidad en Tobago |
| Tunisia | Tunesië |
| Türkiye | Turkijë |
| Turkmenistan | Turkmenistan |
| Turks And Caicos Islands | Turks- en Caicoseilanden |
| Tuvalu | Tuvalu |
| Uganda | Oeganda |
| Ukraine | Oekraïne |
| United Arab Emirates | Verenigde Arabische Emiraten |
| United Kingdom | Koninkrijk |
| United States | Verenigde Staten |
| United States Minor Outlying Islands | Kleine afgelegen eilanden van de Verenigde Staten |
| Uruguay | Uruguay |
| Uzbekistan | Oezbekistan |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Vaticaanstad (Heilige Stoel) |
| Venezuela | Venezuela |
| Vietnam | Vietnam |
| Virgin Islands (British) | Britse Maagdeneilanden |
| Virgin Islands (US) | Amerikaanse Maagdeneilanden |
| Wallis And Futuna Islands | Wallis en Futuna-eilanden |
| Western Sahara | Westelijke Sahara |
| Yemen | Jemen |
| Zambia | Zambia |
| Zimbabwe | Zimbabwe |
### Noms de sections
| English | Dutch |
| :----------- | :---------------- |
| Awards | Onderscheidingen |
| Basics | Basis Informatie |
| Certificates | Certificaten |
| Education | Opleidingen |
| Interests | Interesses |
| Languages | Talen |
| Location | Locatie |
| Profiles | Profielen |
| Projects | Projecten |
| Publications | Publicaties |
| References | Referenties |
| Skills | Vaardigheden |
| Volunteer | Vrijwilligerswerk |
| Work | Werkervaring |
### Niveaux de compétence
| English | Dutch |
| :----------- | :----------- |
| Novice | Nieuweling |
| Beginner | Beginner |
| Intermediate | Intermediair |
| Advanced | Geavanceerd |
| Expert | Expert |
| Master | Meester |
### Options et termes
| English | Dutch |
| :------- | :---------- |
| Courses | Cursussen |
| Keywords | Trefwoorden |
| Score | Score |
# Anglais
URL: (/fr/docs/locale/english)
Comme nous le savons tous, l'anglais est largement utilisé et parlé dans le monde entier.
Supporter l'anglais dans YAMLResume est une tâche facile. Il y a très peu de configuration supplémentaire
à faire pour supporter les CV anglais avec LaTeX.
## Linguistique
Théoriquement, l'anglais appartient aux [langues germaniques](https://en.wikipedia.org/wiki/Germanic_languages), qui est une branche
de la [famille linguistique indo-européenne](https://en.wikipedia.org/wiki/Indo-European_languages) parlée nativement
par une population d'environ 515 millions de personnes principalement en Europe, Amérique du Nord, Océanie, et Afrique Australe.
### Jeu de Caractères
L'anglais moderne est écrit avec un alphabet latin composé de 26 lettres, avec
chacune ayant des formes majuscules et minuscules.
L'[alphabet latin](https://en.wikipedia.org/wiki/Latin_alphabet) est le
système d'écriture alphabétique le plus largement utilisé au monde.
## Idiomes
### Date
L'anglais a des mots dédiés pour les mois, tandis que chacun a une forme courte. YAMLResume
adopte la forme courte pour tous les champs de mois par défaut.
| Forme Longue | Forme Courte |
| ------------ | ------------ |
| January | Jan |
| February | Feb |
| March | Mar |
| April | Apr |
| May | May |
| June | Jun |
| July | Jul |
| August | Aug |
| September | Sep |
| October | Oct |
| November | Nov |
| December | Dec |
### Localisation
Les différentes langues présentent les localisations dans des formats différents. En anglais, lors de la
présentation d'une localisation avec adresse, ville et pays, la partie générale
(pays, état, etc.) vient typiquement en dernier, tandis que la partie la plus spécifique (ville,
adresse, etc.) vient en premier. Dans certaines autres langues comme le chinois, l'ordre est
totalement inversé.
Voici l'ordre typique en anglais :
1. Adresse : Cela inclut le numéro de rue, le nom de rue, le numéro d'appartement, etc.
2. Ville : Le nom de la ville ou du village.
3. État/Province : L'état ou la province, si applicable.
4. Pays : Le nom du pays.
## Composition Typographique
Beaucoup de théorie et de pratique de composition typographique peuvent être partagées par toutes les langues à script
latin, l'anglais n'est pas une exception ici. Nous avons déjà préparé un
[guide](/docs/guide) qui couvre beaucoup de détails.
### Police
Consultez [Guide -> Police](/docs/guide/font) de notre guide pour les détails.
* [Serif vs. sans-serif](/docs/guide/font#serif-vs-sans-serif)
* [Proportionnel vs. à chasse fixe](/docs/guide/font#proportional-vs-monospaced)
* [Crénage](/docs/guide/font#kerning)
* [Ligature](/docs/guide/font#ligature)
* [Italiques](/docs/guide/font#italics)
* [Nombres ancien style](/docs/guide/font#old-style-numbers)
### Ponctuation
Consultez [Guide -> Ponctuation](/docs/guide/punctuations) de notre guide pour les détails :
* [Trait d'union](/docs/guide/punctuations#hyphen--)
* [Tiret cadratin](/docs/guide/punctuations#en-dash-)
* [Tiret long](/docs/guide/punctuations#em-dash-)
## Traductions
YAMLResume adopte les traductions suivantes pour diverses options et termes utilisés
dans les CV anglais.
### Diplômes d'Éducation
YAMLResume présente les diplômes prédéfinis suivants pour la section Éducation.
| English |
| ------------- |
| Middle School |
| High School |
| Diploma |
| Associate |
| Bachelor |
| Master |
| Doctor |
### Langues
YAMLResume présente les options de langues prédéfinies suivantes pour la section
Langues.
| English |
| ----------- |
| Afrikaans |
| Albanian |
| Amharic |
| Arabic |
| Azerbaijani |
| Belarusian |
| Bengali |
| Bhojpuri |
| Bulgarian |
| Burmese |
| Cantonese |
| Catalan |
| Chinese |
| Croatian |
| Czech |
| Danish |
| Dutch |
| English |
| Estonian |
| Farsi |
| Filipino |
| Finnish |
| French |
| German |
| Greek |
| Gujarati |
| Hausa |
| Hebrew |
| Hindi |
| Hungarian |
| Icelandic |
| Igbo |
| Indonesian |
| Irish |
| Italian |
| Japanese |
| Javanese |
| Kazakh |
| Khmer |
| Korean |
| Lahnda |
| Latvian |
| Lithuanian |
| Malay |
| Mandarin |
| Marathi |
| Nepali |
| Norwegian |
| Oromo |
| Pashto |
| Polish |
| Portuguese |
| Romanian |
| Russian |
| Serbian |
| Shona |
| Sinhala |
| Slovak |
| Slovene |
| Somali |
| Spanish |
| Sundanese |
| Swahili |
| Swedish |
| Tagalog |
| Tamil |
| Telugu |
| Thai |
| Turkish |
| Ukrainian |
| Urdu |
| Uzbek |
| Vietnamese |
| Yoruba |
| Zulu |
### Niveaux de Maîtrise des Langues
YAMLResume présente les options de maîtrise des langues prédéfinies suivantes pour la
section Langues. Ces options sont reflétées depuis
[Linkedin](https://www.linkedin.com/pulse/language-proficiency-linkedin-duaa-ali/).
| English |
| -------------------------------- |
| Elementary Proficiency |
| Limited Working Proficiency |
| Minimum Professional Proficiency |
| Full Professional Proficiency |
| Native or Bilingual Proficiency |
### Localisation (Pays et Régions)
YAMLResume fournit les options suivantes pour les pays et régions dans la section
Localisation. Cette liste provient de
[countries-states-cities-database](https://github.com/dr5hn/countries-states-cities-database).
Tous ne sont pas des pays, certains sont des régions ou des
[RAS](https://en.wikipedia.org/wiki/Special_administrative_regions_of_China).
| English |
| ------------------------------------ |
| Afghanistan |
| Aland Islands |
| Albania |
| Algeria |
| American Samoa |
| Andorra |
| Angola |
| Anguilla |
| Antarctica |
| Antigua And Barbuda |
| Argentina |
| Armenia |
| Aruba |
| Australia |
| Austria |
| Azerbaijan |
| Bahrain |
| Bangladesh |
| Barbados |
| Belarus |
| Belgium |
| Belize |
| Benin |
| Bermuda |
| Bhutan |
| Bolivia |
| Bonaire, Sint Eustatius and Saba |
| Bosnia and Herzegovina |
| Botswana |
| Bouvet Island |
| Brazil |
| British Indian Ocean Territory |
| Brunei |
| Bulgaria |
| Burkina Faso |
| Burundi |
| Cambodia |
| Cameroon |
| Canada |
| Cape Verde |
| Cayman Islands |
| Central African Republic |
| Chad |
| Chile |
| China |
| Christmas Island |
| Cocos (Keeling) Islands |
| Colombia |
| Comoros |
| Congo |
| Cook Islands |
| Costa Rica |
| Cote D'Ivoire (Ivory Coast) |
| Croatia |
| Cuba |
| Curaçao |
| Cyprus |
| Czech Republic |
| Democratic Republic of the Congo |
| Denmark |
| Djibouti |
| Dominica |
| Dominican Republic |
| East Timor |
| Ecuador |
| Egypt |
| El Salvador |
| Equatorial Guinea |
| Eritrea |
| Estonia |
| Ethiopia |
| Falkland Islands |
| Faroe Islands |
| Fiji Islands |
| Finland |
| France |
| French Guiana |
| French Polynesia |
| French Southern Territories |
| Gabon |
| Gambia The |
| Georgia |
| Germany |
| Ghana |
| Gibraltar |
| Greece |
| Greenland |
| Grenada |
| Guadeloupe |
| Guam |
| Guatemala |
| Guernsey and Alderney |
| Guinea |
| Guinea-Bissau |
| Guyana |
| Haiti |
| Heard Island and McDonald Islands |
| Honduras |
| Hong Kong S.A.R. |
| Hungary |
| Iceland |
| India |
| Indonesia |
| Iran |
| Iraq |
| Ireland |
| Israel |
| Italy |
| Jamaica |
| Japan |
| Jersey |
| Jordan |
| Kazakhstan |
| Kenya |
| Kiribati |
| Kosovo |
| Kuwait |
| Kyrgyzstan |
| Laos |
| Latvia |
| Lebanon |
| Lesotho |
| Liberia |
| Libya |
| Liechtenstein |
| Lithuania |
| Luxembourg |
| Macau S.A.R. |
| Madagascar |
| Malawi |
| Malaysia |
| Maldives |
| Mali |
| Malta |
| Man (Isle of) |
| Marshall Islands |
| Martinique |
| Mauritania |
| Mauritius |
| Mayotte |
| Mexico |
| Micronesia |
| Moldova |
| Monaco |
| Mongolia |
| Montenegro |
| Montserrat |
| Morocco |
| Mozambique |
| Myanmar |
| Namibia |
| Nauru |
| Nepal |
| Netherlands |
| New Caledonia |
| New Zealand |
| Nicaragua |
| Niger |
| Nigeria |
| Niue |
| Norfolk Island |
| North Korea |
| North Macedonia |
| Northern Mariana Islands |
| Norway |
| Oman |
| Pakistan |
| Palau |
| Palestinian Territory Occupied |
| Panama |
| Papua new Guinea |
| Paraguay |
| Peru |
| Philippines |
| Pitcairn Island |
| Poland |
| Portugal |
| Puerto Rico |
| Qatar |
| Reunion |
| Romania |
| Russia |
| Rwanda |
| Saint Helena |
| Saint Kitts And Nevis |
| Saint Lucia |
| Saint Pierre and Miquelon |
| Saint Vincent And The Grenadines |
| Saint-Barthelemy |
| Saint-Martin (French part) |
| Samoa |
| San Marino |
| Sao Tome and Principe |
| Saudi Arabia |
| Senegal |
| Serbia |
| Seychelles |
| Sierra Leone |
| Singapore |
| Sint Maarten (Dutch part) |
| Slovakia |
| Slovenia |
| Solomon Islands |
| Somalia |
| South Africa |
| South Georgia |
| South Korea |
| South Sudan |
| Spain |
| Sri Lanka |
| Sudan |
| Suriname |
| Svalbard And Jan Mayen Islands |
| Swaziland |
| Sweden |
| Switzerland |
| Syria |
| Taiwan |
| Tajikistan |
| Tanzania |
| Thailand |
| The Bahamas |
| Togo |
| Tokelau |
| Tonga |
| Trinidad And Tobago |
| Tunisia |
| Türkiye |
| Turkmenistan |
| Turks And Caicos Islands |
| Tuvalu |
| Uganda |
| Ukraine |
| United Arab Emirates |
| United Kingdom |
| United States |
| United States Minor Outlying Islands |
| Uruguay |
| Uzbekistan |
| Vanuatu |
| Vatican City State (Holy See) |
| Venezuela |
| Vietnam |
| Virgin Islands (British) |
| Virgin Islands (US) |
| Wallis And Futuna Islands |
| Western Sahara |
| Yemen |
| Zambia |
| Zimbabwe |
### Noms de Sections
YAMLResume supporte les sections suivantes, chacune avec un nom de section.
| English |
| ------------ |
| Awards |
| Basics |
| Certificates |
| Education |
| Interests |
| Languages |
| Location |
| Profiles |
| Projects |
| Publications |
| References |
| Skills |
| Volunteer |
| Work |
### Niveaux de Compétences
YAMLResume présente les options de niveau de compétences suivantes pour la section Compétences.
| English |
| ------------ |
| Novice |
| Beginner |
| Intermediate |
| Advanced |
| Expert |
| Master |
### Termes
YAMLResume utilise certains termes fixes dans notre modèle de CV.
| Terme | description |
| -------- | ---------------------------------------------------------------------------------- |
| Courses | utilisé dans la section Éducation pour les cours |
| Keywords | utilisé dans les sections Travail, Projets où une liste de mots-clés est présentée |
| Score | utilisé dans la section Éducation pour la note/score à l'école |
# Français
URL: (/fr/docs/locale/french)
Le français est une [langue romane](https://fr.wikipedia.org/wiki/Langues_romanes)
de la famille indo-européenne. Bien qu'il partage l'alphabet latin avec l'anglais, il
possède des caractéristiques distinctes en matière de typographie, de ponctuation et de grammaire qui
nécessitent des considérations spécifiques pour YAMLResume.
## Linguistique
### Jeu de caractères
Le français utilise les 26 lettres de l'[alphabet latin](https://fr.wikipedia.org/wiki/Alphabet_latin) de base,
avec quatre signes diacritiques apparaissant sur les voyelles (accent circonflexe, tréma, accent grave, accent aigu)
et la cédille apparaissant sous le « ç ». Il existe également deux ligatures, « œ » et « æ ».
| Caractéristique | Jeu de caractères anglais | Jeu de caractères français |
| ----------------------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------- |
| **Alphabet** | 26 lettres (`a-z`) | 26 lettres plus des lettres avec diacritiques et ligatures |
| **Diacritiques** | Aucun | Aigu (`é`), grave (`à`, `è`, `ù`), circonflexe (`â`, `ê`, `î`, `ô`, `û`), tréma (`ë`, `ï`, `ü`, `ÿ`), cédille (`ç`) |
| **Caractères spéciaux** | Limité aux caractères latins de base | Comprend les ligatures `œ` (par ex. « cœur ») et `æ` (par ex. « ex æquo ») |
### Idiomes
#### Date
Les jours de la semaine et les mois ne prennent pas de majuscule en français (contrairement à l'anglais). Par
exemple, « Sep 2021 » en anglais se traduit par « sept. 2021 » en français.
YAMLResume utilise uniquement les mois, d'où le tableau de traduction :
| English | French |
| --------------- | ----------------- |
| January (Jan) | janvier (janv.) |
| February (Feb) | février (févr.) |
| March (Mar) | mars (mars) |
| April (Apr) | avril (avr.) |
| May (May) | mai (mai) |
| June (Jun) | juin (juin) |
| July (Jul) | juillet (juil.) |
| August (Aug) | août (août) |
| September (Sep) | septembre (sept.) |
| October (Oct) | octobre (oct.) |
| November (Nov) | novembre (nov.) |
| December (Dec) | décembre (déc.) |
#### Capitalisation
Le français suit généralement la casse de phrase pour les titres et les en-têtes, mais YAMLResume
fournit des termes avec majuscules pour assurer la cohérence avec les normes des CV.
Une différence notable est que les langues et les nationalités utilisées comme adjectifs
ne prennent pas de majuscule en français standard (par ex. « je parle français »), mais elles
prennent une majuscule lorsqu'elles font référence au nom (la langue elle-même) dans les listes de
YAMLResume par souci de cohérence.
### Composition
#### Ponctuation
Le français a des règles spécifiques concernant l'espacement autour des signes de ponctuation :
* **Ponctuation haute** : Le deux-points (`:`), le point-virgule (`;`), le point d'exclamation
(`!`) et le point d'interrogation (`?`) nécessitent une espace insécable avant eux.
* **Guillemets** : Le français utilise les guillemets (`«` et `»`) avec des espaces insécables
à l'intérieur (par ex. `« Bonjour »`).
* **Séparateur décimal** : Le français utilise une virgule comme séparateur décimal (par ex.
3,14).
* **Séparateur de milliers** : Le français utilise une espace insécable comme séparateur de
milliers (par ex. 1 000).
YAMLResume gère l'espacement des deux-points spécifiquement pour les mises en page françaises (par ex. ` :`).
## Traductions
YAMLResume adopte les traductions suivantes pour diverses options et termes utilisés
dans les CV français.
### Diplômes d'études
| English | French |
| ------------- | ------------------------------------ |
| Middle School | Collège |
| High School | Lycée |
| Diploma | Diplôme |
| Associate | Diplôme universitaire de technologie |
| Bachelor | Licence |
| Master | Master |
| Doctor | Doctorat |
### Langues
| English | French |
| ----------- | ----------- |
| Afrikaans | Afrikaans |
| Albanian | Albanais |
| Amharic | Amharique |
| Arabic | Arabe |
| Azerbaijani | Azéri |
| Belarusian | Biélorusse |
| Bengali | Bengali |
| Bhojpuri | Bhojpuri |
| Bulgarian | Bulgare |
| Burmese | Birman |
| Cantonese | Cantonais |
| Catalan | Catalan |
| Chinese | Chinois |
| Croatian | Croate |
| Czech | Tchèque |
| Danish | Danois |
| Dutch | Néerlandais |
| English | Anglais |
| Estonian | Estonien |
| Farsi | Persan |
| Filipino | Filipino |
| Finnish | Finnois |
| French | Français |
| German | Allemand |
| Greek | Grec |
| Gujarati | Gujarati |
| Hausa | Haoussa |
| Hebrew | Hébreu |
| Hindi | Hindi |
| Hungarian | Hongrois |
| Icelandic | Islandais |
| Igbo | Igbo |
| Indonesian | Indonésien |
| Irish | Irlandais |
| Italian | Italien |
| Japanese | Japonais |
| Javanese | Javanais |
| Kazakh | Kazakh |
| Khmer | Khmer |
| Korean | Coréen |
| Lahnda | Lahnda |
| Latvian | Letton |
| Lithuanian | Lituanien |
| Malay | Malais |
| Mandarin | Mandarin |
| Marathi | Marathi |
| Nepali | Népalais |
| Norwegian | Norvégien |
| Oromo | Oromo |
| Pashto | Pachto |
| Polish | Polonais |
| Portuguese | Portugisisk |
| Romanian | Roumain |
| Russian | Russe |
| Serbian | Serbe |
| Shona | Shona |
| Sinhala | Cingalais |
| Slovak | Slovaque |
| Slovene | Slovène |
| Somali | Somali |
| Spanish | Espagnol |
| Sundanese | Soundanais |
| Swahili | Swahili |
| Swedish | Suédois |
| Tagalog | Tagalog |
| Tamil | Tamoul |
| Telugu | Telugu |
| Thai | Thaï |
| Turkish | Turc |
| Ukrainian | Ukrainien |
| Urdu | Ourdou |
| Uzbek | Ouzbek |
| Vietnamese | Vietnamien |
| Yoruba | Yoruba |
| Zulu | Zoulou |
### Maîtrise des langues
| English | French |
| -------------------------------- | ---------------------------- |
| Elementary Proficiency | Niveau élémentaire |
| Limited Working Proficiency | Niveau de travail limité |
| Minimum Professional Proficiency | Niveau professionnel minimum |
| Full Professional Proficiency | Niveau professionnel complet |
| Native or Bilingual Proficiency | Niveau natif ou bilingue |
### Localisation (Pays et régions)
| English | French |
| ------------------------------------ | ------------------------------------------ |
| Afghanistan | Afghanistan |
| Aland Islands | Îles Åland |
| Albania | Albanie |
| Algeria | Algérie |
| American Samoa | Samoa américaines |
| Andorra | Andorre |
| Angola | Angola |
| Anguilla | Anguilla |
| Antarctica | Antarctique |
| Antigua And Barbuda | Antigua-et-Barbuda |
| Argentina | Argentine |
| Armenia | Arménie |
| Aruba | Aruba |
| Australia | Australie |
| Austria | Autriche |
| Azerbaijan | Azerbaïdjan |
| Bahrain | Bahreïn |
| Bangladesh | Bangladesh |
| Barbados | Barbade |
| Belarus | Biélorussie |
| Belgium | Belgique |
| Belize | Belize |
| Benin | Bénin |
| Bermuda | Bermudes |
| Bhutan | Bhoutan |
| Bolivia | Bolivie |
| Bonaire, Sint Eustatius and Saba | Bonaire, Saint-Eustache et Saba |
| Bosnia and Herzegovina | Bosnie-Herzégovine |
| Botswana | Botswana |
| Bouvet Island | Île Bouvet |
| Brazil | Brésil |
| British Indian Ocean Territory | Territoire britannique de l'océan Indien |
| Brunei | Brunéi |
| Bulgaria | Bulgarie |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Cambodge |
| Cameroon | Cameroun |
| Canada | Canada |
| Cape Verde | Cap-Vert |
| Cayman Islands | Îles Caïmans |
| Central African Republic | République centrafricaine |
| Chad | Tchad |
| Chile | Chili |
| China | Chine |
| Christmas Island | Île Christmas |
| Cocos (Keeling) Islands | Îles Cocos (Keeling) |
| Colombia | Colombie |
| Comoros | Comores |
| Congo | Congo |
| Cook Islands | Îles Cook |
| Costa Rica | Costa Rica |
| Cote D'Ivoire (Ivory Coast) | Côte d'Ivoire |
| Croatia | Croatie |
| Cuba | Cuba |
| Curaçao | Curaçao |
| Cyprus | Chypre |
| Czech Republic | République tchèque |
| Democratic Republic of the Congo | République démocratique du Congo |
| Denmark | Danemark |
| Djibouti | Djibouti |
| Dominica | Dominique |
| Dominican Republic | République dominicaine |
| East Timor | Timor oriental |
| Ecuador | Équateur |
| Egypt | Égypte |
| El Salvador | Salvador |
| Equatorial Guinea | Guinée équatoriale |
| Eritrea | Érythrée |
| Estonia | Estonie |
| Ethiopia | Éthiopie |
| Falkland Islands | Îles Malouines |
| Faroe Islands | Îles Féroé |
| Fiji Islands | Fidji |
| Finland | Finlande |
| France | France |
| French Guiana | Guyane française |
| French Polynesia | Polynésie française |
| French Southern Territories | Terres australes françaises |
| Gabon | Gabon |
| Gambia The | Gambie |
| Georgia | Géorgie |
| Germany | Allemagne |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Grèce |
| Greenland | Groenland |
| Grenada | Grenade |
| Guadeloupe | Guadeloupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernesey et Alderney |
| Guinea | Guinée |
| Guinea-Bissau | Guinée-Bissau |
| Guyana | Guyana |
| Haiti | Haïti |
| Heard Island and McDonald Islands | Îles Heard-et-MacDonald |
| Honduras | Honduras |
| Hong Kong S.A.R. | Hong Kong S.A.R. |
| Hungary | Hongrie |
| Iceland | Islande |
| India | Inde |
| Indonesia | Indonésie |
| Iran | Iran |
| Iraq | Irak |
| Ireland | Irlande |
| Israel | Israël |
| Italy | Italie |
| Jamaica | Jamaïque |
| Japan | Japon |
| Jersey | Jersey |
| Jordan | Jordanie |
| Kazakhstan | Kazakhstan |
| Kenya | Kenya |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Koweït |
| Kyrgyzstan | Kirghizistan |
| Laos | Laos |
| Latvia | Lettonie |
| Lebanon | Liban |
| Lesotho | Lesotho |
| Liberia | Libéria |
| Libya | Libye |
| Liechtenstein | Liechtenstein |
| Lithuania | Lituanie |
| Luxembourg | Luxembourg |
| Macau S.A.R. | Macao S.A.R. |
| Madagascar | Madagascar |
| Malawi | Malawi |
| Malaysia | Malaisie |
| Maldives | Maldives |
| Mali | Mali |
| Malta | Malte |
| Man (Isle of) | Île de Man |
| Marshall Islands | Îles Marshall |
| Martinique | Martinique |
| Mauritania | Mauritanie |
| Mauritius | Maurice |
| Mayotte | Mayotte |
| Mexico | Mexique |
| Micronesia | Micronésie |
| Moldova | Moldavie |
| Monaco | Monaco |
| Mongolia | Mongolie |
| Montenegro | Monténégro |
| Montserrat | Montserrat |
| Morocco | Maroc |
| Mozambique | Mozambique |
| Myanmar | Myanmar |
| Namibia | Namibie |
| Nauru | Nauru |
| Nepal | Népal |
| Netherlands | Pays-Bas |
| New Caledonia | Nouvelle-Calédonie |
| New Zealand | Nouvelle-Zélande |
| Nicaragua | Nicaragua |
| Niger | Niger |
| Nigeria | Nigéria |
| Niue | Niue |
| Norfolk Island | Île Norfolk |
| North Korea | Corée du Nord |
| North Macedonia | Macédoine du Nord |
| Northern Mariana Islands | Îles Mariannes du Nord |
| Norway | Norvège |
| Oman | Oman |
| Pakistan | Pakistan |
| Palau | Palaos |
| Palestinian Territory Occupied | Palestine |
| Panama | Panama |
| Papua new Guinea | Papouasie-Nouvelle-Guinée |
| Paraguay | Paraguay |
| Peru | Pérou |
| Philippines | Philippines |
| Pitcairn Island | Îles Pitcairn |
| Poland | Pologne |
| Portugal | Portugal |
| Puerto Rico | Porto Rico |
| Qatar | Qatar |
| Reunion | La Réunion |
| Romania | Roumanie |
| Russia | Russie |
| Rwanda | Rwanda |
| Saint Helena | Sainte-Hélène |
| Saint Kitts And Nevis | Saint-Christophe-et-Niévès |
| Saint Lucia | Sainte-Lucie |
| Saint Pierre and Miquelon | Saint-Pierre-et-Miquelon |
| Saint Vincent And The Grenadines | Saint-Vincent-et-les-Grenadines |
| Saint-Barthelemy | Saint-Barthélemy |
| Saint-Martin (French part) | Saint-Martin |
| Samoa | Samoa |
| San Marino | Saint-Marin |
| Sao Tome and Principe | Sao Tomé-et-Principe |
| Saudi Arabia | Arabie saoudite |
| Senegal | Sénégal |
| Serbia | Serbie |
| Seychelles | Seychelles |
| Sierra Leone | Sierra Leone |
| Singapore | Singapour |
| Sint Maarten (Dutch part) | Saint-Martin |
| Slovakia | Slovaquie |
| Slovenia | Slovénie |
| Solomon Islands | Îles Salomon |
| Somalia | Somalie |
| South Africa | Afrique du Sud |
| South Georgia | Géorgie du Sud-et-les Îles Sandwich du Sud |
| South Korea | Corée du Sud |
| South Sudan | Soudan du Sud |
| Spain | Espagne |
| Sri Lanka | Sri Lanka |
| Sudan | Soudan |
| Suriname | Suriname |
| Svalbard And Jan Mayen Islands | Svalbard et Jan Mayen |
| Swaziland | Swaziland |
| Sweden | Suède |
| Switzerland | Suisse |
| Syria | Syrie |
| Taiwan | Taïwan |
| Tajikistan | Tadjikistan |
| Tanzania | Tanzanie |
| Thailand | Thaïlande |
| The Bahamas | Bahamas |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinité-et-Tobago |
| Tunisia | Tunisie |
| Türkiye | Turquie |
| Turkmenistan | Turkménistan |
| Turks And Caicos Islands | Îles Turques-et-Caïques |
| Tuvalu | Tuvalu |
| Uganda | Ouganda |
| Ukraine | Ukraine |
| United Arab Emirates | Émirats arabes unis |
| United Kingdom | Royaume-Uni |
| United States | États-Unis |
| United States Minor Outlying Islands | Îles mineures éloignées des États-Unis |
| Uruguay | Uruguay |
| Uzbekistan | Ouzbékistan |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Vatican |
| Venezuela | Venezuela |
| Vietnam | Viêt Nam |
| Virgin Islands (British) | Îles Vierges britanniques |
| Virgin Islands (US) | Îles Vierges américaines |
| Wallis And Futuna Islands | Wallis-et-Futuna |
| Western Sahara | Sahara occidental |
| Yemen | Yémen |
| Zambia | Zambie |
| Zimbabwe | Zimbabwe |
### Noms de section
| English | French |
| ------------ | -------------------------- |
| Awards | Récompenses |
| Basics | Informations de base |
| Certificates | Certificats |
| Education | Formation |
| Interests | Centres d'intérêt |
| Languages | Langues |
| Projects | Projets |
| Publications | Publications |
| References | Références |
| Skills | Compétences |
| Volunteer | Bénévolat |
| Work | Expérience professionnelle |
### Niveaux de compétence
| English | French |
| ------------ | ------------- |
| Novice | Novice |
| Beginner | Débutant |
| Intermediate | Intermédiaire |
| Advanced | Avancé |
| Expert | Expert |
| Master | Maître |
### Options et termes
| English | French |
| -------- | --------- |
| Courses | Cours |
| Keywords | Mots-clés |
| Score | Score |
# Allemand
URL: (/fr/docs/locale/german)
L'allemand (Deutsch) est une
[langue germanique occidentale](https://fr.wikipedia.org/wiki/Langues_germaniques_occidentales)
principalement parlée en Europe centrale. C'est la langue la plus parlée et
officielle ou co-officielle en Allemagne, en Autriche, en Suisse, dans le Tyrol
du Sud en Italie, dans la Communauté germanophone de Belgique et au
Liechtenstein.
## Linguistique
### Jeu de caractères
| Fonctionnalité | Jeu de caractères anglais | Jeu de caractères allemand |
| ----------------------- | ------------------------------------ | ----------------------------------------------------------- |
| **Alphabet** | 26 lettres (`a-z`) | 26 lettres plus les lettres avec tréma (Umlaut) et l'Eszett |
| **Diacritiques** | Aucun | Tréma/Umlaut (`ä`, `ö`, `ü`) |
| **Caractères spéciaux** | Limité aux caractères latins de base | Inclut l'Eszett `ß` |
## Idiomes
### Date
Les dates allemandes sont formatées avec le jour, le mois et l'année. Les noms
de mois prennent une majuscule.
| Anglais | Allemand |
| --------- | --------- |
| January | Januar |
| February | Februar |
| March | März |
| April | April |
| May | Mai |
| June | Juni |
| July | Juli |
| August | August |
| September | September |
| October | Oktober |
| November | November |
| December | Dezember |
### Emplacement
Dans les adresses allemandes, le numéro de maison suit généralement le nom de la
rue, et le code postal précède le nom de la ville.
Voici l'ordre typique en allemand :
1. **Rue et numéro de maison** : Le nom de la rue vient en premier, suivi du
numéro de la maison (par exemple, "Musterstraße 123").
2. **Code postal et ville** : Le code postal à 5 chiffres (*Postleitzahl* ou
PLZ) vient *avant* le nom de la ville (par exemple, "10115 Berlin").
3. **État** : Contrairement à d'autres pays, l'état fédéral (*Bundesland*) est
généralement omis dans les adresses standard.
4. **Pays** : Le nom du pays est placé sur la dernière ligne.
### Capitalisation
L'allemand est unique parmi les langues principales car il met une majuscule à
**tous les noms**, qu'il s'agisse de noms propres ou de noms communs (par
exemple, *Haus*, *Apfel*, *Freiheit*).
Les autres parties du discours, telles que les adjectifs et les verbes, sont
généralement en minuscules à moins qu'ils ne soient nominalisés (utilisés comme
un nom) ou apparaissent au début d'une phrase.
De plus, le "vous" formel (*Sie*) et ses formes possessives (*Ihr*) prennent
toujours une majuscule dans la correspondance et l'écriture formelle.
### Composition
#### Ponctuation
Les règles de ponctuation allemandes diffèrent considérablement de l'anglais
dans plusieurs domaines :
* **Guillemets** :
* Le style allemand standard ("Gänsefüßchen") utilise une marque d'ouverture
basse et une marque de fermeture haute : `„` (U+201E) et `“` (U+201C).
Exemple : „Zitat“.
* Un style alternatif (souvent dans les livres) utilise des guillemets
pointant **vers l'intérieur** : `»` (U+00BB) et `«` (U+00AB). Exemple :
»Zitat«. (Contrairement au français `« Zitat »`).
* **Apostrophe** :
* Elle n'est généralement **pas** utilisée pour le 's' génitif (par exemple,
"Deutschland**s** Hauptstadt", pas "Deutschland's").
* Elle est utilisée pour indiquer les lettres omises (par exemple, "Wie
geht’s?").
* **Virgule** :
* Les virgules sont obligatoires pour séparer les propositions subordonnées
(*Nebensätze*) des propositions principales.
* **Nombres** :
* **Séparateur décimal** : L'allemand utilise une virgule (par exemple,
`12,34`).
* **Séparateur de milliers** : L'allemand utilise un point ou une espace (par
exemple, `1.234` ou `1 234`).
## Traductions
YAMLResume adopte les traductions suivantes pour diverses options et termes
utilisés dans les CV allemands.
### Diplômes universitaires
| Anglais | Allemand |
| ------------- | ---------------------- |
| Middle School | Mittlere Reife |
| High School | Abitur |
| Diploma | Diplom |
| Associate | Fachhochschulabschluss |
| Bachelor | Bachelor |
| Master | Master |
| Doctor | Doktor |
| Afrikaans | Afrikaans |
### Langues
| Anglais | Allemand |
| ----------- | ----------------- |
| Afrikaans | Afrikaans |
| Albanian | Albanisch |
| Amharic | Amharisch |
| Arabic | Arabisch |
| Azerbaijani | Aserbaidschanisch |
| Belarusian | Belarussisch |
| Bengali | Bengalisch |
| Bhojpuri | Bhojpuri |
| Bulgarian | Bulgarisch |
| Burmese | Birmanisch |
| Cantonese | Kantonesisch |
| Catalan | Katalanisch |
| Chinese | Chinesisch |
| Croatian | Kroatisch |
| Czech | Tschechisch |
| Danish | Dänisch |
| Dutch | Niederländisch |
| Anglais | Englisch |
| Estonian | Estnisch |
| Farsi | Farsi |
| Filipino | Philippinisch |
| Finnish | Finnisch |
| French | Französisch |
| Allemand | Deutsch |
| Greek | Griechisch |
| Gujarati | Gujarati |
| Hausa | Hausa |
| Hebrew | Hebräisch |
| Hindi | Hindi |
| Hungarian | Ungarisch |
| Icelandic | Isländisch |
| Igbo | Igbo |
| Indonesian | Indonesisch |
| Irish | Irisch |
| Italian | Italienisch |
| Japanese | Japanisch |
| Javanese | Javanisch |
| Kazakh | Kasachisch |
| Khmer | Khmer |
| Korean | Koreanisch |
| Lahnda | Lahnda |
| Latvian | Lettisch |
| Lithuanian | Litauisch |
| Malay | Malaiisch |
| Mandarin | Mandarin |
| Marathi | Marathi |
| Nepali | Nepalesisch |
| Norwegian | Norwegisch |
| Oromo | Oromo |
| Pashto | Paschtu |
| Polish | Polnisch |
| Portuguese | Portugiesisch |
| Romanian | Rumänisch |
| Russian | Russisch |
| Serbian | Serbisch |
| Shona | Shona |
| Sinhala | Singhalesisch |
| Slovak | Slowakisch |
| Slovene | Slowenisch |
| Somali | Somalisch |
| Spanish | Spanisch |
| Sundanese | Sundanesisch |
| Swahili | Suaheli |
| Swedish | Schwedisch |
| Tagalog | Tagalog |
| Tamil | Tamil |
| Telugu | Telugu |
| Thai | Thailändisch |
| Turkish | Türkisch |
| Ukrainian | Ukrainisch |
| Urdu | Urdu |
| Uzbek | Usbekisch |
| Vietnamese | Vietnamesisch |
| Yoruba | Yoruba |
| Zulu | Zulu |
### Maîtrise des langues
| Anglais | Allemand |
| -------------------------------- | ------------------------------- |
| Elementary Proficiency | Grundkenntnisse |
| Limited Working Proficiency | Gute Kenntnisse |
| Minimum Professional Proficiency | Berufliche Grundkenntnisse |
| Full Professional Proficiency | Verhandlungssichere Kenntnisse |
| Native or Bilingual Proficiency | Muttersprache oder zweisprachig |
### Emplacement (Pays et Régions)
| Anglais | Allemand |
| --------------------------------- | ----------------------------------------- |
| Afghanistan | Afghanistan |
| Aland Islands | Åland |
| Albania | Albanien |
| Algeria | Algerien |
| American Samoa | Amerikanisch-Samoa |
| Andorra | Andorra |
| Angola | Angola |
| Anguilla | Anguilla |
| Antarctica | Antarktis |
| Antigua And Barbuda | Antigua und Barbuda |
| Argentina | Argentinien |
| Armenia | Armenien |
| Aruba | Aruba |
| Australia | Australien |
| Austria | Österreich |
| Azerbaijan | Aserbaidschan |
| Bahrain | Bahrain |
| Bangladesh | Bangladesch |
| Barbados | Barbados |
| Belarus | Belarus |
| Belgium | Belgien |
| Belize | Belize |
| Benin | Benin |
| Bermuda | Bermuda |
| Bhutan | Bhutan |
| Bolivia | Bolivien |
| Bonaire, Sint Eustatius and Saba | Bonaire, Sint Eustatius und Saba |
| Bosnia and Herzegovina | Bosnien und Herzegowina |
| Botswana | Botswana |
| Bouvet Island | Bouvetinsel |
| Brazil | Brasilien |
| British Indian Ocean Territory | Britisches Territorium im Indischen Ozean |
| Brunei | Brunei |
| Bulgaria | Bulgarien |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Kambodscha |
| Cameroon | Kamerun |
| Canada | Kanada |
| Cape Verde | Kap Verde |
| Cayman Islands | Kaimaninseln |
| Central African Republic | Zentralafrikanische Republik |
| Chad | Tschad |
| Chile | Chile |
| China | China |
| Christmas Island | Weihnachtsinsel |
| Cocos (Keeling) Islands | Kokosinseln |
| Colombia | Kolumbien |
| Comoros | Komoren |
| Congo | Kongo |
| Cook Islands | Cookinseln |
| Costa Rica | Costa Rica |
| Croatia | Kroatien |
| Cuba | Kuba |
| Curaçao | Curaçao |
| Cyprus | Zypern |
| Czech Republic | Tschechien |
| Democratic Republic of the Congo | Demokratische Republik Kongo |
| Denmark | Dänemark |
| Djibouti | Dschibuti |
| Dominica | Dominica |
| Dominican Republic | Dominikanische Republik |
| East Timor | Osttimor |
| Ecuador | Ecuador |
| Egypt | Ägypten |
| El Salvador | El Salvador |
| Equatorial Guinea | Äquatorialguinea |
| Eritrea | Eritrea |
| Estonia | Estland |
| Ethiopia | Äthiopien |
| Falkland Islands | Falklandinseln |
| Faroe Islands | Färöer |
| Fiji Islands | Fidschi |
| Finland | Finnland |
| France | Frankreich |
| French Guiana | Französisch-Guayana |
| French Polynesia | Französisch-Polynesien |
| French Southern Territories | Französische Süd- und Antarktisgebiete |
| Gabon | Gabun |
| Gambia The | Gambia |
| Georgia | Georgien |
| Germany | Deutschland |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Griechenland |
| Greenland | Grönland |
| Grenada | Grenada |
| Guadeloupe | Guadeloupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernsey und Alderney |
| Guinea | Guinea |
| Guinea-Bissau | Guinea-Bissau |
| Guyana | Guyana |
| Haiti | Haiti |
| Heard Island and McDonald Islands | Heard und McDonaldinseln |
| Honduras | Honduras |
| Hong Kong | Hongkong |
| Hungary | Ungarn |
| Iceland | Island |
| India | Indien |
| Indonesia | Indonesien |
| Iran | Iran |
| Iraq | Irak |
| Ireland | Irland |
| Israel | Israel |
| Italy | Italien |
| Jamaica | Jamaika |
| Japan | Japan |
| Jersey | Jersey |
| Jordan | Jordanien |
| Kazakhstan | Kasachstan |
| Kenya | Kenia |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Kuwait |
| Kyrgyzstan | Kirgisistan |
| Laos | Laos |
| Latvia | Lettland |
| Lebanon | Libanon |
| Lesotho | Lesotho |
| Liberia | Liberia |
| Libya | Libyen |
| Liechtenstein | Liechtenstein |
| Lithuania | Litauen |
| Luxembourg | Luxemburg |
| Macau | Macau |
| Madagascar | Madagaskar |
| Malawi | Malawi |
| Malaysia | Malaysia |
| Maldives | Malediven |
| Mali | Mali |
| Malta | Malta |
| Man (Isle of) | Isle of Man |
| Marshall Islands | Marshallinseln |
| Martinique | Martinique |
| Mauritania | Mauretanien |
| Mauritius | Mauritius |
| Mayotte | Mayotte |
| Mexico | Mexiko |
| Micronesia | Mikronesien |
| Moldova | Moldawien |
| Monaco | Monaco |
| Mongolia | Mongolei |
| Montenegro | Montenegro |
| Montserrat | Montserrat |
| Morocco | Marokko |
| Mozambique | Mosambik |
| Myanmar | Myanmar |
| Namibia | Namibia |
| Nauru | Nauru |
| Nepal | Nepal |
| Netherlands | Niederlande |
| New Caledonia | Neukaledonien |
| New Zealand | Neuseeland |
| Nicaragua | Nicaragua |
| Niger | Niger |
| Nigeria | Nigeria |
| Niue | Niue |
| Norfolk Island | Norfolkinsel |
| North Korea | Nordkorea |
| North Macedonia | Nordmazedonien |
| Northern Mariana Islands | Nördliche Marianen |
| Norway | Norwegen |
| Oman | Oman |
| Pakistan | Pakistan |
| Palau | Palau |
| Palestinian Territory Occupied | Palästinensische Gebiete |
| Panama | Panama |
| Papua new Guinea | Papua-Neuguinea |
| Paraguay | Paraguay |
| Peru | Peru |
| Philippines | Philippinen |
| Pitcairn Island | Pitcairninseln |
| Poland | Polen |
| Portugal | Portugal |
| Puerto Rico | Puerto Rico |
| Qatar | Katar |
| Reunion | Réunion |
| Romania | Rumänien |
| Russia | Russland |
| Rwanda | Ruanda |
| Saint Helena | St. Helena |
| Saint Kitts And Nevis | St. Kitts und Nevis |
| Saint Lucia | St. Lucia |
| Saint Pierre and Miquelon | Saint-Pierre und Miquelon |
| Saint Vincent And The Grenadines | St. Vincent und die Grenadinen |
| Saint-Barthelemy | Saint-Barthélemy |
| Saint-Martin (French part) | Saint-Martin (französischer Teil) |
| Samoa | Samoa |
| San Marino | San Marino |
| Sao Tome and Principe | São Tomé und Príncipe |
| Saudi Arabia | Saudi-Arabien |
| Senegal | Senegal |
| Serbia | Serbien |
| Seychelles | Seychellen |
| Sierra Leone | Sierra Leone |
| Singapore | Singapur |
| Sint Maarten (Dutch part) | Sint Maarten (niederländischer Teil) |
| Slovakia | Slowakei |
| Slovenia | Slowenien |
| Solomon Islands | Salomonen |
| Somalia | Somalia |
| South Africa | Südafrika |
| South Georgia | Südgeorgien |
| South Korea | Südkorea |
| South Sudan | Südsudan |
| Spain | Spanien |
| Sri Lanka | Sri Lanka |
| Sudan | Sudan |
| Suriname | Suriname |
| Svalbard And Jan Mayen Islands | Spitzbergen und Jan Mayen |
| Swaziland | Eswatini |
| Sweden | Schweden |
| Switzerland | Schweiz |
| Syria | Syrien |
| Taiwan | Taiwan |
| Tajikistan | Tadschikistan |
| Tanzania | Tansania |
| Thailand | Thailand |
| The Bahamas | Bahamas |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinidad und Tobago |
| Tunisia | Tunesien |
| Türkiye | Türkei |
| Turkmenistan | Turkmenistan |
| Turks And Caicos Islands | Turks- und Caicosinseln |
| Tuvalu | Tuvalu |
| Uganda | Uganda |
| Ukraine | Ukraine |
| United Arab Emirates | Vereinigte Arabische Emirate |
| United Kingdom | Vereinigtes Königreich |
| United States | Vereinigte Staaten |
| Uruguay | Uruguay |
| Uzbekistan | Usbekistan |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Vatikanstadt (Heiliger Stuhl) |
| Venezuela | Venezuela |
| Vietnam | Vietnam |
| Virgin Islands (British) | Britische Jungferninseln |
| Virgin Islands (US) | Amerikanische Jungferninseln |
| Wallis And Futuna Islands | Wallis und Futuna |
| Western Sahara | Westsahara |
| Yemen | Jemen |
| Zambia | Sambia |
| Zimbabwe | Simbabwe |
### Noms de sections
| Anglais | Allemand |
| ------------ | ------------------------- |
| awards | Auszeichnungen |
| basics | Basisinformationen |
| certificates | Zertifikate |
| education | Ausbildung |
| interests | Interessen |
| languages | Sprachen |
| location | Ort |
| profiles | Profile |
| projects | Projekte |
| publications | Veröffentlichungen |
| references | Referenzen |
| skills | Fähigkeiten |
| volunteer | Ehrenamtliche Tätigkeiten |
| work | Berufserfahrung |
### Niveaux de compétence
| Anglais | Allemand |
| ------------ | --------------- |
| Novice | Einsteiger |
| Beginner | Anfänger |
| Intermediate | Fortgeschritten |
| Advanced | Erfahren |
| Expert | Experte |
| Master | Spezialist |
### Termes
| Terme | Allemand |
| -------- | --------------- |
| courses | Kurse |
| keywords | Schlüsselwörter |
| score | Punkte |
# Localisation
URL: (/fr/docs/locale)
Chaque CV possède une langue spécifique. La bonne nouvelle est que YAMLResume
est conçu pour supporter les multi-langues prêt à l'emploi.
Techniquement, il y a deux catégories de choses à faire lors du support des
multi-langues :
* **[Internationalisation](https://phrase.com/blog/posts/internationalization-vs-localization/#what-is-internationalization-i18n)** :
souvent abrégée comme "i18n" (où le nombre 18 représente les 18 caractères
entre "i" et "n"), est essentiellement un ensemble de pratiques qui permettent
à un produit de supporter multi-langues, l'i18n consiste principalement à
traduire le produit en multi-langues et à changer dynamiquement la langue
selon le choix de l'utilisateur
* **[Localisation](https://phrase.com/blog/posts/internationalization-vs-localization/#what-is-localization-l10n)** :
souvent abrégée comme "l10n" (le nombre 10 représente les caractères entre "l"
et "n"), elle va au-delà de la simple traduction et adapte plutôt le produit
aux spécificités culturelles de la langue cible.
En pratique, l'i18n vient toujours en premier, la l10n vient après.
Pour toutes les langues supportées, nous avons les préoccupations suivantes
d'une perspective de conception et d'implémentation :
* **[Linguistique](https://en.wikipedia.org/wiki/Linguistics)** : le côté
théorique d'une langue, incluant mais non limité au jeu de caractères de la
langue, syntaxe et grammaire, histoire, etc.
* **Idiomes** : conventions communes et idiomes qui sont généralement suivis
par une langue.
* **[Composition](https://en.wikipedia.org/wiki/Typesetting)** : meilleures
pratiques de composition souvent suivies par une langue, telles que
l'italique, les chiffres elzéviriens, le style de police, le crénage, la
ligature, etc.
* **Traductions** : simples traductions pour un ensemble fixe de termes et
d'options utilisés par les CV générés par YAMLResume.
## Langues supportées
YAMLResume a besoin de connaître la langue dans laquelle le CV est écrit, pour
cela, vous devez définir une clé `locale` de niveau supérieur dans votre CV :
```yml lineNumbers
---
content:
# ...
locale: # [!code highlight]
language: en # [!code highlight]
layouts:
- engine: markdown
# ...
```
## Langues supportées
Vous pouvez utiliser `yamlresume languages list` pour lister toutes les langues supportées. Au
moment de la rédaction, YAMLResume supporte les langues suivantes :
```console
$ yamlresume languages list
| locale.language | Language Name | 1:03:48 PM
| --------------- | ------------------------------- |
| en | English |
| zh-hans | Simplified Chinese |
| zh-hant-hk | Traditional Chinese (Hong Kong) |
| zh-hant-tw | Traditional Chinese (Taiwan) |
| es | Spanish |
| fr | French |
| no | Norwegian |
| nl | Dutch |
| ja | Japanese |
| de | German |
```
Consultez les pages suivantes pour plus de détails sur chaque langue :
## Glossaires
Nous avons utilisé les glossaires suivants tout au long de cette section :
* **Langues à écriture latine** : langues qui utilisent
[l'écriture latine](https://en.wikipedia.org/wiki/Latin_script) comme [système
d'écriture](https://en.wikipedia.org/wiki/Writing_system). La plupart des [langues
germaniques](https://en.wikipedia.org/wiki/Germanic_languages), [langues
romanes](https://en.wikipedia.org/wiki/Romance_languages) et de nombreuses autres
langues comme [l'indonésien](https://en.wikipedia.org/wiki/Indonesian_language)
utilisent l'écriture latine comme système d'écriture principal.
* **[CJK](https://en.wikipedia.org/wiki/CJK_characters)** : langues chinoise, japonaise et
coréenne.
* **[Jeu de caractères](https://www.creatopy.com/blog/what-is-a-character-set/)** :
la collection complète de caractères, symboles, glyphes et signes de ponctuation
disponibles dans une police de caractères spécifique.
* **[Glyphe](https://en.wikipedia.org/wiki/Glyph)** : la forme spécifique, le dessin,
ou la représentation d'un caractère en typographie.
* **[Césure](https://en.wikipedia.org/wiki/Syllabification)**, la pratique
de couper les mots en fin de ligne pour améliorer l'apparence générale et
la lisibilité du texte.
* **[Justification](https://en.wikipedia.org/wiki/Typographic_alignment#Justified)** :
l'alignement du texte à l'intérieur d'un bloc de manière à ce qu'il soit aligné à la fois sur la marge
gauche et droite, généralement obtenu en ajustant l'espacement entre les mots
et les lettres, créant une apparence uniforme sur chaque ligne de texte.
* **[Crénage](https://en.wikipedia.org/wiki/Kerning)** : le processus d'ajustement de
l'espacement entre les caractères dans une police proportionnelle, généralement pour obtenir un
résultat visuellement agréable.
* **[Ligature](https://en.wikipedia.org/wiki/Ligature_\(writing\))** : un glyphe
qui joint deux ou plus de lettres ensemble afin d'améliorer l'attrait visuel
du texte et d'obtenir une meilleure lisibilité.
# Japonais
URL: (/fr/docs/locale/japanese)
Le japonais (日本語) est une langue d'Asie de l'Est parlée principalement au
Japon. Il est membre de la famille des langues japoniques.
## Linguistique
### Jeu de caractères
Le système d'écriture japonais utilise une combinaison de trois écritures : les
kanjis (caractères chinois adoptés), les hiraganas et les katakanas. L'écriture
latine (Rōmaji) est également utilisée à certaines fins.
### Support CJK
YAMLResume détecte automatiquement le japonais comme une langue CJK et applique
des ajustements de mise en page spécifiques, tels que l'utilisation de chiffres
de style « Lining » au lieu de « OldStyle » pour mieux correspondre aux glyphes
CJK.
## Idiomes
### Date
Les dates japonaises sont formatées dans l'ordre Année, Mois et Jour, en
utilisant des compteurs spécifiques.
| Anglais | Japonais |
| --------- | -------- |
| January | 1月 |
| February | 2月 |
| March | 3月 |
| April | 4月 |
| May | 5月 |
| June | 6月 |
| July | 7月 |
| August | 8月 |
| September | 9月 |
| October | 10月 |
| November | 11月 |
| December | 12月 |
Les plages de dates utilisent le tilde pleine chasse (U+FF5E) comme séparateur
(par exemple, 2016年10月~2018年1月).
### Lieu
Dans le CV généré, les adresses japonaises suivent généralement l'ordre Pays,
Région (Préfecture), Ville, Adresse et enfin Code postal.
Remarque : Bien que les adresses japonaises standard commencent généralement par
le code postal (〒), YAMLResume l'ajoute actuellement à la fin pour des raisons
de cohérence avec les variables de structure générées.
## Typographie
### Ponctuation
Le japonais utilise des signes de ponctuation pleine chasse.
* **Virgule** : `、` (Virgule idéographique, U+3001) est utilisée à la place de
la virgule latine `,`.
* **Deux-points** : `:` (Deux-points pleine chasse, U+FF1A) est utilisé à la
place des deux-points latins `:`.
* **Séparateur** : `、` est également utilisé comme séparateur de liste.
## Traductions
YAMLResume adopte les traductions suivantes pour diverses options et termes
utilisés dans les CV japonais.
### Diplômes
| Anglais | Japonais |
| ------------- | ----------- |
| Middle School | 中学校 |
| High School | 高等学校 |
| Diploma | 短期大学・高等専門学校 |
| Associate | 準学士 |
| Bachelor | 学士 |
| Master | 修士 |
| Doctor | 博士 |
### Langues
| Anglais | Japonais |
| ----------- | --------- |
| Afrikaans | アフリカーンス語 |
| Albanian | アルバニア語 |
| Amharic | アムハラ語 |
| Arabic | アラビア語 |
| Azerbaijani | アゼルバイジャン語 |
| Belarusian | ベラルーシ語 |
| Bengali | ベンガル語 |
| Bhojpuri | ボージュプリー語 |
| Bulgarian | ブルガリア語 |
| Burmese | ビルマ語 |
| Cantonese | 広東語 |
| Catalan | カタロニア語 |
| Chinese | 中国語 |
| Croatian | クロアチア語 |
| Czech | チェコ語 |
| Danish | デンマーク語 |
| Dutch | オランダ語 |
| English | 英語 |
| Estonian | エストニア語 |
| Farsi | ペルシャ語 |
| Filipino | フィリピン語 |
| Finnish | フィンランド語 |
| French | フランス語 |
| German | ドイツ語 |
| Greek | ギリシャ語 |
| Gujarati | グジャラート語 |
| Hausa | ハウサ語 |
| Hebrew | ヘブライ語 |
| Hindi | ヒンディー語 |
| Hungarian | ハンガリー語 |
| Icelandic | アイスランド語 |
| Igbo | イボ語 |
| Indonesian | インドネシア語 |
| Irish | アイルランド語 |
| Italian | イタリア語 |
| Japanese | 日本語 |
| Javanese | ジャワ語 |
| Kazakh | カザフ語 |
| Khmer | クメール語 |
| Korean | 韓国語 |
| Lahnda | ラーンダー語 |
| Latvian | ラトビア語 |
| Lithuanian | リトアニア語 |
| Malay | マレー語 |
| Mandarin | 標準中国語 |
| Marathi | マラーティー語 |
| Nepali | ネパール語 |
| Norwegian | ノルウェー語 |
| Oromo | オロモ語 |
| Pashto | パシュトー語 |
| Polish | ポーランド語 |
| Portuguese | ポルトガル語 |
| Romanian | ルーマニア語 |
| Russian | ロシア語 |
| Serbian | セルビア語 |
| Shona | ショナ語 |
| Sinhala | シンハラ語 |
| Slovak | スロバキア語 |
| Slovene | スロベニア語 |
| Somali | ソマリ語 |
| Spanish | スペイン語 |
| Sundanese | スンダ語 |
| Swahili | スワヒリ語 |
| Swedish | スウェーデン語 |
| Tagalog | タガログ語 |
| Tamil | タミル語 |
| Telugu | テルグ語 |
| Thai | タイ語 |
| Turkish | トルコ語 |
| Ukrainian | ウクライナ語 |
| Urdu | ウルドゥー語 |
| Uzbek | ウズベク語 |
| Vietnamese | ベトナム語 |
| Yoruba | ヨルバ語 |
| Zulu | ズールー語 |
### Maîtrise de la langue
| Anglais | Japonais |
| -------------------------------- | ------------ |
| Elementary Proficiency | 初級レベル |
| Limited Working Proficiency | 限定的な実務レベル |
| Minimum Professional Proficiency | 実務レベル |
| Full Professional Proficiency | 完全な実務レベル |
| Native or Bilingual Proficiency | ネイティブ・母国語レベル |
### Lieu (Pays et Régions)
| Anglais | Japonais |
| ------------------------------------ | --------------------- |
| Afghanistan | アフガニスタン |
| Aland Islands | オーランド諸島 |
| Albania | アルバニア |
| Algeria | アルジェリア |
| American Samoa | 米領サモア |
| Andorra | アンドラ |
| Angola | アンゴラ |
| Anguilla | アンギラ |
| Antarctica | 南極 |
| Antigua And Barbuda | アンティグア・バーブーダ |
| Argentina | アルゼンチン |
| Armenia | アルメニア |
| Aruba | アルバ |
| Australia | オーストラリア |
| Austria | オーストリア |
| Azerbaijan | アゼルバイジャン |
| Bahrain | バーレーン |
| Bangladesh | バングラデシュ |
| Barbados | バルバドス |
| Belarus | ベラルーシ |
| Belgium | ベルギー |
| Belize | ベリーズ |
| Benin | ベナン |
| Bermuda | バミューダ |
| Bhutan | ブータン |
| Bolivia | ボリビア |
| Bosnia and Herzegovina | ボスニア・ヘルツェゴビナ |
| Botswana | ボツワナ |
| Bouvet Island | ブーベ島 |
| Brazil | ブラジル |
| British Indian Ocean Territory | 英領インド洋地域 |
| Brunei | ブルネイ |
| Bulgaria | ブルガリア |
| Burkina Faso | ブルキナファソ |
| Burundi | ブルンジ |
| Cambodia | カンボジア |
| Cameroon | カメルーン |
| Canada | カナダ |
| Cape Verde | カーボベルデ |
| Cayman Islands | ケイマン諸島 |
| Central African Republic | 中央アフリカ共和国 |
| Chad | チャド |
| Chile | チリ |
| China | 中国 |
| Christmas Island | クリスマス島 |
| Cocos (Keeling) Islands | ココス諸島 |
| Colombia | コロンビア |
| Comoros | コモロ |
| Congo | コンゴ共和国 |
| Cook Islands | クック諸島 |
| Costa Rica | コスタリカ |
| Croatia | クロアチア |
| Cuba | キューバ |
| Curaçao | キュラソー |
| Cyprus | キプロス |
| Czech Republic | チェコ |
| Democratic Republic of the Congo | コンゴ民主共和国 |
| Denmark | デンマーク |
| Djibouti | ジブチ |
| Dominica | ドミニカ国 |
| Dominican Republic | ドミニカ共和国 |
| East Timor | 東ティモール |
| Ecuador | エクアドル |
| Egypt | エジプト |
| El Salvador | エルサルバドル |
| Equatorial Guinea | 赤道ギニア |
| Eritrea | エリトリア |
| Estonia | エストニア |
| Ethiopia | エチオピア |
| Falkland Islands | フォークランド諸島 |
| Faroe Islands | フェロー諸島 |
| Fiji Islands | フィジー |
| Finland | フィンランド |
| France | フランス |
| French Guiana | 仏領ギアナ |
| French Polynesia | 仏領ポリネシア |
| French Southern Territories | フランス領南方・南極地域 |
| Gabon | ガボン |
| Gambia The | ガンビア |
| Georgia | ジョージア |
| Germany | ドイツ |
| Ghana | ガーナ |
| Gibraltar | ジブラルタル |
| Greece | ギリシャ |
| Greenland | グリーンランド |
| Grenada | グレナダ |
| Guadeloupe | グアドループ |
| Guam | グアム |
| Guatemala | グアテマラ |
| Guernsey and Alderney | ガーンジー |
| Guinea | ギニア |
| Guinea-Bissau | ギニアビサウ |
| Guyana | ガイアナ |
| Haiti | ハイチ |
| Heard Island and McDonald Islands | ハード島とマクドナルド諸島 |
| Honduras | ホンジュラス |
| Hong Kong | 香港 |
| Hungary | ハンガリー |
| Iceland | アイスランド |
| India | インド |
| Indonesia | インドネシア |
| Iran | イラン |
| Iraq | イラク |
| Ireland | アイルランド |
| Israel | イスラエル |
| Italy | イタリア |
| Jamaica | ジャマイカ |
| Japan | 日本 |
| Jersey | ジャージー |
| Jordan | ヨルダン |
| Kazakhstan | カザフスタン |
| Kenya | ケニア |
| Kiribati | キリバス |
| Kosovo | コソボ |
| Kuwait | クウェート |
| Kyrgyzstan | キルギス |
| Laos | ラオス |
| Latvia | ラトビア |
| Lebanon | レバノン |
| Lesotho | レソト |
| Liberia | リベリア |
| Libya | リビア |
| Liechtenstein | リヒテンシュタイン |
| Lithuania | リトアニア |
| Luxembourg | ルクセンブルク |
| Macau | マカオ |
| Madagascar | マダガスカル |
| Malawi | マラウイ |
| Malaysia | マレーシア |
| Maldives | モルディブ |
| Mali | マリ |
| Malta | マルタ |
| Man (Isle of) | マン島 |
| Marshall Islands | マーシャル諸島 |
| Martinique | マルティニーク |
| Mauritania | モーリタニア |
| Mauritius | モーリシャス |
| Mayotte | マヨット |
| Mexico | メキシコ |
| Micronesia | ミクロネシア連邦 |
| Moldova | モルドバ |
| Monaco | モナコ |
| Mongolia | モンゴル |
| Montenegro | モンテネグロ |
| Montserrat | モントセラト |
| Morocco | モロッコ |
| Mozambique | モザンビーク |
| Myanmar | ミャンマー |
| Namibia | ナミビア |
| Nauru | ナウル |
| Nepal | ネパール |
| Netherlands | オランダ |
| New Caledonia | ニューカレドニア |
| New Zealand | ニュージーランド |
| Nicaragua | ニカラグア |
| Niger | ニジェール |
| Nigeria | ナイジェリア |
| Niue | ニウエ |
| Norfolk Island | ノーフォーク島 |
| North Korea | 北朝鮮 |
| North Macedonia | 北マケドニア |
| Northern Mariana Islands | 北マリアナ諸島 |
| Norway | ノルウェー |
| Oman | オマーン |
| Pakistan | パキスタン |
| Palau | パラオ |
| Palestinian Territory Occupied | パレスチナ |
| Panama | パナマ |
| Papua new Guinea | パプアニューギニア |
| Paraguay | パラグアイ |
| Peru | ペルー |
| Philippines | フィリピン |
| Pitcairn Island | ピトケアン諸島 |
| Poland | ポーランド |
| Portugal | ポルトガル |
| Puerto Rico | プエルトリコ |
| Qatar | カタール |
| Reunion | レユニオン |
| Romania | ルーマニア |
| Russia | ロシア |
| Rwanda | ルワンダ |
| Saint Helena | セントヘレナ |
| Saint Kitts And Nevis | セントクリストファー・ネイビス |
| Saint Lucia | セントルシア |
| Saint Pierre and Miquelon | サンピエール島・ミクロン島 |
| Saint Vincent And The Grenadines | セントビンセント・グレナディーン |
| Saint-Barthelemy | サン・バルテルミー |
| Saint-Martin (French part) | サン・マルタン |
| Samoa | サモア |
| San Marino | サンマリノ |
| Sao Tome and Principe | サントメ・プリンシペ |
| Saudi Arabia | サウジアラビア |
| Senegal | セネガル |
| Serbia | セルビア |
| Seychelles | セーシェル |
| Sierra Leone | シエラレオネ |
| Singapore | シンガポール |
| Sint Maarten (Dutch part) | シント・マールテン |
| Slovakia | スロバキア |
| Slovenia | スロベニア |
| Solomon Islands | ソロモン諸島 |
| Somalia | ソマリア |
| South Africa | 南アフリカ |
| South Georgia | サウスジョージア・サウスサンドウィッチ諸島 |
| South Korea | 韓国 |
| South Sudan | 南スーダン |
| Spain | スペイン |
| Sri Lanka | スリランカ |
| Sudan | スーダン |
| Suriname | スリナム |
| Svalbard And Jan Mayen Islands | スヴァールバル諸島およびヤンマイエン島 |
| Swaziland | エスワティニ |
| Sweden | スウェーデン |
| Switzerland | スイス |
| Syria | シリア |
| Taiwan | 台湾 |
| Tajikistan | タジキスタン |
| Tanzania | タンザニア |
| Thailand | タイ |
| The Bahamas | バハマ |
| Togo | トーゴ |
| Tokelau | トケラウ |
| Tonga | トンガ |
| Trinidad And Tobago | トリニダード・トバゴ |
| Tunisia | チュニジア |
| Turkey | トルコ |
| Turkmenistan | トルクメニスタン |
| Turks And Caicos Islands | タークス・カイコス諸島 |
| Tuvalu | ツバル |
| Uganda | ウガンダ |
| Ukraine | ウクライナ |
| United Arab Emirates | アラブ首長国連邦 |
| United Kingdom | イギリス |
| United States Minor Outlying Islands | 合衆国領有小離島 |
| United States | アメリカ合衆国 |
| Uruguay | ウルグアイ |
| Uzbekistan | ウズベキスタン |
| Vanuatu | バヌアツ |
| Vatican City State (Holy See) | バチカン市国 |
| Venezuela | ベネズエラ |
| Vietnam | ベトナム |
| Virgin Islands (British) | 英領ヴァージン諸島 |
| Virgin Islands (US) | 米領ヴァージン諸島 |
| Wallis And Futuna Islands | ウォリス・フツナ |
| Western Sahara | 西サハラ |
| Yemen | イエメン |
| Zambia | ザンビア |
| Zimbabwe | ジンバブエ |
### Noms de section
| Anglais | Japonais |
| ------------ | -------- |
| awards | 受賞・表彰 |
| basics | 基本情報 |
| certificates | 資格・免状 |
| education | 学歴 |
| interests | 興味・関心 |
| languages | 言語 |
| location | 住所 |
| profiles | プロフィール |
| projects | プロジェクト |
| publications | 出版・著作 |
| references | 推薦人 |
| skills | スキル |
| volunteer | ボランティア活動 |
| work | 職歴 |
### Niveaux de compétence
| Anglais | Japonais |
| ------------ | -------- |
| Novice | 入門 |
| Beginner | 初級 |
| Intermediate | 中級 |
| Advanced | 上級 |
| Expert | エキスパート |
| Master | マスター |
### Termes
| Terme | Japonais |
| -------- | -------- |
| courses | コース |
| keywords | キーワード |
| score | 成績 |
# Norvégien
URL: (/fr/docs/locale/norwegian)
L'anglais et le norvégien sont tous deux des [langues germaniques](https://en.wikipedia.org/wiki/Germanic_languages), avec le norvégien
faisant partie de la branche germanique du Nord. Bien que les deux langues partagent certaines
fondations communes, le norvégien a des caractéristiques distinctes qui nécessitent
des considérations spécifiques pour YAMLResume.
## Linguistique
### Jeu de Caractères
Les jeux de caractères de l'anglais et du norvégien sont similaires—les deux langues
utilisent principalement l'[alphabet latin](https://en.wikipedia.org/wiki/Latin_alphabet), mais le norvégien a
des lettres supplémentaires. Voici une comparaison détaillée :
| Caractéristique | Jeu de Caractères Anglais | Jeu de Caractères Norvégien |
| ----------------------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------------ |
| **Alphabet** | 26 lettres (`a-z`) | 29 lettres (`a-z` plus `æ`, `ø`, `å`) |
| **Diacritiques** | Aucun | Trois voyelles supplémentaires (`æ`, `ø`, `å`) qui sont des lettres distinctes, pas des marques diacritiques |
| **Caractères Spéciaux** | Limité aux caractères latins de base | Inclut les trois voyelles norvégiennes supplémentaires qui sont considérées comme des lettres séparées |
Les principales différences entre les systèmes d'écriture anglais et norvégien :
* **Lettres supplémentaires** : L'alphabet norvégien inclut trois voyelles supplémentaires :
`æ`, `ø`, et `å`, qui sont des lettres distinctes avec des prononciations spécifiques.
* **Ordre des lettres** : Dans l'ordre alphabétique norvégien, ces lettres viennent à la
fin : ...x, y, z, æ, ø, å.
* **Variations de casse** : Le norvégien utilise les versions majuscules et minuscules
(`Æ/æ`, `Ø/ø`, `Å/å`).
## Expressions Idiomatiques
### Date
Les jours de la semaine et les mois ne sont pas capitalisés en norvégien (contrairement à l'anglais).
Par exemple, "Sep 2021" en anglais est traduit comme "sept. 2021" en norvégien,
avec un mois en minuscule et un point après l'abréviation.
YAMLResume utilise seulement les mois, d'où le tableau de traduction :
| English | Norwegian |
| --------------- | ----------------- |
| January (Jan) | januar (jan.) |
| February (Feb) | februar (feb.) |
| March (Mar) | mars (mar.) |
| April (Apr) | april (apr.) |
| May (May) | mai (mai) |
| June (Jun) | juni (jun.) |
| July (Jul) | juli (jul.) |
| August (Aug) | august (aug.) |
| September (Sep) | september (sept.) |
| October (Oct) | oktober (okt.) |
| November (Nov) | november (nov.) |
| December (Dec) | desember (des.) |
### Capitalisation
Le norvégien a des règles de capitalisation plus conservatrices par rapport à l'anglais.
Généralement, seuls les noms propres, le premier mot des phrases, et le pronom "I"
("jeg" en norvégien) sont capitalisés.
YAMLResume adopte en interne un ensemble fixe d'options et de termes pour tous les modèles de CV.
Par exemple, les langues dans les modèles de CV YAMLResume adoptent
[les options de maîtrise linguistique de LinkedIn](https://www.linkedin.com/pulse/language-proficiency-linkedin-duaa-ali/) :
* Elementary Proficiency
* Limited Working Proficiency
* Minimum Professional Proficiency
* Full Professional Proficiency
* Native or Bilingual Proficiency
Celles-ci sont traduites en norvégien comme suit :
* Grunnleggende nivå
* Begrenset arbeidskunnskap
* Minimum profesjonelt nivå
* Fullt profesjonelt nivå
* Morsmål eller tospråklig nivå
Seul le premier mot est capitalisé, suivant les conventions de capitalisation norvégiennes.
## Composition Typographique
### Ponctuation
Le norvégien a plusieurs différences notables dans la ponctuation par rapport à l'anglais :
* **Guillemets** : Le norvégien utilise typiquement des guillemets (`«»`) ou des
guillemets droits (`""`), et la ponctuation est généralement placée à l'extérieur des guillemets.
* **Séparateur décimal** : Le norvégien utilise une virgule comme séparateur décimal
(par exemple, 3,14) au lieu d'un point comme en anglais (3.14).
* **Séparateur de milliers** : Le norvégien utilise un espace ou un point comme séparateur de milliers
(par exemple, 1 000 ou 1.000) plutôt qu'une virgule.
* **Format de date** : Les dates norvégiennes suivent le modèle DD.MM.YYYY ou DD/MM/YYYY,
contrairement au format américain MM/DD/YYYY.
## Traductions
YAMLResume adopte les traductions suivantes pour diverses options et termes utilisés
dans les CV norvégiens.
### Diplômes d'Éducation
| English | Norwegian |
| ------------- | ------------------ |
| Middle School | Ungdomsskole |
| High School | Videregående skole |
| Diploma | Fagbrev |
| Associate | Associate |
| Bachelor | Bachelor |
| Master | Master |
| Doctor | Doktor |
### Langues
| English | Norwegian |
| ----------- | -------------- |
| Afrikaans | Afrikaans |
| Albanian | Albansk |
| Amharic | Amharisk |
| Arabic | Arabisk |
| Azerbaijani | Aserbajdsjansk |
| Belarusian | Hviterussisk |
| Bengali | Bengali |
| Bhojpuri | Bhojpuri |
| Bulgarian | Bulgarsk |
| Burmese | Burmesisk |
| Cantonese | Kantonesisk |
| Catalan | Katalansk |
| Chinese | Kinesisk |
| Croatian | Kroatisk |
| Czech | Tsjekkisk |
| Danish | Dansk |
| Dutch | Nederlandsk |
| English | Engelsk |
| Estonian | Estisk |
| Farsi | Persisk |
| Filipino | Filippinsk |
| Finnish | Finsk |
| French | Fransk |
| German | Tysk |
| Greek | Gresk |
| Gujarati | Gujarati |
| Hausa | Hausa |
| Hebrew | Hebraisk |
| Hindi | Hindi |
| Hungarian | Ungarsk |
| Icelandic | Islandsk |
| Igbo | Igbo |
| Indonesian | Indonesisk |
| Irish | Irsk |
| Italian | Italiensk |
| Japanese | Japansk |
| Javanese | Javanesisk |
| Kazakh | Kasakhisk |
| Khmer | Khmer |
| Korean | Koreansk |
| Lahnda | Lahnda |
| Latvian | Latvisk |
| Lithuanian | Litauisk |
| Malay | Malaysisk |
| Mandarin | Mandarin |
| Marathi | Marathi |
| Nepali | Nepalsk |
| Norwegian | Norsk |
| Oromo | Oromo |
| Pashto | Pashto |
| Polish | Polsk |
| Portuguese | Portugisisk |
| Romanian | Rumensk |
| Russian | Russisk |
| Serbian | Serbisk |
| Shona | Shona |
| Sinhala | Singalesisk |
| Slovak | Slovakisk |
| Slovene | Slovensk |
| Somali | Somalisk |
| Spanish | Spansk |
| Sundanese | Sundanesisk |
| Swahili | Swahili |
| Swedish | Svensk |
| Tagalog | Tagalog |
| Tamil | Tamil |
| Telugu | Telugu |
| Thai | Thai |
| Turkish | Tyrkisk |
| Ukrainian | Ukrainsk |
| Urdu | Urdu |
| Uzbek | Usbekisk |
| Vietnamese | Vietnamesisk |
| Yoruba | Yoruba |
| Zulu | Zulu |
### Niveaux de Maîtrise des Langues
| English | Norwegian |
| -------------------------------- | ----------------------------- |
| Elementary Proficiency | Grunnleggende nivå |
| Limited Working Proficiency | Begrenset arbeidskunnskap |
| Minimum Professional Proficiency | Minimum profesjonelt nivå |
| Full Professional Proficiency | Fullt profesjonelt nivå |
| Native or Bilingual Proficiency | Morsmål eller tospråklig nivå |
### Localisation (Pays et Régions)
| English | Norwegian |
| ------------------------------------ | ------------------------------------- |
| Afghanistan | Afghanistan |
| Aland Islands | Åland |
| Albania | Albania |
| Algeria | Algerie |
| American Samoa | Amerikansk Samoa |
| Andorra | Andorra |
| Angola | Angola |
| Anguilla | Anguilla |
| Antarctica | Antarktis |
| Antigua And Barbuda | Antigua og Barbuda |
| Argentina | Argentina |
| Armenia | Armenia |
| Aruba | Aruba |
| Australia | Australia |
| Austria | Østerrike |
| Azerbaijan | Aserbajdsjan |
| Bahrain | Bahrain |
| Bangladesh | Bangladesh |
| Barbados | Barbados |
| Belarus | Belarus |
| Belgium | Belgia |
| Belize | Belize |
| Benin | Benin |
| Bermuda | Bermuda |
| Bhutan | Bhutan |
| Bolivia | Bolivia |
| Bonaire, Sint Eustatius and Saba | Bonaire, Sint Eustatius og Saba |
| Bosnia and Herzegovina | Bosnia-Hercegovina |
| Botswana | Botswana |
| Bouvet Island | Bouvetøya |
| Brazil | Brasil |
| British Indian Ocean Territory | Det britiske territoriet i Indiahavet |
| Brunei | Brunei |
| Bulgaria | Bulgaria |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Kambodsja |
| Cameroon | Kamerun |
| Canada | Canada |
| Cape Verde | Kapp Verde |
| Cayman Islands | Caymanøyene |
| Central African Republic | Den sentralafrikanske republikk |
| Chad | Tsjad |
| Chile | Chile |
| China | Kina |
| Christmas Island | Christmasøya |
| Cocos (Keeling) Islands | Kokosøyene (Keelingøyene) |
| Colombia | Colombia |
| Comoros | Komorene |
| Congo | Kongo |
| Cook Islands | Cookøyene |
| Costa Rica | Costa Rica |
| Cote D'Ivoire (Ivory Coast) | Elfenbenskysten |
| Croatia | Kroatia |
| Cuba | Cuba |
| Curaçao | Curaçao |
| Cyprus | Kypros |
| Czech Republic | Tsjekkia |
| Democratic Republic of the Congo | Den demokratiske republikken Kongo |
| Denmark | Danmark |
| Djibouti | Djibouti |
| Dominica | Dominica |
| Dominican Republic | Den dominikanske republikk |
| East Timor | Øst-Timor |
| Ecuador | Ecuador |
| Egypt | Egypt |
| El Salvador | El Salvador |
| Equatorial Guinea | Ekvatorial-Guinea |
| Eritrea | Eritrea |
| Estonia | Estland |
| Ethiopia | Etiopia |
| Falkland Islands | Falklandsøyene |
| Faroe Islands | Færøyene |
| Fiji Islands | Fijiøyene |
| Finland | Finland |
| France | Frankrike |
| French Guiana | Fransk Guyana |
| French Polynesia | Fransk Polynesia |
| French Southern Territories | Franske sørlige territorier |
| Gabon | Gabon |
| Gambia The | Gambia |
| Georgia | Georgia |
| Germany | Tyskland |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Hellas |
| Greenland | Grønland |
| Grenada | Grenada |
| Guadeloupe | Guadeloupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernsey og Alderney |
| Guinea | Guinea |
| Guinea-Bissau | Guinea-Bissau |
| Guyana | Guyana |
| Haiti | Haiti |
| Heard Island and McDonald Islands | Heard- og McDonaldøyene |
| Honduras | Honduras |
| Hong Kong S.A.R. | Hong Kong S.A.R. |
| Hungary | Ungarn |
| Iceland | Island |
| India | India |
| Indonesia | Indonesia |
| Iran | Iran |
| Iraq | Irak |
| Ireland | Irland |
| Israel | Israel |
| Italy | Italia |
| Jamaica | Jamaica |
| Japan | Japan |
| Jersey | Jersey |
| Jordan | Jordan |
| Kazakhstan | Kasakhstan |
| Kenya | Kenya |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Kuwait |
| Kyrgyzstan | Kirgisistan |
| Laos | Laos |
| Latvia | Latvia |
| Lebanon | Libanon |
| Lesotho | Lesotho |
| Liberia | Liberia |
| Libya | Libya |
| Liechtenstein | Liechtenstein |
| Lithuania | Litauen |
| Luxembourg | Luxembourg |
| Macau S.A.R. | Macau S.A.R. |
| Madagascar | Madagaskar |
| Malawi | Malawi |
| Malaysia | Malaysia |
| Maldives | Maldivene |
| Mali | Mali |
| Malta | Malta |
| Man (Isle of) | Man (Isle of) |
| Marshall Islands | Marshalløyene |
| Martinique | Martinique |
| Mauritania | Mauritania |
| Mauritius | Mauritius |
| Mayotte | Mayotte |
| Mexico | Mexico |
| Micronesia | Mikronesia |
| Moldova | Moldova |
| Monaco | Monaco |
| Mongolia | Mongolia |
| Montenegro | Montenegro |
| Montserrat | Montserrat |
| Morocco | Marokko |
| Mozambique | Mosambik |
| Myanmar | Myanmar |
| Namibia | Namibia |
| Nauru | Nauru |
| Nepal | Nepal |
| Netherlands | Nederland |
| New Caledonia | Ny-Caledonia |
| New Zealand | New Zealand |
| Nicaragua | Nicaragua |
| Niger | Niger |
| Nigeria | Nigeria |
| Niue | Niue |
| Norfolk Island | Norfolkøya |
| North Korea | Nord-Korea |
| North Macedonia | Nord-Makedonia |
| Northern Mariana Islands | Nord-Marianene |
| Norway | Norge |
| Oman | Oman |
| Pakistan | Pakistan |
| Palau | Palau |
| Palestinian Territory Occupied | Palestinsk okkupert område |
| Panama | Panama |
| Papua new Guinea | Papua Ny-Guinea |
| Paraguay | Paraguay |
| Peru | Peru |
| Philippines | Filippinene |
| Pitcairn Island | Pitcairnøyene |
| Poland | Polen |
| Portugal | Portugal |
| Puerto Rico | Puerto Rico |
| Qatar | Qatar |
| Reunion | Réunion |
| Romania | Romania |
| Russia | Russland |
| Rwanda | Rwanda |
| Saint Helena | Sankt Helena |
| Saint Kitts And Nevis | Saint Kitts og Nevis |
| Saint Lucia | Saint Lucia |
| Saint Pierre and Miquelon | Saint-Pierre og Miquelon |
| Saint Vincent And The Grenadines | Saint Vincent og Grenadinene |
| Saint-Barthelemy | Saint-Barthélemy |
| Saint-Martin (French part) | Saint-Martin (fransk del) |
| Samoa | Samoa |
| San Marino | San Marino |
| Sao Tome and Principe | São Tomé og Príncipe |
| Saudi Arabia | Saudi-Arabia |
| Senegal | Senegal |
| Serbia | Serbia |
| Seychelles | Seychellene |
| Sierra Leone | Sierra Leone |
| Singapore | Singapore |
| Sint Maarten (Dutch part) | Sint Maarten (nederlandsk del) |
| Slovakia | Slovakia |
| Slovenia | Slovenia |
| Solomon Islands | Salomonøyene |
| Somalia | Somalia |
| South Africa | Sør-Afrika |
| South Georgia | Sør-Georgia |
| South Korea | Sør-Korea |
| South Sudan | Sør-Sudan |
| Spain | Spania |
| Sri Lanka | Sri Lanka |
| Sudan | Sudan |
| Suriname | Surinam |
| Svalbard And Jan Mayen Islands | Svalbard og Jan Mayen |
| Swaziland | Swaziland |
| Sweden | Sverige |
| Switzerland | Sveits |
| Syria | Syria |
| Taiwan | Taiwan |
| Tajikistan | Tadsjikistan |
| Tanzania | Tanzania |
| Thailand | Thailand |
| The Bahamas | Bahamas |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinidad og Tobago |
| Tunisia | Tunisia |
| Türkiye | Tyrkia |
| Turkmenistan | Turkmenistan |
| Turks And Caicos Islands | Turks- og Caicosøyene |
| Tuvalu | Tuvalu |
| Uganda | Uganda |
| Ukraine | Ukraina |
| United Arab Emirates | De forente arabiske emirater |
| United Kingdom | Storbritannia |
| United States | USA |
| United States Minor Outlying Islands | USAs ytre småøyer |
| Uruguay | Uruguay |
| Uzbekistan | Usbekistan |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Vatikanstaten (Den hellige stol) |
| Venezuela | Venezuela |
| Vietnam | Vietnam |
| Virgin Islands (British) | Jomfruøyene (britiske) |
| Virgin Islands (US) | Jomfruøyene (USA) |
| Wallis And Futuna Islands | Wallis- og Futunaøyene |
| Western Sahara | Vest-Sahara |
| Yemen | Jemen |
| Zambia | Zambia |
| Zimbabwe | Zimbabwe |
### Noms de Sections
| English | Norwegian |
| ------------ | ------------------------- |
| Awards | Utmerkelser |
| Basics | Grunnleggende informasjon |
| Certificates | Sertifikater |
| Education | Utdanning |
| Interests | Interesser |
| Languages | Språk |
| Projects | Prosjekter |
| Publications | Publikasjoner |
| References | Referanser |
| Skills | Ferdigheter |
| Volunteer | Frivillig arbeid |
| Work | Arbeidserfaring |
### Niveaux de Compétences
| English | Norwegian |
| ------------ | ------------ |
| Novice | Nybegynner |
| Beginner | Begynner |
| Intermediate | Viderekommen |
| Advanced | Avansert |
| Expert | Ekspert |
| Master | Mester |
### Options et Termes
| English | Norwegian |
| -------- | --------- |
| Courses | Kurs |
| Keywords | Nøkkelord |
| Score | Poeng |
# Espagnol
URL: (/fr/docs/locale/spanish)
L'anglais et l'espagnol sont tous deux des [langues indo-européennes](https://en.wikipedia.org/wiki/Indo-European_languages), il n'est pas
étonnant que l'anglais et l'espagnol partagent certaines similitudes, donc la plupart des
fondations communes de YAMLResume peuvent être réutilisées pour l'anglais et l'espagnol.
## Linguistique
### Jeu de Caractères
Les jeux de caractères de l'anglais et de l'espagnol sont très similaires—les deux langues
utilisent principalement l'[alphabet latin](https://en.wikipedia.org/wiki/Latin_alphabet), qui consiste en 26
lettres. Cependant, l'espagnol a une lettre supplémentaire, le `ñ`, qui
représente un son unique. Voici une comparaison rapide :
| Fonctionnalité | Jeu de Caractères Anglais | Jeu de Caractères Espagnol |
| ----------------------- | ------------------------------------ | --------------------------------------------------------------------------------------------- |
| **Alphabet** | 26 lettres (`a-z`) | 27 lettres (`a-z` plus `ñ`) |
| **Diacritiques** | Aucun | Inclut les accents (`á`, `é`, `í`, `ó`, `ú`), tréma (`ü`), et ponctuation spéciale (`¿`, `¡`) |
| **Caractères Spéciaux** | Limité aux caractères latins de base | Inclut des caractères supplémentaires comme `ñ` et les voyelles accentuées |
Les principales différences entre les systèmes d'écriture anglais et espagnol :
* **Lettre supplémentaire** : l'alphabet espagnol inclut la lettre `ñ`, qui
n'existe pas dans l'alphabet anglais.
* **[Diacritiques](https://en.wikipedia.org/wiki/Diacritic)** : l'espagnol utilise
plusieurs diacritiques qui changent la prononciation des voyelles. Par exemple,
les accents indiquent les changements de stress et de prononciation (ex. `é` vs. `e`).
* **Signes de ponctuation** : l'espagnol utilise des signes de ponctuation inversés (`¿` pour
les questions et `¡` pour les exclamations) qui sont absents en anglais.
## Idiomes
### Date
Les jours de la semaine et les mois sont capitalisés en anglais, mais pas en espagnol. Par
exemple, "Sep 2021" en anglais est traduit comme "sept 2021" en espagnol.
YAMLResume utilise seulement les mois, d'où le tableau de traduction :
| Anglais | Espagnol |
| --------------- | ----------------- |
| January (Jan) | enero (ene) |
| February (Feb) | febrero (feb) |
| March (Mar) | marzo (mar) |
| April (Apr) | abril (abr) |
| May (May) | mayo (may) |
| June (Jun) | junio (jun) |
| July (Jul) | julio (jul) |
| August (Aug) | agosto (ago) |
| September (Sep) | septiembre (sept) |
| October (Oct) | octubre (oct) |
| November (Nov) | noviembre (nov) |
| December (Dec) | diciembre (dic) |
### Capitalization
L'anglais tend à capitaliser de nombreux mots, tandis que l'espagnol est plus conservateur et
suit un ensemble de [règles beaucoup plus strict](https://baselang.com/blog/basic-grammar/capitalization-in-spanish/).
YAMLResume adopte en interne un ensemble fixe d'options et de termes pour tous les modèles de CV.
Par exemple, les langues dans les modèles de CV YAMLResume adoptent
[les options de maîtrise linguistique de Linkedin](https://www.linkedin.com/pulse/language-proficiency-linkedin-duaa-ali/) :
* Elementary Proficiency
* Limited Working Proficiency
* Minimum Professional Proficiency
* Full Professional Proficiency
* Native or Bilingual Proficiency
Celles-ci sont traduites en espagnol comme suit :
* Competencia elemental
* Competencia limitada de trabajo
* Competencia profesional de trabajo
* Competencia profesional plena
* Competencia nativa o bilingüe
Only the first word is capitalized.
## Typesetting
### Punctuations
Spanish has several notable differences in punctuations from English:
* **Quotation marks**: In English, periods and commas are placed inside
quotation marks, whereas in Spanish, they are usually placed outside.
* **Inverted marks**: Spanish uses inverted question marks `¿` and
exclamation marks `¡` at both the beginning and the end of interrogative and
exclamatory sentences, whereas English does not.
* **Serial comma**: English often uses a serial comma before "and" in lists
(e.g., "apples, oranges, and bananas"), whereas Spanish does not use a comma
before "y" (e.g., "manzanas, naranjas y plátanos")
* **Numerical formats**: English uses a period is used as a decimal separator
(e.g., 3.14), whereas Spanish uses a comma is used (e.g., 3,14).
## Translations
YAMLResume adopts the following translations for various options and terms used
in Spanish resumes
### Education Degrees
| English | Spanish |
| ------------- | -------------------- |
| Middle School | Escuela secundaria |
| High School | Título de secundaria |
| Diploma | Diploma |
| Associate | Grado de asociado |
| Bachelor | Licenciatura |
| Master | Maestría |
| Doctor | Doctorado |
### Languages
| English | Spanish |
| ----------- | ----------- |
| Afrikaans | Afrikáans |
| Albanian | Albanés |
| Amharic | Amárico |
| Arabic | Árabe |
| Azerbaijani | Azerbaiyano |
| Belarusian | Bielorruso |
| Bengali | Bengalí |
| Bhojpuri | Bhojpuri |
| Bulgarian | Búlgaro |
| Burmese | Birmano |
| Cantonese | Cantonés |
| Catalan | Catalán |
| Chinese | Chino |
| Croatian | Croata |
| Czech | Checo |
| Danish | Danés |
| Dutch | Neerlandés |
| English | Inglés |
| Estonian | Estonio |
| Farsi | Persa |
| Filipino | Filipino |
| Finnish | Finés |
| French | Francés |
| German | Alemán |
| Greek | Griego |
| Gujarati | Gujarati |
| Hausa | Hausa |
| Hebrew | Hebreo |
| Hindi | Hindi |
| Hungarian | Húngaro |
| Icelandic | Islandés |
| Igbo | Igbo |
| Indonesian | Indonesio |
| Irish | Irlandés |
| Italian | Italiano |
| Japanese | Japonés |
| Javanese | Javanés |
| Kazakh | Kazajo |
| Khmer | Jemer |
| Korean | Coreano |
| Lahnda | Lahnda |
| Latvian | Letón |
| Lithuanian | Lituano |
| Malay | Malayo |
| Mandarin | Mandarín |
| Marathi | Marathi |
| Nepali | Nepalí |
| Norwegian | Noruego |
| Oromo | Oromo |
| Pashto | Pastún |
| Polish | Polaco |
| Portuguese | Portugués |
| Romanian | Rumano |
| Russian | Ruso |
| Serbian | Serbio |
| Shona | Shona |
| Sinhala | Cingalés |
| Slovak | Eslovaco |
| Slovene | Esloveno |
| Somali | Somalí |
| Spanish | Español |
| Sundanese | Sundanés |
| Swahili | Suajili |
| Swedish | Sueco |
| Tagalog | Tagalo |
| Tamil | Tamil |
| Telugu | Telugu |
| Thai | Tailandés |
| Turkish | Turco |
| Ukrainian | Ucraniano |
| Urdu | Urdu |
| Uzbek | Uzbeko |
| Vietnamese | Vietnamita |
| Yoruba | Yoruba |
| Zulu | Zulú |
### Language Fluencies
| English | Spanish |
| -------------------------------- | ---------------------------------- |
| Elementary Proficiency | Competencia elemental |
| Limited Working Proficiency | Competencia limitada de trabajo |
| Minimum Professional Proficiency | Competencia profesional de trabajo |
| Full Professional Proficiency | Competencia profesional plena |
| Native or Bilingual Proficiency | Competencia nativa o bilingüe |
### Location (Countries and Regions)
| English | Spanish |
| ------------------------------------ | -------------------------------------------- |
| Afghanistan | Afganistán |
| Aland Islands | Islas Åland |
| Albania | Albania |
| Algeria | Argelia |
| American Samoa | Samoa Americana |
| Andorra | Andorra |
| Angola | Angola |
| Anguilla | Anguila |
| Antarctica | Antártida |
| Antigua And Barbuda | Antigua y Barbuda |
| Argentina | Argentina |
| Armenia | Armenia |
| Aruba | Aruba |
| Australia | Australia |
| Austria | Austria |
| Azerbaijan | Azerbaiyán |
| Bahrain | Baréin |
| Bangladesh | Bangladés |
| Barbados | Barbados |
| Belarus | Bielorrusia |
| Belgium | Bélgica |
| Belize | Belice |
| Benin | Benín |
| Bermuda | Bermudas |
| Bhutan | Bután |
| Bolivia | Bolivia |
| Bonaire, Sint Eustatius and Saba | Bonaire, San Eustaquio y Saba |
| Bosnia and Herzegovina | Bosnia y Herzegovina |
| Botswana | Botsuana |
| Bouvet Island | Isla Bouvet |
| Brazil | Brasil |
| British Indian Ocean Territory | Territorio Británico del Océano Índico |
| Brunei | Brunéi |
| Bulgaria | Bulgaria |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Camboya |
| Cameroon | Camerún |
| Canada | Canadá |
| Cape Verde | Cabo Verde |
| Cayman Islands | Islas Caimán |
| Central African Republic | República Centroafricana |
| Chad | Chad |
| Chile | Chile |
| China | China |
| Christmas Island | Isla de Navidad |
| Cocos (Keeling) Islands | Islas Cocos |
| Colombia | Colombia |
| Comoros | Comoras |
| Congo | Congo |
| Cook Islands | Islas Cook |
| Costa Rica | Costa Rica |
| Cote D'Ivoire (Ivory Coast) | Costa de Marfil |
| Croatia | Croacia |
| Cuba | Cuba |
| Curaçao | Curazao |
| Cyprus | Chipre |
| Czech Republic | República Checa |
| Democratic Republic of the Congo | República Democrática del Congo |
| Denmark | Dinamarca |
| Djibouti | Yibuti |
| Dominica | Dominica |
| Dominican Republic | República Dominicana |
| East Timor | Timor Oriental |
| Ecuador | Ecuador |
| Egypt | Egipto |
| El Salvador | El Salvador |
| Equatorial Guinea | Guinea Ecuatorial |
| Eritrea | Eritrea |
| Estonia | Estonia |
| Ethiopia | Etiopía |
| Falkland Islands | Islas Malvinas |
| Faroe Islands | Islas Feroe |
| Fiji Islands | Fiyi |
| Finland | Finlandia |
| France | Francia |
| French Guiana | Guayana Francesa |
| French Polynesia | Polinesia Francesa |
| French Southern Territories | Tierras Australes y Antárticas Francesas |
| Gabon | Gabón |
| Gambia The | Gambia |
| Georgia | Georgia |
| Germany | Alemania |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Grecia |
| Greenland | Groenlandia |
| Grenada | Granada |
| Guadeloupe | Guadalupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernsey y Alderney |
| Guinea | Guinea |
| Guinea-Bissau | Guinea-Bisáu |
| Guyana | Guyana |
| Haiti | Haití |
| Heard Island and McDonald Islands | Islas Heard y McDonald |
| Honduras | Honduras |
| Hong Kong S.A.R. | Hong Kong |
| Hungary | Hungría |
| Iceland | Islandia |
| India | India |
| Indonesia | Indonesia |
| Iran | Irán |
| Iraq | Irak |
| Ireland | Irlanda |
| Israel | Israel |
| Italy | Italia |
| Jamaica | Jamaica |
| Japan | Japón |
| Jersey | Jersey |
| Jordan | Jordania |
| Kazakhstan | Kazajistán |
| Kenya | Kenia |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Kuwait |
| Kyrgyzstan | Kirguistán |
| Laos | Laos |
| Latvia | Letonia |
| Lebanon | Líbano |
| Lesotho | Lesoto |
| Liberia | Liberia |
| Libya | Libia |
| Liechtenstein | Liechtenstein |
| Lithuania | Lituania |
| Luxembourg | Luxemburgo |
| Macau S.A.R. | Macao |
| Madagascar | Madagascar |
| Malawi | Malaui |
| Malaysia | Malasia |
| Maldives | Maldivas |
| Mali | Malí |
| Malta | Malta |
| Man (Isle of) | Isla de Man |
| Marshall Islands | Islas Marshall |
| Martinique | Martinica |
| Mauritania | Mauritania |
| Mauritius | Mauricio |
| Mayotte | Mayotte |
| Mexico | México |
| Micronesia | Micronesia |
| Moldova | Moldavia |
| Monaco | Mónaco |
| Mongolia | Mongolia |
| Montenegro | Montenegro |
| Montserrat | Montserrat |
| Morocco | Marruecos |
| Mozambique | Mozambique |
| Myanmar | Myanmar |
| Namibia | Namibia |
| Nauru | Nauru |
| Nepal | Nepal |
| Netherlands | Países Bajos |
| New Caledonia | Nueva Caledonia |
| New Zealand | Nueva Zelanda |
| Nicaragua | Nicaragua |
| Niger | Níger |
| Nigeria | Nigeria |
| Niue | Niue |
| Norfolk Island | Isla Norfolk |
| North Korea | Corea del Norte |
| North Macedonia | Macedonia del Norte |
| Northern Mariana Islands | Islas Marianas del Norte |
| Norway | Noruega |
| Oman | Omán |
| Pakistan | Pakistán |
| Palau | Palaos |
| Palestinian Territory Occupied | Territorio Palestino Ocupado |
| Panama | Panamá |
| Papua new Guinea | Papúa Nueva Guinea |
| Paraguay | Paraguay |
| Peru | Perú |
| Philippines | Filipinas |
| Pitcairn Island | Islas Pitcairn |
| Poland | Polonia |
| Portugal | Portugal |
| Puerto Rico | Puerto Rico |
| Qatar | Catar |
| Reunion | Reunión |
| Romania | Rumania |
| Russia | Rusia |
| Rwanda | Ruanda |
| Saint Helena | Santa Elena |
| Saint Kitts And Nevis | San Cristóbal y Nieves |
| Saint Lucia | Santa Lucía |
| Saint Pierre and Miquelon | San Pedro y Miquelón |
| Saint Vincent And The Grenadines | San Vicente y las Granadinas |
| Saint-Barthelemy | San Bartolomé |
| Saint-Martin (French part) | San Martín (parte francesa) |
| Samoa | Samoa |
| San Marino | San Marino |
| Sao Tome and Principe | Santo Tomé y Príncipe |
| Saudi Arabia | Arabia Saudita |
| Senegal | Senegal |
| Serbia | Serbia |
| Seychelles | Seychelles |
| Sierra Leone | Sierra Leona |
| Singapore | Singapur |
| Sint Maarten (Dutch part) | San Martín (parte neerlandesa) |
| Slovakia | Eslovaquia |
| Slovenia | Eslovenia |
| Solomon Islands | Islas Salomón |
| Somalia | Somalia |
| South Africa | Sudáfrica |
| South Georgia | Georgia del Sur |
| South Korea | Corea del Sur |
| South Sudan | Sudán del Sur |
| Spain | España |
| Sri Lanka | Sri Lanka |
| Sudan | Sudán |
| Suriname | Surinam |
| Svalbard And Jan Mayen Islands | Svalbard y Jan Mayen |
| Swaziland | Suazilandia |
| Sweden | Suecia |
| Switzerland | Suiza |
| Syria | Siria |
| Taiwan | Taiwán |
| Tajikistan | Tayikistán |
| Tanzania | Tanzania |
| Thailand | Tailandia |
| The Bahamas | Bahamas |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinidad y Tobago |
| Tunisia | Túnez |
| Türkiye | Turquía |
| Turkmenistan | Turkmenistán |
| Turks And Caicos Islands | Islas Turcas y Caicos |
| Tuvalu | Tuvalu |
| Uganda | Uganda |
| Ukraine | Ucrania |
| United Arab Emirates | Emiratos Árabes Unidos |
| United Kingdom | Reino Unido |
| United States | Estados Unidos |
| United States Minor Outlying Islands | Islas Ultramarinas Menores de Estados Unidos |
| Uruguay | Uruguay |
| Uzbekistan | Uzbekistán |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Ciudad del Vaticano |
| Venezuela | Venezuela |
| Vietnam | Vietnam |
| Virgin Islands (British) | Islas Vírgenes Británicas |
| Virgin Islands (US) | Islas Vírgenes de los Estados Unidos |
| Wallis And Futuna Islands | Wallis y Futuna |
| Western Sahara | Sahara Occidental |
| Yemen | Yemen |
| Zambia | Zambia |
| Zimbabwe | Zimbabue |
### Section Names
| English | Spanish |
| ------------ | ------------------- |
| Awards | Premios |
| Basics | Información básica |
| Certificates | Certificados |
| Education | Educación |
| Interests | Intereses |
| Languages | Idiomas |
| Location | Ubicación |
| Profiles | Perfiles |
| Projects | Proyectos |
| Publications | Publicaciones |
| References | Referencias |
| Skills | Competencias |
| Volunteer | Voluntariado |
| Work | Experiencia laboral |
### Skill Levels
| English | Spanish |
| ------------ | ------------ |
| Novice | Novato |
| Beginner | Principiante |
| Intermediate | Intermedio |
| Advanced | Avanzado |
| Expert | Experto |
| Master | Maestro |
### Options and Terms
| English | Spanish |
| -------- | -------------- |
| Courses | Cursos |
| Keywords | Palabras clave |
| Score | Puntuación |
# Schéma
URL: (/fr/docs/compiler/schema)
## Vue d'ensemble
La rédaction de CV est un processus long, ennuyeux et fastidieux. Les gens doivent souvent
passer des heures à peaufiner les détails, mais des erreurs surviennent encore. Par exemple, il peut
y avoir une faute de frappe dans les diplômes d'éducation, un format d'email peut être incorrect, un nom de cours peut
être trop court, etc.
Accompagné des [définitions de types statiques](/fr/docs/compiler/types), YAMLResume
fournit un schéma intégré qui peut être utilisé pour les validations d'exécution. C'est
le cœur qui fait de YAMLResume un **compilateur de CV**—YAMLResume fournit
des **messages d'avertissement/erreur de style clang** qui aident à détecter les erreurs potentielles au
stade précoce de la rédaction de CV.
Par exemple, pour le CV suivant :
```yml lineNumbers title="invalid-resume.yml"
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
---
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@pp # [!code highlight]
url: https//ppresume.com/gallery # [!code highlight]
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
region: California
city: S # [!code highlight]
country: United States
postalCode: "95814"
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
startDate: Sep 1, 2016
endDate:
courses:
- D # [!code highlight]
- Programming Language Concepts
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
layouts:
- engine: latex
typography:
fontSize: 13pt # [!code highlight]
```
`yamlresume validate` vous donnera une liste d'erreurs potentielles, avec des
informations de position claires qui aident à localiser l'emplacement exact de l'erreur,
pendant ce temps, avec l'aide du
[yaml-language-server](https://github.com/redhat-developer/yaml-language-server),
vous pouvez obtenir une meilleure expérience d'édition avec
[l'auto-complétion](/fr/docs/compiler/schema/json#auto-completion), [la documentation des propriétés au survol](/fr/docs/compiler/schema/json#property-docs), [la validation de format](/fr/docs/compiler/schema/json#format-validation), et plus.
Sous le capot, YAMLResume adopte [Zod](https://zod.dev) pour valider les données de CV
en cours d'exécution. Zod est une bibliothèque de validation de schéma TypeScript-first qui vous permet
de définir des schémas pour vos données de CV, qui agit comme un filet de sécurité robuste,
s'assurant que les données de CV sont fiables, cohérentes, et prêtes à être rendues
en un PDF professionnel.
La validation de schéma est un outil très puissant pour assurer la correction des données
de CV. Elle peut détecter les erreurs tout au long du cycle de vie entier de la rédaction de CV,
ce qui est très utile pour éviter les erreurs de bas niveau dès le départ.
## En Savoir Plus
# Schéma JSON
URL: (/fr/docs/compiler/schema/json)
## Vue d'ensemble
YAMLResume fournit un [Schéma JSON](https://json-schema.org) officiel pour
valider les données de CV.
Le dernier Schéma JSON officiel est hébergé à :
[https://yamlresume.com/schema.json](https://yamlresume.com/schema.json).
Cependant, si vous voulez une version réduite pour votre IDE/éditeur, vous pouvez aussi utiliser
la version canary
[schema.json](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/schema/schema.json)
de notre dépôt GitHub.
Pendant ce temps, comme YAMLResume évolue, le Schéma JSON officiel sera mis à jour
constamment, donc nous fournissons aussi toutes les versions archivées du Schéma JSON à :
`https://yamlresume.com/schemas//schema.json`.
Pour l'instant nous avons des versions archivées pour :
* [v0.11.0](/schemas/v0.11.0/schema.json)
* [v0.10.1](/schemas/v0.10.1/schema.json)
* [v0.10.0](/schemas/v0.10.0/schema.json)
* [v0.9.1](/schemas/v0.9.1/schema.json)
* [v0.8.1](/schemas/v0.8.1/schema.json)
* [v0.5.1](/schemas/v0.5.1/schema.json)
* [v0.6.0](/schemas/v0.6.0/schema.json)
* [v0.7.0](/schemas/v0.7.0/schema.json)
## Qu'est-ce que le Schéma JSON ?
[Schéma JSON](https://json-schema.org) est un format basé sur JSON pour définir la
structure des données JSON. C'est un outil puissant pour valider et documenter
les données JSON.
Le Schéma JSON vous permet de spécifier la structure attendue, les types, et les contraintes
de vos données JSON. Avec le Schéma JSON, vous pouvez définir quelles propriétés sont
requises, quels types de valeurs sont autorisés (comme les chaînes, nombres, tableaux, ou
objets), et même définir des règles pour les formats de valeurs (comme les adresses email ou URLs).
En utilisant le Schéma JSON, les développeurs et outils peuvent automatiquement valider les données JSON
pour s'assurer qu'elles correspondent au format attendu avant traitement. Cela aide à détecter
les erreurs tôt, améliore la qualité des données, et active des fonctionnalités comme l'auto-complétion
et la documentation en ligne dans les éditeurs de code modernes.
Le Schéma JSON est largement supporté et peut être utilisé pour les fichiers de configuration, les
payloads d'API, et, dans le cas de YAMLResume, pour valider les données de CV afin d'assurer
la cohérence et la correction.
## Avantages
Intégrer le Schéma JSON de YAMLResume dans votre IDE/éditeur lors de la rédaction de CV
apporte plusieurs avantages :
* **Auto-Complétion :** Quand vous commencez à taper, votre IDE/éditeur suggérera
les propriétés et leurs types attendus, vous aidant à rédiger votre CV plus rapidement et
avec moins d'erreurs.
* **Validation de Format :** Votre IDE/éditeur mettra en évidence toute erreur de formatage
(comme des dates ou URLs invalides) pendant que vous tapez, vous empêchant de soumettre
des informations incorrectes.
* **Documentation des Propriétés :** Obtenez la documentation en ligne pour chaque propriété,
expliquant son but, les valeurs autorisées, et tous les exigences de formatage
spéciales.
### Auto-Complétion
Tous les [types d'énumération](/fr/docs/compiler/types#enum-types) seront
auto-complétés lors de la saisie. Vous pouvez juste taper les premières lettres de l'option
et l'IDE/éditeur suggérera une liste d'options valides, puis vous pouvez juste utiliser
les touches fléchées haut/bas pour sélectionner la bonne.
### Validation de Format
Chaque paire clé-valeur sera validée en temps réel contre le schéma prédéfini.
Votre IDE/éditeur vous avertira avec un message d'erreur précis pour aider à éviter
les erreurs de bas niveau comme un mauvais format d'email, des options de diplôme invalides, des fautes de frappe dans
les niveaux de maîtrise linguistique, etc.
Et si une clé requise est manquante, le message d'avertissement sera escaladé à son objet parent
par défaut, donc vous pouvez facilement trouver la clé manquante.
### Documentation des Propriétés
Enfin, vous pouvez obtenir la documentation en ligne pour chaque propriété,
expliquant son but, les valeurs autorisées, et toutes les exigences de formatage spéciales.
Vous pouvez survoler soit la clé de propriété soit la valeur pour voir la documentation.
## Comment utiliser le Schéma JSON ?
Vous devez installer
[yaml-language-server](https://github.com/redhat-developer/yaml-language-server)
pour utiliser le schéma JSON de YAMLResume pour vos CV. Selon votre
IDE/éditeur, vous devrez peut-être installer différentes
[extensions](https://github.com/redhat-developer/yaml-language-server?tab=readme-ov-file#clients).
Une fois installé, vous devez ajouter la ligne suivante en haut de votre fichier de
CV :
```
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
```
Alors vous pouvez profiter des fonctionnalités [d'auto-complétion](#auto-completion), [de validation de
format](#format-validation), et [de documentation des propriétés](#property-docs) toutes
à portée de main.
## Ingénierie
Sous le capot, le schéma JSON de YAMLResume est généré avec l'aide de [Zod
v4](https://zod.dev/json-schema), qui est une bibliothèque de validation de schéma
TypeScript-first géniale.
Nous définissons le schéma dans
[schema/resume.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/schema/resume.ts),
puis générons le schéma JSON dans un [cas de test](https://github.com/yamlresume/yamlresume/blob/99de/packages/core/src/schema/resume.test.ts#L272-L277).
C'est pas cool ça ?
# Schéma Zod
URL: (/fr/docs/compiler/schema/zod)
YAMLResume adopte [zod](https://zod.dev) pour valider les données de CV en cours d'exécution.
Ce document présente tous les schémas zod utilisés dans YAMLResume. Si vous êtes intéressé
par les détails d'implémentation, vous pouvez trouver le code source
[ici](https://github.com/yamlresume/yamlresume/tree/main/packages/core/src/schema).
## Schéma Resume
Définit la validation de la structure globale du CV, incluant la validation du contenu et de la mise en page.
| Prop | Type | Requis |
| ---------- | --------------------------------- | ------ |
| `content` | [`ContentSchema`](#contentschema) | ✅ |
| `layouts?` | [`LayoutsSchema`](#layoutsschema) | ⬜ |
| `locale?` | [`LocaleSchema`](#localeschema) | ⬜ |
### ContentSchema
Définit la structure de validation pour l'ensemble du contenu du CV.
| Prop | Type | Requis |
| --------------- | --------------------------------------------------- | ------ |
| `basics` | [`BasicsItemSchema`](#basicsitemschema) | ✅ |
| `education` | [`EducationItemSchema[]`](#educationitemschema) | ✅ |
| `awards?` | [`AwardItemSchema[]`](#awarditemschema) | ⬜ |
| `certificates?` | [`CertificateItemSchema[]`](#certificateitemschema) | ⬜ |
| `interests?` | [`InterestItemSchema[]`](#interestitemschema) | ⬜ |
| `languages?` | [`LanguageItemSchema[]`](#languageitemschema) | ⬜ |
| `location?` | [`LocationItemSchema`](#locationitemschema) | ⬜ |
| `projects?` | [`ProjectItemSchema[]`](#projectitemschema) | ⬜ |
| `profiles?` | [`ProfileItemSchema[]`](#profileitemschema) | ⬜ |
| `publications?` | [`PublicationItemSchema[]`](#publicationitemschema) | ⬜ |
| `references?` | [`ReferenceItemSchema[]`](#referenceitemschema) | ⬜ |
| `skills?` | [`SkillItemSchema[]`](#skillitemschema) | ⬜ |
| `volunteer?` | [`VolunteerItemSchema[]`](#volunteeritemschema) | ⬜ |
| `work?` | [`WorkItemSchema[]`](#workitemschema) | ⬜ |
#### AwardItemSchema
Valide un prix, honneur ou reconnaissance reçu.
| Prop | Type | Requis | Règles de Validation |
| ---------- | -------- | ------ | ---------------------------------------- |
| `awarder` | `string` | ✅ | 2-128 caractères |
| `title` | `string` | ✅ | 2-128 caractères |
| `date?` | `string` | ⬜ | voir [schéma de date](#date-schema) |
| `summary?` | `string` | ⬜ | voir [schéma de résumé](#summary-schema) |
#### BasicsItemSchema
Valide les informations personnelles et de contact principales.
| Prop | Type | Requis | Règles de Validation |
| ----------- | -------- | ------ | ----------------------------------------- |
| `name` | `string` | ✅ | 2-128 caractères |
| `email?` | `string` | ⬜ | voir [schéma d'email](#email-schema) |
| `headline?` | `string` | ⬜ | 2-128 caractères |
| `phone?` | `string` | ⬜ | voir [schéma de téléphone](#phone-schema) |
| `summary?` | `string` | ⬜ | voir [schéma de résumé](#summary-schema) |
| `url?` | `string` | ⬜ | voir [schéma d'URL](#url-schema) |
#### CertificateItemSchema
Valide une certification, référence ou qualification professionnelle.
| Prop | Type | Requis | Règles de Validation |
| -------- | -------- | ------ | ----------------------------------- |
| `issuer` | `string` | ✅ | 2-128 caractères |
| `name` | `string` | ✅ | 2-128 caractères |
| `date?` | `string` | ⬜ | voir [schéma de date](#date-schema) |
| `url?` | `string` | ⬜ | voir [schéma d'URL](#url-schema) |
#### EducationItemSchema
Valide une seule expérience éducative ou programme de diplôme.
| Prop | Type | Requis | Règles de Validation |
| ------------- | ------------------- | ------ | ------------------------------------------------------------- |
| `area` | `string` | ✅ | 2-64 caractères |
| `degree` | [`Degree`](#degree) | ✅ | Doit être parmi les [options de diplôme](#degree) prédéfinies |
| `institution` | `string` | ✅ | 2-128 caractères |
| `startDate` | `string` | ✅ | voir [schéma de date](#date-schema) |
| `courses?` | `string[]` | ⬜ | Chaque élément 2-128 caractères |
| `endDate?` | `string` | ⬜ | voir [schéma de date](#date-schema) |
| `summary?` | `string` | ⬜ | voir [schéma de résumé](#summary-schema) |
| `score?` | `string` | ⬜ | 2-32 caractères |
| `url?` | `string` | ⬜ | voir [schéma d'URL](#url-schema) |
#### InterestItemSchema
Valide un seul intérêt, hobby ou activité personnelle.
| Prop | Type | Requis | Règles de Validation |
| ----------- | ---------- | ------ | -------------------------------------------- |
| `name` | `string` | ✅ | 2-128 caractères |
| `keywords?` | `string[]` | ⬜ | voir [schéma de mots-clés](#keywords-schema) |
#### LanguageItemSchema
Valide un élément de compétence linguistique.
| Prop | Type | Requis | Règles de Validation |
| ----------- | ----------------------- | ------ | --------------------------------------------------------------- |
| `fluency` | [`Fluency`](#fluency) | ✅ | Doit être parmi les [options de maîtrise](#fluency) prédéfinies |
| `language` | [`Language`](#language) | ✅ | Doit être parmi les [options de langue](#language) prédéfinies |
| `keywords?` | `string[]` | ⬜ | Chaque élément 1-32 caractères |
#### LocationItemSchema
Valide les informations de localisation et d'adresse.
| Prop | Type | Requis | Règles de Validation |
| ------------- | --------------------- | ------ | ----------------------------------------------------------- |
| `city` | `string` | ✅ | 2-128 caractères |
| `address?` | `string` | ⬜ | 2-128 caractères |
| `country?` | [`Country`](#country) | ⬜ | Doit être parmi les [options de pays](#country) prédéfinies |
| `postalCode?` | `string` | ⬜ | 2-128 caractères |
| `region?` | `string` | ⬜ | 2-128 caractères |
#### ProfileItemSchema
Valide un seul profil en ligne ou présence sur les réseaux sociaux.
| Prop | Type | Requis | Règles de Validation |
| ---------- | --------------------- | ------ | ------------------------------------------------------------- |
| `network` | [`Network`](#network) | ✅ | Doit être parmi les [options de réseau](#network) prédéfinies |
| `username` | `string` | ✅ | 2-128 caractères |
| `url?` | `string` | ⬜ | URL valide, max 256 caractères |
#### ProjectItemSchema
Valide un seul projet, élément de portfolio ou travail technique.
| Prop | Type | Requis | Règles de Validation |
| -------------- | ---------- | ------ | ---------------------------------------- |
| `name` | `string` | ✅ | 2-128 caractères |
| `startDate` | `string` | ✅ | voir [schéma de date](#date-schema) |
| `summary` | `string` | ✅ | voir [schéma de résumé](#summary-schema) |
| `description?` | `string` | ⬜ | 4-128 caractères |
| `endDate?` | `string` | ⬜ | voir [schéma de date](#date-schema) |
| `keywords?` | `string[]` | ⬜ | Chaque élément 1-32 caractères |
| `url?` | `string` | ⬜ | URL valide, max 256 caractères |
#### PublicationItemSchema
Valide une seule publication, travail de recherche ou article académique.
| Prop | Type | Requis | Règles de Validation |
| -------------- | -------- | ------ | ---------------------------------------- |
| `name` | `string` | ✅ | 2-128 caractères |
| `publisher` | `string` | ✅ | 2-128 caractères |
| `releaseDate?` | `string` | ⬜ | voir [schéma de date](#date-schema) |
| `summary?` | `string` | ⬜ | voir [schéma de résumé](#summary-schema) |
| `url?` | `string` | ⬜ | URL valide, max 256 caractères |
#### ReferenceItemSchema
Valide une seule référence professionnelle ou recommandation.
| Prop | Type | Requis | Règles de Validation |
| --------------- | -------- | ------ | ---------------------------------------- |
| `name` | `string` | ✅ | 2-128 caractères |
| `summary` | `string` | ✅ | voir [schéma de résumé](#summary-schema) |
| `email?` | `string` | ⬜ | voir [schéma d'email](#email-schema) |
| `phone?` | `string` | ⬜ | Format de téléphone valide |
| `relationship?` | `string` | ⬜ | 2-128 caractères |
#### SkillItemSchema
Valide une seule compétence, expertise ou capacité technique.
| Prop | Type | Requis | Règles de Validation |
| ----------- | ----------------- | ------ | ----------------------------------------------------------- |
| `level` | [`Level`](#level) | ✅ | Doit être parmi les [options de niveau](#level) prédéfinies |
| `name` | `string` | ✅ | 2-128 caractères |
| `keywords?` | `string[]` | ⬜ | Chaque élément 1-32 caractères |
#### VolunteerItemSchema
Valide une seule expérience de bénévolat ou service communautaire.
| Prop | Type | Requis | Règles de Validation |
| -------------- | -------- | ------ | ---------------------------------------- |
| `organization` | `string` | ✅ | 2-128 caractères |
| `position` | `string` | ✅ | 2-128 caractères |
| `startDate` | `string` | ✅ | voir [schéma de date](#date-schema) |
| `summary` | `string` | ✅ | voir [schéma de résumé](#summary-schema) |
| `endDate?` | `string` | ⬜ | voir [schéma de date](#date-schema) |
| `url?` | `string` | ⬜ | URL valide, max 256 caractères |
#### WorkItemSchema
Valide une seule expérience professionnelle ou poste d'emploi.
| Prop | Type | Requis | Règles de Validation |
| ----------- | ---------- | ------ | ---------------------------------------- |
| `name` | `string` | ✅ | 2-128 caractères |
| `position` | `string` | ✅ | 2-128 caractères |
| `startDate` | `string` | ✅ | voir [schéma de date](#date-schema) |
| `summary` | `string` | ✅ | voir [schéma de résumé](#summary-schema) |
| `endDate?` | `string` | ⬜ | voir [schéma de date](#date-schema) |
| `keywords?` | `string[]` | ⬜ | Chaque élément 1-32 caractères |
| `url?` | `string` | ⬜ | URL valide, max 256 caractères |
### LocaleSchema
Valide les paramètres de locale pour l'internationalisation et la localisation.
| Prop | Type | Requis | Règles de Validation |
| ----------- | ----------------------------------- | ------ | ---------------------------------------------------------------------------- |
| `language?` | [`LocaleLanguage`](#localelanguage) | ⬜ | Doit être parmi les [options de langue locale](#locale-language) prédéfinies |
### LayoutsSchema
Définit la configuration de validation de la mise en page globale.
| Prop | Type | Requis | Règles de Validation |
| ----------- | --------------------------------------------------------------------------------------------------------------------------------------- | ------ | ------------------------------------------ |
| `layouts[]` | [`HtmlLayoutSchema`](#htmllayoutschema) \| [`LatexLayoutSchema`](#latexlayoutschema) \| [`MarkdownLayoutSchema`](#markdownlayoutschema) | ⬜ | Tableau de configurations de mise en page. |
#### Schémas de Mise en Page Courants
##### MarginsSchema
Valide les paramètres de marges de page pour la mise en page du document.
| Prop | Type | Requis | Règles de Validation |
| --------- | -------- | ------ | ----------------------------------------------------- |
| `top?` | `string` | ⬜ | voir [schéma de taille de marge](#margin-size-schema) |
| `bottom?` | `string` | ⬜ | voir [schéma de taille de marge](#margin-size-schema) |
| `left?` | `string` | ⬜ | voir [schéma de taille de marge](#margin-size-schema) |
| `right?` | `string` | ⬜ | voir [schéma de taille de marge](#margin-size-schema) |
##### SectionsSchema
Valide les paramètres de personnalisation de section.
| Prop | Type | Requis | Règles de Validation |
| ---------- | --------------------------- | ------ | ------------------------------------------------------------------------- |
| `aliases?` | `Record` | ⬜ | Clés doivent être des IDs de section valides, valeurs chaînes (2-128 car) |
| `order?` | `OrderableSectionID[]` | ⬜ | Tableau d'IDs de section ordonnables valides |
#### HtmlLayoutSchema
Valide la configuration de la mise en page HTML.
| Prop | Type | Requis |
| ------------- | ----------------------------------------------- | ------ |
| `engine` | `'html'` | ✅ |
| `advanced?` | [`HtmlAdvancedSchema`](#htmladvancedschema) | ⬜ |
| `sections?` | [`SectionsSchema`](#sectionsschema) | ⬜ |
| `template?` | [`HtmlTemplateSchema`](#htmltemplateschema) | ⬜ |
| `typography?` | [`HtmlTypographySchema`](#htmltypographyschema) | ⬜ |
##### HtmlAdvancedSchema
Valide les options de configuration avancées pour HTML.
| Prop | Type | Requis | Règles de Validation |
| -------------- | --------- | ------ | -------------------- |
| `showIcons?` | `boolean` | ⬜ | true/false |
| `title?` | `string` | ⬜ | - |
| `footer?` | `string` | ⬜ | - |
| `description?` | `string` | ⬜ | - |
| `keywords?` | `string` | ⬜ | - |
##### HtmlTemplateSchema
Valide la configuration du modèle HTML.
| Prop | Type | Requis | Règles de Validation |
| ---------- | ------------------------------- | ------ | ------------------------------------------------------------------ |
| `template` | [`HtmlTemplate`](#htmltemplate) | ⬜ | Doit être parmi les [options de modèle](#htmltemplate) prédéfinies |
##### HtmlTypographySchema
Valide les paramètres de typographie HTML.
| Prop | Type | Requis | Règles de Validation |
| ------------- | ------------------------------- | ------ | ---------------------------------------------------------------------------- |
| `fontFamily?` | `string` | ⬜ | Une liste de familles de polices séparées par des virgules. |
| `fontSize?` | [`HtmlFontSize`](#htmlfontsize) | ⬜ | Doit être parmi les [options de taille de police](#htmlfontsize) prédéfinies |
#### LatexLayoutSchema
Valide la configuration de mise en page LaTeX.
| Prop | Type | Requis | Règles de Validation |
| ------------- | ------------------------------------------------- | ------ | -------------------------------------------------------------- |
| `advanced?` | [`LatexAdvancedSchema`](#latexadvancedschema) | ⬜ | Voir [schéma avancé](#latexadvancedschema) |
| `engine` | `'latex'` | ✅ | Doit être "latex" |
| `page?` | [`LatexPageSchema`](#latexpageschema) | ⬜ | Voir [schéma de page](#latexpageschema) |
| `sections?` | [`SectionsSchema`](#sectionsschema) | ⬜ | Voir [schéma de sections](#sectionsschema) |
| `template?` | [`LatexTemplate`](#latextemplate) | ⬜ | Doit être parmi les [options de modèle](#template) prédéfinies |
| `typography?` | [`LatexTypographySchema`](#latextypographyschema) | ⬜ | Voir [schéma de typographie](#latextypographyschema) |
##### LatexAdvancedSchema
Valide les options de configuration avancées pour LaTeX.
| Prop | Type | Requis | Règles de Validation |
| ------------ | ------------------------------------ | ------ | ------------------------------------------------------------------------------- |
| `fontspec?` | `{ numbers?: LatexFontspecNumbers }` | ⬜ | Doit être parmi les [options de nombres fontspec](#fontspecnumbers) prédéfinies |
| `showIcons?` | `boolean` | ⬜ | true/false |
##### LatexPageSchema
Valide les paramètres au niveau de la page pour la présentation du document.
| Prop | Type | Requis | Règles de Validation |
| ------------------ | --------------------------------- | ------ | ------------------------------------------------------------------------- |
| `margins?` | [`MarginsSchema`](#marginsschema) | ⬜ | Voir [schéma de marges](#marginsschema) |
| `paperSize?` | [`PaperSize`](#papersize) | ⬜ | Doit être parmi les [options de taille de papier](#papersize) prédéfinies |
| `showPageNumbers?` | `boolean` | ⬜ | true/false |
##### LatexTypographySchema
Valide les paramètres typographiques pour le formatage du document.
| Prop | Type | Requis | Règles de Validation |
| ------------- | ------------------------- | ------ | ------------------------------------------------------------------------ |
| `fontSize?` | `string` | ⬜ | Doit être parmi les [options de taille de police](#fontsize) prédéfinies |
| `fontFamily?` | `string` | ⬜ | Une liste de familles de polices séparées par des virgules. |
| `links?` | `{ underline?: boolean }` | ⬜ | true/false |
#### MarkdownLayoutSchema
Valide la configuration de mise en page Markdown.
| Prop | Type | Requis | Règles de Validation |
| ----------- | ----------------------------------- | ------ | ------------------------------------------ |
| `engine` | `'markdown'` | ✅ | Doit être "markdown" |
| `sections?` | [`SectionsSchema`](#sectionsschema) | ⬜ | Voir [schéma de sections](#sectionsschema) |
## Schémas de Validation Primitifs
### Schéma Email
Valide les adresses email avec des exigences de format strictes.
**Règles de Validation :**
* Doit être un format d'email valide
* Pattern : `^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$`
* Exemples : `hi@ppresume.com`, `first.last@company.org`, `test+tag@domain.co.uk`
### Schéma Téléphone
Valide les numéros de téléphone avec un support de format flexible.
**Règles de Validation :**
* Pattern : `^[+]?[(]?[0-9\\s-]{1,15}[)]?[0-9\\s-]{1,15}$`
* Peut inclure un code pays, des parenthèses, des espaces et des tirets
* Exemples : `555-123-4567`, `+44 20 7946 0958`, `(555) 123-4567`
### Schéma Résumé
Valide le texte de résumé avec des contraintes de longueur.
**Règles de Validation :**
* Doit être entre 16 et 1024 caractères
* Exemples :
* "Ingénieur logiciel expérimenté avec 5+ ans de développement full-stack."
* "Designer créatif passionné par l'expérience utilisateur et les principes de design moderne."
* "Chef de projet dévoué avec un historique prouvé de livraison de projets complexes dans les temps et le budget."
### Schéma URL
Valide les URLs avec des contraintes de longueur.
**Règles de Validation :**
* Doit être un format d'URL valide
* Longueur maximale de 256 caractères
* Exemples : `https://yamlresume.dev`, `https://ppresume.com`, `https://github.com/yamlresume/yamlresume`
### Schéma Mots-clés
Valide les tableaux de mots-clés avec des contraintes d'éléments individuels.
**Règles de Validation :**
* Tableau de chaînes
* Chaque mot-clé doit être entre 1 et 32 caractères
* Exemples : `["Javascript", "React", "Typescript"]`, `["Design", "UI", "UX"]`
### Schéma Date
Valide les chaînes de date avec des exigences de format.
**Règles de Validation :**
* Doit être entre 4 et 32 caractères
* Doit être analysable par `Date.parse()`
* Exemples : `2025-01-01`, `Jul 2025`, `July 3, 2025`, `2025-02-02T00:00:03.123Z`
### Schéma Taille de Marge
Valide les chaînes de taille de marge avec des exigences d'unité.
**Règles de Validation :**
* Doit être entre 2 et 32 caractères
* Pattern : `^\\d+(\\.\\d+)?(cm|pt|in)$`
* Doit être un nombre positif suivi d'unités valides : cm, pt, ou in
* Exemples : `2.5cm`, `1in`, `72pt`, `0.5cm`, `12pt`
## Schémas de Validation Enum
### Country
Un type union pour tous les pays et régions possibles dans le monde.
**Règles de Validation :**
* Doit être l'une des options de pays prédéfinies
* Exemples : `United States`, `China`, `United Kingdom`, `Germany`
### Degree
Un type union pour tous les diplômes possibles.
**Règles de Validation :**
* Doit être l'un de : `Associate`, `Bachelor`, `Diploma`, `Doctor`, `High School`, `Master`, `Middle School`
### Fluency
Un type union pour tous les niveaux de maîtrise linguistique possibles.
**Règles de Validation :**
* Doit être l'un de :
* `Elementary Proficiency`
* `Full Professional Proficiency`
* `Limited Working Proficiency`
* `Minimum Professional Proficiency`
* `Native or Bilingual Proficiency`
### Language
Un type union pour toutes les langues supportées.
**Règles de Validation :**
* Doit être l'une des options de langue prédéfinies
* Exemples : `English`, `Chinese`, `Spanish`, `French`, `German`
### Level
Un type union pour tous les niveaux de compétence possibles.
**Règles de Validation :**
* Doit être l'un de : `Advanced`, `Beginner`, `Expert`, `Intermediate`, `Master`, `Novice`
### Network
Un type union pour toutes les options de réseau social possibles.
**Règles de Validation :**
* Doit être l'une des options de réseau prédéfinies
* Exemples : `GitHub`, `LinkedIn`, `Twitter`, `Facebook`, `Instagram`
### HtmlFontSize
Un type union pour toutes les options de taille de police HTML possibles.
**Règles de Validation :**
* Doit être l'une de : `10px`, `11px`, `12px`, `13px`, `14px`, `15px`, `16px`, `17px`, `18px`, `19px`, `20px`, `21px`, `22px`, `23px`, `24px`
* Le moteur HTML supporte les tailles de police de 10px à 24px
* `16px` est la taille de police par défaut
### HtmlTemplate
Un type union pour toutes les options de modèle HTML possibles.
**Règles de Validation :**
* Doit être l'une de : `calm`
* Voir aussi : [modèles](/fr/docs/layouts/html/templates)
### LatexTemplate
Un type union pour toutes les options de modèle possibles.
**Règles de Validation :**
* Doit être l'un de : `moderncv-banking`, `moderncv-casual`, `moderncv-classic`
* Voir aussi : [modèles](/fr/docs/layouts/latex/templates)
### LocaleLanguage
Un type union pour toutes les langues de locale possibles.
**Règles de Validation :**
* Doit être l'une de : `en`, `es`, `zh-hans`, `zh-hant-hk`, `zh-hant-tw`
* Voir aussi : [multi-langues](/fr/docs/locale)
### LatexFontspecNumbers
Un type union pour toutes les options de nombres fontspec latex possibles.
**Règles de Validation :**
* Doit être l'une de :
* `Auto` - permettant au style d'être automatiquement déterminé basé sur la `LocaleLanguage` sélectionnée (par défaut)
* `Lining` - chiffres standards de ligne (par défaut pour les langues CJK)
* `OldStyle` - anciens chiffres de style avec des hauteurs variables (par défaut pour les langues latines)
### LatexFontSize
Un type union pour toutes les options de taille de police possibles.
**Règles de Validation :**
* Doit être l'une de : `10pt`, `11pt`, `12pt`
* `10pt` est la taille de police par défaut
### PaperSize
Un type union pour toutes les options de taille de papier LaTeX possibles.
**Règles de Validation :**
* Doit être l'un de : `a4`, `letter`
# Moteur HTML
URL: (/fr/docs/layouts/html)
Le moteur HTML génère des versions HTML propres et prêtes pour le web de votre
CV. Cela est particulièrement utile pour intégrer votre CV sur des sites web, le
partager en ligne ou créer un portfolio basé sur le web.
## Configuration
Pour utiliser le moteur HTML, spécifiez `engine: html` dans votre configuration
de mise en page.
```yaml
layouts:
- engine: html
template: calm
# ... autres options
```
## Sections
L'option `sections` vous permet de personnaliser les titres de section et leur
ordre. Pour plus d'informations, voir la [documentation des
sections](./sections).
```yml lineNumbers
layouts:
- engine: html
sections:
aliases:
work: "Expérience Professionnelle"
education: "Éducation"
skills: "Compétences"
order:
- basics
- work
- education
```
## Modèles
L'option `template` vous permet de choisir parmi une variété de modèles. Chaque
modèle a un design et une mise en page uniques. Vous pouvez trouver une liste
des modèles disponibles dans la [documentation des modèles](./html/templates).
```yml lineNumbers
layouts:
- engine: html
template: calm
```
## Typographie
L'option `typography` vous permet de personnaliser les styles de police utilisés
dans votre CV.
### Taille de la police
L'option `fontSize` vous permet de définir la taille de police de base pour le document.
Le moteur HTML supporte des tailles de police de `14px` à `20px`.
### Famille de polices
L'option `fontFamily` vous permet de spécifier une liste prioritaire de noms de familles
de polices et/ou de noms de familles génériques. Cela fonctionne exactement comme la
propriété CSS `font-family`.
```yaml
layouts:
- engine: html
typography:
fontSize: 16px
fontFamily: "Merriweather, serif"
```
## Avancé
L'option `advanced` vous permet de configurer des paramètres avancés pour le
moteur HTML.
```yml lineNumbers
layouts:
- engine: html
advanced:
showIcons: true
# Titre personnalisé pour le document HTML.
title: "Mon Titre de CV Personnalisé"
# Pied de page personnalisé pour le document HTML.
footer: "Généré par YAMLResume"
# Meta description pour le document HTML.
description: "Une brève description du CV pour le SEO."
# Meta mots-clés pour le document HTML.
keywords: "cv, resume, yamlresume"
```
# Moteur LaTeX
URL: (/fr/docs/layouts/latex)
Le moteur LaTeX est le moteur principal de YAMLResume, conçu pour produire des CV PDF de haute qualité et d'apparence professionnelle en utilisant des modèles LaTeX.
## Configuration
Pour utiliser le moteur LaTeX, spécifiez `engine: latex` dans votre configuration de mise en page.
```yaml
layouts:
- engine: latex
template: moderncv-banking
# ... autres options
```
## Page
L'option `page` vous permet de personnaliser les paramètres de page, comme la
taille du papier, les marges et s'il faut afficher les numéros de page.
```yml lineNumbers
layouts:
- engine: latex
page:
showPageNumbers: true
# a4 ou letter
paperSize: a4
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
```
## Sections
L'option `sections` vous permet de personnaliser les titres de section et leur
ordre. Pour plus d'informations, voir la [documentation des sections](./sections).
```yml lineNumbers
layouts:
- engine: latex
sections:
aliases:
work: "Expérience Professionnelle"
education: "Éducation"
skills: "Compétences"
order:
- basics
- work
- education
```
## Modèles
L'option `template` vous permet de choisir parmi une variété de modèles. Chaque
modèle a un design et une mise en page uniques. Vous pouvez trouver une liste des
modèles disponibles dans la [documentation des modèles](./latex/templates).
```yml lineNumbers
layouts:
- engine: latex
template: moderncv-banking
```
## Typographie
L'option `typography` vous permet de personnaliser les styles de police utilisés dans votre CV.
### Taille de la police
L'option `fontSize` vous permet de définir la taille de police de base pour le document.
Le moteur LaTeX ne prend en charge que `10pt`, `11pt` et `12pt`.
### Famille de polices
L'option `fontFamily` vous permet de spécifier une liste prioritaire de noms de familles
de polices. Cela fonctionne de manière similaire à la propriété CSS `font-family`.
```yaml
layouts:
- engine: latex
typography:
fontSize: 11pt
fontFamily: "Merriweather, serif"
```
## Avancé
L'option `advanced` vous permet de configurer des paramètres avancés pour le
moteur LaTeX.
```yml lineNumbers
layouts:
- engine: latex
advanced:
showIcons: true
fontspec:
numbers: Lining
```
# Moteur Markdown
URL: (/fr/docs/layouts/markdown)
Le moteur markdown génère une version Markdown simple de votre CV. C'est
particulièrement utile lorsque vous devez copier-coller le contenu de votre CV
dans des systèmes de suivi des candidats (ATS) ou d'autres formulaires qui ne
prennent pas en charge le téléchargement PDF.
## Configuration
Pour utiliser le moteur markdown, spécifiez `engine: markdown` dans votre
configuration de mise en page.
```yml
layouts:
- engine: markdown
```
La sortie markdown sera générée avec votre PDF (si vous avez également une mise
en page LaTeX configurée) ou en tant que fichier autonome.
Contrairement à la [mise en page LaTeX](./latex), la mise en page Markdown est
une mise en page simple qui n'a pas de configurations supplémentaires à
l'exception des [alias de sections](/docs/layouts/sections/aliases) et de la
[réorganisation des sections](/docs/layouts/sections/reorder).
```yml lineNumbers title="resume.yml"
---
content:
# ...
locale:
language: en
layouts:
- engine: markdown
sections:
aliases:
work: Professional Experience
education: Academic Background
skills: Technical Skills
order:
- basics
- work
- education
- skills
```
Les `aliases` et `order` des sections seront respectés dans la sortie markdown
finale.
# Alias
URL: (/fr/docs/layouts/sections/aliases)
YAMLResume fournit des titres par défaut pour [toutes les sections de CV
sauf](#sections-aliasables) `location` et `profiles`, qui sont automatiquement
[traduites](docs/locale) basées sur la [langue locale
sélectionnée](/docs/layouts#locale). Cependant, vous pourriez vouloir personnaliser ces titres
pour mieux convenir à votre profil ou industrie. La fonctionnalité `alias de sections` vous permet
de remplacer les titres de sections par défaut avec vos propres noms personnalisés.
Par exemple, vous pourriez préférer "Expérience Professionnelle" au lieu de "Travail" pour
la section `work`, ou "Compétences Techniques" au lieu de "Compétences" pour la section `skills`.
## Comment Utiliser
Vous pouvez définir des alias de sections dans la configuration `layouts.[].sections` de votre
fichier `resume.yml`. Ajoutez un objet `sections` à votre layout, et à l'intérieur, une
map `aliases`.
Les clés dans la map `aliases` sont les IDs de sections standards, et les valeurs sont
les titres personnalisés que vous voulez utiliser.
## Exemple
Voici comment vous pouvez changer les titres pour les sections `work`, `education`, et `skills` :
```yml lineNumbers title="resume.yml"
---
content:
# ...
layouts:
- engine: latex
sections:
aliases:
work: Professional Experience
education: Academic Background
skills: Technical Skills
```
Quand vous compilez votre CV avec cette configuration, le PDF généré utilisera
"Expérience Professionnelle", "Formation Académique", et "Compétences Techniques" comme
titres pour ces sections, remplaçant les noms par défaut ou spécifiques à la locale.
Si un alias n'est pas fourni pour une section, YAMLResume utilisera par défaut le
titre par défaut pour la locale configurée.
## Sections Aliasables
Vous pouvez fournir des alias pour les sections suivantes :
* `basics`
* `education`
* `work`
* `volunteer`
* `awards`
* `certificates`
* `publications`
* `skills`
* `languages`
* `interests`
* `references`
* `projects`
## Règles et Contraintes
* Un alias doit faire entre 2 et 128 caractères de longueur.
# Sections
URL: (/fr/docs/layouts/sections)
YAMLResume offre des options flexibles pour personnaliser les sections du CV.
Vous pouvez modifier le titre de n'importe quelle section et réorganiser les sections pour mieux correspondre
à votre profil professionnel. Ces personnalisations sont gérées dans la
configuration `layouts.[].sections` de votre fichier `resume.yml`.
```yml lineNumbers title="resume.yml"
---
content:
# ...
layouts:
- engine: latex
sections:
aliases:
work: "Professional Experience"
education: "Academic Background"
skills: "Technical Skills"
order:
- work
- education
- awards
- volunteer
```
## Learn More
# Réorganiser
URL: (/fr/docs/layouts/sections/reorder)
Par défaut, YAMLResume organise les sections dans un ordre standard. Cependant, vous pouvez
facilement changer cela en fournissant une liste `order` personnalisée. Cela vous permet de
mettre en avant vos informations les plus importantes en premier.
## Comment Utiliser
Par exemple, si vous voulez placer vos sections "Compétences" et "Projets" avant
votre expérience "Travail", vous pouvez définir l'ordre comme ceci :
```yml lineNumbers title="resume.yml"
---
content:
# ...
layouts:
- engine: latex
sections:
order:
- skills
- projects
- work
```
Toutes les sections incluses dans la liste `order` apparaîtront en premier, dans la séquence
que vous avez spécifiée. Les sections non incluses dans la liste seront ajoutées après,
suivant leur ordre par défaut.
## Exemples
### Prioriser l'Expérience Professionnelle
```yml lineNumbers
layouts:
- engine: latex
sections:
order:
- work
- education
```
Résultat : l'expérience professionnelle apparaît en premier, suivie de l'éducation, puis toutes les autres
sections dans l'ordre par défaut.
### Mettre en Avant les Compétences et Langues
```yml lineNumbers
layouts:
- engine: latex
sections:
order:
- skills
- languages
- work
```
Résultat : les compétences et langues apparaissent de manière proéminente en haut, suivies de l'expérience
professionnelle, puis les sections restantes.
### Focus Académique
```yml lineNumbers
layouts:
- engine: latex
sections:
order:
- education
- publications
- awards
- certificates
```
Résultat : les sections académiques apparaissent en premier, suivies des autres sections dans l'ordre
par défaut.
## Ordre des Sections par Défaut
Quand aucun ordre personnalisé n'est spécifié, les sections sont rendues dans cet ordre par défaut :
1. `basics` (par défaut rendu en haut du CV comme section de résumé)
2. `education`
3. `work`
4. `languages`
5. `skills`
6. `awards`
7. `certificates`
8. `publications`
9. `references`
10. `projects`
11. `interests`
12. `volunteer`
## Détails d'Implémentation
* **Priorité** : Les sections spécifiées dans `order` apparaissent en premier dans la séquence
spécifiée
* **Retour** : Les sections restantes suivent dans l'ordre par défaut
* **Déduplication** : Les sections dupliquées dans le tableau order sont dédupliquées
(première occurrence conservée)
* **Sections Vides** : Les sections sans contenu sont automatiquement filtrées
* **Flexibilité** : Les utilisateurs peuvent spécifier n'importe quel sous-ensemble de sections ordonnables
## Sections Ordonnables
Les sections suivantes peuvent être réorganisées :
* `basics`
* `education`
* `work`
* `volunteer`
* `awards`
* `certificates`
* `publications`
* `skills`
* `languages`
* `interests`
* `references`
* `projects`
# Calm
URL: (/fr/docs/layouts/html/templates/calm)
## Implémentation
Calm est un modèle HTML propre et moderne inspiré du modèle LaTeX moderncv.
Il présente un design minimaliste avec une séparation claire des sections et une
mise en page élégante optimisée pour la visualisation web.
Sous le capot, le modèle utilise :
* **Réinitialisation CSS** : Une feuille de style de réinitialisation
personnalisée pour un rendu cohérent entre les navigateurs
* **Typographie** : Tailles de police personnalisables allant de 14px à 20px
* **Design Responsive** : Mise en page propre qui s'adapte aux différentes
tailles d'écran
* **HTML Sémantique** : Structure HTML5 appropriée pour une meilleure
ccessibilité et SEO
## Configuration
```yml lineNumbers title="resume.yml"
content:
# ...
layouts:
- engine: html
template: calm # [!code highlight]
typography:
fontSize: 16px
```
## Fonctionnalités
* **Design Épuré** : Mise en page minimaliste axée sur la lisibilité du contenu
* **Typographie Moderne** : Polices professionnelles avec des tailles
personnalisables
* **Prêt pour le Web** : Peut être intégré directement dans des sites web ou
partagé via URL
* **Adapté à l'Impression** : Optimisé pour l'impression en PDF depuis les
navigateurs web
* **Sections Personnalisables** : Ordre et dénomination flexibles des sections
## Aperçu
Le modèle Calm offre une apparence professionnelle adaptée à divers secteurs et
niveaux d'expérience. Son design épuré garantit que votre contenu reste au
centre de l'attention tout en maintenant un attrait visuel.
# Modèles
URL: (/fr/docs/layouts/html/templates)
YAMLResume fournit des modèles HTML prêts à l'emploi, vous pouvez lister tous les modèles
avec la commande `yamlresume templates list`.
```console
$ yamlresume templates list
| layouts.[].template | Engine | Template Name | Description |
| ------------------- | ------ | ---------------- | ------------------------------------------------- |
| moderncv-banking | latex | ModernCV Banking | ModernCV template with banking style |
| moderncv-casual | latex | ModernCV Casual | ModernCV template with casual style |
| moderncv-classic | latex | ModernCV Classic | ModernCV template with classic style |
| calm | html | Calm | Clean and minimalist design suitable for all professionals. |
| vscode | html | VS Code | Dark theme inspired by Visual Studio Code, tailored for developers. |
```
Par défaut, YAMLResume utilise le modèle [calm](./templates/calm) pour la sortie HTML.
Vous pouvez changer le modèle en définissant `layouts.[].template` dans votre CV YAML.
```yml lineNumbers title="resume.yml"
content:
# ...
layouts:
- engine: html
# ...
template: calm # [!code highlight]
# ...
```
Consultez les modèles suivants pour plus de détails :
# VS Code
URL: (/fr/docs/layouts/html/templates/vscode)
## Mise en œuvre
VS Code est un thème sombre inspiré de la palette de couleurs « Dark+ » de
Visual Studio Code. Il est spécifiquement conçu pour les développeurs, les
ingénieurs logiciels et les professionnels de la technique qui souhaitent que
leur CV reflète leur environnement de codage.
Le modèle adopte une esthétique « Le CV comme du code », traitant différentes
parties de votre profil comme des éléments de code :
* **Nom** : Décoré comme une `class` (ex. : `class JohnDoe {`)
* **Titre** : Rendu comme un commentaire de code (ex. :
`// Full Stack Engineer`)
* **Sections** : Représentées comme des appels de fonction (ex. :
`experience()`)
* **Compétences/Langues** : Stylisées comme des clés de propriété d'objet (ex. :
`JavaScript: Expert`)
Sous le capot, le modèle utilise :
* **Typographie** : Utilise une pile de polices de caractères à chasse fixe
(`Consolas`, `Monaco`, `Courier New`, `monospace`) pour une sensation d'IDE
authentique
* **Coloration Syntaxique** : Utilise la palette de couleurs officielle de VS
Code Dark+ pour les mots-clés, les chaînes, les classes et les fonctions
* **Indentation de la Mise en Page** : Comprend des guides d'indentation
verticaux (bordure gauche) pour représenter visuellement la portée de chaque
section
## Configuration
```yml lineNumbers title="resume.yml"
content:
# ...
layouts:
- engine: html
template: vscode # [!code highlight]
typography:
fontSize: 16px
```
## Caractéristiques
* **Axé sur le Développeur** : Parfait pour signaler une compétence technique et
une passion pour le code
* **Mode Sombre par Défaut** : Thème sombre à haut contraste, agréable pour les
yeux
* **Structure de Type Code** : Métaphores visuelles uniques qui font ressortir
les CV techniques
* **Adaptatif** : Entièrement adapté à la visualisation sur ordinateur et sur
mobile avec une sémantique de code cohérente
* **Style de Syntaxe** : Utilise des couleurs d'IDE familières pour différencier
les rôles, les dates et les descriptions
## Aperçu
Le modèle VS Code offre un aspect distinctif et moderne qui connecte
immédiatement avec les recruteurs techniques et les responsables du recrutement.
Il transforme votre parcours professionnel en un « fichier source » propre,
lisible et visuellement familier.
# Modèles
URL: (/fr/docs/layouts/latex/templates)
YAMLResume fournit plusieurs modèles prêts à l'emploi, vous pouvez lister tous les modèles
avec la commande `yamlresume templates list`.
```console
$ yamlresume templates list
| `layouts.[].template` | `Engine` | `Template Name` | `Description` |
| --------------------- | -------- | ------------------ | -------------------------------------- |
| `moderncv-banking` | `latex` | `ModernCV Banking` | `ModernCV template with banking style` |
| `moderncv-casual` | `latex` | `ModernCV Casual` | `ModernCV template with casual style` |
| `moderncv-classic` | `latex` | `ModernCV Classic` | `ModernCV template with classic style` |
```
Par défaut, YAMLResume utilise le modèle [moderncv-banking](./moderncv-banking). Vous
pouvez changer le modèle en définissant `layouts.[].template` dans votre CV YAML.
```yml lineNumbers title="resume.yml"
content:
# ...
layouts:
- engine: latex
# ...
template: moderncv-classic # [!code highlight]
# ...
```
Consultez les modèles suivants pour plus de détails :
# Moderncv Banking
URL: (/fr/docs/layouts/latex/templates/moderncv-banking)
## Implémentation
Moderncv banking est un modèle de CV moderne et épuré basé sur
[xdanaux/moderncv](https://github.com/xdanaux/moderncv).
Sous le capot, nous utilisons le code suivant pour le préambule LaTeX :
```latex lineNumbers
\documentclass[a4paper, serif, 11pt]{moderncv}
%% moderncv
% style and color
\moderncvstyle{banking}
\moderncvcolor{black}
% needed by moderncv for showing icons
\usepackage{fontawesome5}
```
Pour le style moderncv banking, nous adoptons également des traitements spéciaux pour
les ponctuations afin de le faire fonctionner avec CJK.
Techniquement parlant, l'anglais et le chinois ont des deux-points différents. Le deux-points
anglais est `:`, avec l'Unicode `U+003A`, tandis que le deux-points chinois est `:`, avec
l'Unicode `U+FF1A`. Ainsi, lorsque la langue du CV est le chinois, nous adopterions le
deux-points chinois pour moderncv en remplaçant certaines macros LaTeX magiques :
```latex lineNumbers
% renew moderncv command to adapt for CJK colon
\renewcommand*{\cvitem}[3][.25em]{%
\ifstrempty{#2}{}{\hintstyle{#2}<= &templateTranslations.punctuations.Colon =>}{#3}%
\par\addvspace{#1}}
\renewcommand*{\cvitemwithcomment}[4][.25em]{%
\savebox{\cvitemwithcommentmainbox}{\ifstrempty{#2}{}{\hintstyle{#2}<= &templateTranslations.punctuations.Colon =>}#3}%
\setlength{\cvitemwithcommentmainlength}{\widthof{\usebox{\cvitemwithcommentmainbox}}}%
\setlength{\cvitemwithcommentcommentlength}{\maincolumnwidth-\separatorcolumnwidth-\cvitemwithcommentmainlength}%
\begin{minipage}[t]{\cvitemwithcommentmainlength}\usebox{\cvitemwithcommentmainbox}\end{minipage}%
\hfill% fill of \separatorcolumnwidth
\begin{minipage}[t]{\cvitemwithcommentcommentlength}\raggedleft\small\itshape#4\end{minipage}%
\par\addvspace{#1}}
```
Consultez notre [article](https://blog.ppresume.com/posts/multi-languagues-support#colon) de blog
pour plus de détails.
## Aperçu
# Moderncv Casual
URL: (/fr/docs/layouts/latex/templates/moderncv-casual)
## Implémentation
Moderncv casual est un modèle de CV moderne et décontracté basé sur
[xdanaux/moderncv](https://github.com/xdanaux/moderncv).
Sous le capot, nous utilisons le code suivant pour le préambule LaTeX :
```latex lineNumbers
\documentclass[a4paper, serif, 11pt]{moderncv}
%% moderncv
% style and color
\moderncvstyle{casual}
\moderncvcolor{black}
% needed by moderncv for showing icons
\usepackage{fontawesome5}
```
## Aperçu
# Moderncv Classic
URL: (/fr/docs/layouts/latex/templates/moderncv-classic)
## Implémentation
Moderncv classic est un modèle de CV moderne et classique basé sur
[xdanaux/moderncv](https://github.com/xdanaux/moderncv).
Sous le capot, nous utilisons le code suivant pour le préambule LaTeX :
```latex lineNumbers
\documentclass[a4paper, serif, 11pt]{moderncv}
%% moderncv
% style and color
\moderncvstyle{classic}
\moderncvcolor{black}
% needed by moderncv for showing icons
\usepackage{fontawesome5}
```
## Aperçu
# CLI
URL: (/ja/docs/cli)
YAMLResume は履歴書の管理を支援する CLI ツールを提供します。[インストールガイド](/ja/docs/installation) に従ってインストールできます。
[docker イメージ](/ja/docs/installation#docker-users) をご用意しており、`yamlresume` CLI およびすべての必要な依存関係がインストールされていることに注意してください。
このガイドの各サブコマンドについて、`yamlresume/yamlresume` の後にサブコマンドを追加することで docker で実行できます。
例えば、yamlresume CLI で新しい履歴書を作成:
```sh
yamlresume new my-resume.yml
```
docker でも実行できます:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
```
## ヘルプ
CLI ヘルプとすべての利用可能なコマンドを表示:
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build a resume on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
YAMLResume CLI のバージョンを表示:
```console
$ yamlresume -V
0.5.0
```
## New
新しい履歴書を作成。デフォルトの履歴書ファイル名は `resume.yml` ですが、カスタムファイル名を指定できます:
```console
$ yamlresume new --help
Usage: yamlresume new [options] [filename]
create a new resume
Arguments:
filename output filename (default: "resume.yml")
Options:
-h, --help display help for command
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
## Build
YAML から PDF に履歴書をビルド。latex コードと PDF の両方を生成し、[XeTeX](/ja/docs/installation#xetex) をタイプセッティングエンジンとして使用する場合、`.aux`、`.log` などのいくつかの中間ファイルも生成されます。
```console
$ yamlresume build --help
Usage: yamlresume build [options]
build a resume to LaTeX and PDF
Arguments:
resume-path the resume file path
Options:
--no-pdf only generate TeX file without PDF
--no-validate skip resume schema validation
-h, --help display help for command
$ yamlresume build my-resume.yml
◐ Generating resume PDF file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume PDF file successfully.
```
### `--no-pdf`
LaTeX ファイルのみを生成し、PDF を生成したくない場合は、`--no-pdf` オプションを使用できます。
```console
$ yamlresume build --no-pdf my-resume.yml
```
### `--no-validate`
履歴書スキーマ検証をスキップしたい場合は、`--no-validate` オプションを使用できます。
```console
$ yamlresume build --no-validate my-resume.yml
```
## Dev
ファイル変更時に YAML から PDF に履歴書をビルド。[`build`](#build) と同じオプションを受け入れますが、YAML ファイルが変更されると自動的に履歴書を再ビルドします(つまり、ウォッチモード)。履歴書の変更をリアルタイムでプレビューするのに非常に便利です。
```console
$ yamlresume dev --help
Usage: yamlresume dev [options]
build a resume on file changes (watch mode)
Arguments:
resume-path the resume file path
Options:
--no-pdf only generate TeX file without PDF
--no-validate skip resume schema validation
-h, --help display help for command
```
## Validate
YAMLResume [スキーマ](/ja/docs/compiler/schema) に従って履歴書を検証。
```console
$ yamlresume validate --help
Usage: yamlresume validate [options]
validate a resume against the YAMLResume schema
Arguments:
resume-path the resume file path
Options:
-h, --help display help for command
```
例えば、以下の履歴書について:
```yml lineNumbers
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
---
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@pp
url: https://ppresume.com/gallery
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
region: California
city: S
country: United States
postalCode: "95814"
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
startDate: Sep 1, 2016
endDate:
courses:
- D
- Programming Language Concepts
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
layouts:
- engine: latex
typography:
fontSize: 13pt
```
`yamlresume validate` は潜在的なエラーのリストを提供し、明確な位置情報を提供します
```console
$ yamlresume validate my-resume.yml
invalid-resume.yml:9:12: warning: email is invalid.
email: hi@pp
^
invalid-resume.yml:19:11: warning: city should be 2 characters or more.
city: S
^
invalid-resume.yml:31:11: warning: courses should be 2 characters or more.
- D
^
invalid-resume.yml:41:17: warning: font size option is invalid, it must be one of the following: ["10pt", "11pt", "12pt"]
fontSize: 13pt
^
✖ Resume validation failed.
```
## Languages
すべての利用可能な言語をリスト。言語コードは [ISO 639 仕様](https://www.iso.org/iso-639-language-code) の仕様に従います。`locale.language` で言語コードを指定して履歴書の言語を変更できます。履歴書の言語を変更すると、すべての固定用語が自動的に翻訳されます。詳細については [コンテンツ -> 多言語](/ja/docs/locale) セクションをご覧ください。
```console
$ yamlresume languages list
| locale.language | Language Name | 1:03:48 PM
| --------------- | ------------------------------- |
| en | English |
| zh-hans | Simplified Chinese |
| zh-hant-hk | Traditional Chinese (Hong Kong) |
| zh-hant-tw | Traditional Chinese (Taiwan) |
| es | Spanish |
| fr | French |
| no | Norwegian |
| nl | Dutch |
| ja | Japanese |
| de | German |
```
## Templates
すべての利用可能なテンプレートをリスト。YAML 履歴書で `layouts.[].template` を設定することで履歴書テンプレートを変更できます。詳細については [PPResume テンプレート](https://docs.ppresume.com/typesetting/templates) をご覧ください。
```console
$ yamlresume templates list
| `layouts.[].template` | `Engine` | `Template Name` | `Description` |
| --------------------- | -------- | ------------------ | -------------------------------------- |
| `moderncv-banking` | `latex` | `ModernCV Banking` | `ModernCV template with banking style` |
| `moderncv-casual` | `latex` | `ModernCV Casual` | `ModernCV template with casual style` |
| `moderncv-classic` | `latex` | `ModernCV Classic` | `ModernCV template with classic style` |
```
# 比較
URL: (/ja/docs/comparisons)
## JSON Resume
[JSON Resume](https://jsonresume.org) は、履歴書の構造化データ形式のオープン標準を構築するパイオニアです。最初の[公式リリース](https://jsonresume.org/blog/first-official-release) は 2014 年 7 月 31 日で、10 年以上前のことです。
その公式ウェブサイトから:
```markdown
## 起源と概念化
JSON Resume は、履歴書形式の分散と不整合の問題を解決するソリューションとして構想されました。Microsoft Word や PDF などの形式で作成される従来の履歴書は、異なるシステムで解析される際に互換性の問題に頻繁に遭遇していました。この問題を認識し、Thomas Davis と Roland Sharp は、履歴書作成のための汎用的で機械可読な形式として JSON Resume をオープンソースプロジェクトとして開始しました。
## 開発マイルストーン
このプロジェクトは 2010 年代初期に勢いを得始め、重要なマイルストーンには JSON Resume スキーマの作成、最初の CLI ツールの開発、JSON Resume レジストリの確立が含まれます。これらのマイルストーンは、コミュニティの貢献と、標準化された履歴書形式に対するテクノロジー業界の認識の高まりによって推進されました。
```
JSON Resume は、履歴書の構造化データ形式のオープン標準を構築する上で素晴らしい仕事をしています。しかし、YAMLResume が持ついくつかの機能が欠けています。
YAMLResume は [JSON Resume](https://jsonresume.org/) に深くインスパイアされており、いくつかの点でより意見があります。例えば、JSON Resume は、機械可読データを美しく、人間が読める履歴書に変換する方法について何も言及していません。
以下はいくつかの顕著な違いです:
| 機能 | YAMLResume | JSON Resume |
| ------------- | ---------------- | ----------------- |
| データ形式 | YAML | JSON |
| データ構造 | すべてのトップレベルオブジェクト | いくつかのネストされたオブジェクト |
| タイプセッティングエンジン | LaTeX | なし |
| レイアウト仕様 | 組み込み | 未指定 |
| リッチテキストサポート | はい | いいえ |
将来、JSON Resume を YAMLResume にインポートするツールを提供する予定です。
# クイックスタート
URL: (/ja/docs)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
import { Step, Steps } from "fumadocs-ui/components/steps";
## はじめに
履歴書の作成は難しいことではありませんが、確実に退屈で長くて面倒なプロセスです。
YAMLResume を使用すると、YAML で履歴書を作成・バージョン管理し、プロフェッショナルなレイアウトとタイポグラフィでピクセルパーフェクトな PDF を簡単に作成できます。
YAMLResume は、LaTeX ベースのビルダーである [PPResume](https://ppresume.com) のコアエンジンです。世界中の[何千人もの人々](https://blog.ppresume.com/posts/2024-recap) がピクセルパーフェクトでプロフェッショナルな履歴書を作成し、夢の仕事に就くのを支援してきました。ここでは、人々に[ベンダーロックインにノーを言う](https://blog.ppresume.com/posts/no-vendor-lock-in) 権利と自由を与えるために、エンジンをオープンソース化することを決定しました。
## はじめに
### Docker ユーザー
Docker ユーザーの場合、[Docker イメージ](https://hub.docker.com/r/yamlresume/yamlresume) をご用意しており、[XeTeX](https://www.tug.org/xetex/) や[推奨フォント](/ja/docs/installation#font) などのすべての依存関係とともに [yamlresume cli](https://www.npmjs.com/package/yamlresume) がインストールされています。
以下のコマンドで新しい履歴書を作成できます:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
```
`my-resume.yml` を適切に編集し、yaml から pdf に履歴書をビルドします:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
```
### macOS ユーザー
[Homebrew](https://brew.sh/) をパッケージマネージャーとして使用している macOS を使用していると仮定します。そうでない場合は、お使いのオペレーティングシステムの詳細な手順については[インストール](/ja/docs/installation) ガイドをご覧ください。
#### Node.js のインストール
[Node.js](https://nodejs.org/en/download/package-manager/all#macos) 20.x 以降を[インストール](https://nodejs.org/en/download/package-manager/all#macos) する必要があります。
```sh
brew install node
```
#### タイプセッティングエンジンのインストール
YAMLResume は PDF を生成するために[タイプセッティングエンジン](/ja/docs/installation#typesetting-engine) が必要です。現在、2 つのタイプセッティングエンジンをサポートしています:
* [XeTeX](/ja/docs/installation#xetex)
* [Tectonic](/ja/docs/installation#tectonic)
<>
```sh
brew install mactex
```
```sh
brew install tectonic
```
>
#### YAMLResume のインストール
`yamlresume` のインストールは簡単です。お好みの Node.js パッケージマネージャーを使用してインストールできます:
<>
```sh
npm install -g yamlresume
```
```sh
pnpm add -g yamlresume
```
```sh
yarn global add yamlresume
```
```sh
bun add -g yamlresume
```
>
[`yamlresume` を Homebrew](http://formulae.brew.sh/formula/yamlresume)
経由でインストールすることもできます:
```sh
brew install yamlresume
```
`yamlresume` が正常にインストールされたことを確認します:
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build a resume on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
#### \[オプション] フォントのインストール
##### Linux Libertine フォント
最高の見た目の PDF 出力のために [Linux Libertine フォント](/ja/docs/installation#linux-libertine) のインストールも推奨しますが、これはオプションです。
```sh
brew install font-linux-libertine
```
##### Noto フォント
CJK(中国語、日本語、韓国語)の履歴書を作成する必要がある場合は、[Noto フォント](https://fonts.google.com/noto) のインストールを推奨します:
```sh
brew install font-noto-sans-cjk font-noto-serif-cjk
```
#### 最初の YAML 履歴書を作成
OK、すべて準備が整いました。`yamlresume new` で yaml 履歴書を作成できます:
```console
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
`resume.yml` を適切に編集し、`yamlresume build` で PDF を生成できます:
```console
$ yamlresume build my-resume.yml
◐ Generating resume PDF file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resumep PDF file successfully.
```
ファイル変更時に履歴書をビルドするために `yamlresume dev` も使用できます:
```console
$ yamlresume dev my-resume.yml
◐ Generating resume PDF file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume PDF file successfully.
◐ Watching file changes: my-resume.yml...
```
## サンプル履歴書
[ソフトウェアエンジニア](https://github.com/yamlresume/yamlresume/blob/main/packages/cli/resources/resume.yml) 向けに調整された 2 ページのサンプル履歴書の完全な YAML コードは次のとおりです:
```yml lineNumbers
---
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@ppresume.com
url: https://ppresume.com/gallery
# All summary fields supports a limited rich text capabilities in markdown
# syntax:
#
# - bold, (e.g, `**bold**`)
# - italic, (e.g, `*italic*`)
# - ordered list, unordored list and nested sub list
# - links (e.g. `[link](https://ppresume.com)`)
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
city: Sacramento
region: California
country: United States
postalCode: "95814"
profiles:
- network: Line
url: https://line.com/PPResumeX
username: PPResumeX
- network: Twitter
url: https://twitter.com/PPResumeX
username: PPResumeX
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
# Valid degree options:
#
# - 'Middle School'
# - 'High School'
# - 'Diploma'
# - 'Associate'
# - 'Bachelor'
# - 'Master'
# - 'Doctor'
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
# Should be a valid date string that can be parsed by `new Date(dateStr)`
# in JavaScript, eg. '2020-01', '2020-02-03', 'Jul 1, 2023' etc.
#
# The date part would be removed in the final output as most of the time
# people won't really care about the exact date for your working
# experience or education background, etc.
# ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/Date
startDate: Sep 1, 2016
# Leave endDate blank to indicate "Present"
endDate: Jul 1, 2020
courses:
- Discrete Methods in Computer Science
- Programming Language Concepts
- Data Structures and Object-Oriented Design
- Operating Systems
- Computer Architecture
- Database Systems
- Computer Networking
- Introduction to the Theory of Computing
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
work:
- name: PPResume
url: https://ppresume.com
startDate: Dec 1, 2022
endDate: ""
position: Senior Software Engineer
summary: |
- Developed and implemented efficient and scalable code, ensuring high-quality and maintainable web applications
- Collaborated with cross-functional teams to gather project requirements and translate them into technical solutions
- Conducted thorough testing and debugging to identify and resolve any issues or bugs in the software
- Actively participated in code reviews, providing valuable feedback to improve code quality and adherence to best practices
- Mentored and guided junior developers, fostering a collaborative and growth-oriented team environment
keywords:
- Scalibility
- Growth
- Quality
- Mentorship
- name: PPResume
url: https://ppresume.com
startDate: Sep 1, 2020
endDate: Dec 1, 2022
position: Software Engineer
summary: |
- Created reusable React components to ensure code efficiency and maintainability
- Integrated with RESTful APIs to fetch and display dynamic data on the frontend
- Implemented client-side routing using React Router for smooth navigation between pages
- Actively participated in Agile development methodologies, attending daily stand-up meetings and sprint planning sessions
keywords:
- RESTful
- React
- Agile
languages:
# Valid language fluency options:
#
# - 'Elementary Proficiency'
# - 'Limited Working Proficiency'
# - 'Minimum Professional Proficiency'
# - 'Full Professional Proficiency'
# - 'Native or Bilingual Proficiency'
- language: English
fluency: Native or Bilingual Proficiency
keywords:
- TOEFL 110
- IELTS 7.5
- language: Chinese
fluency: Elementary Proficiency
keywords: []
skills:
# Valid skill level options:
#
# - 'Novice'
# - 'Beginner'
# - 'Intermediate'
# - 'Advanced'
# - 'Expert'
# - 'Master'
- name: Web Development
level: Expert
keywords:
- Python
- Ruby
- CSS
- React
- JavaScript
- name: DevOps
level: Intermediate
keywords:
- Python
- Kubernetes
- Docker
- Shell
- Ansible
- name: Design
level: Intermediate
keywords:
- Sketch
- Figma
- Photoshop
awards:
- title: Dean's List
awarder: University of Southern California
date: Oct 2016
summary: |
Awarded to students who achieve a high academic standing by maintaining a specified grade point average (GPA) during a semester.
certificates:
- name: AWS Certified Developer - Associate
url: https://aws.amazon.com/certification/
issuer: AWS
date: Mar 2021
publications:
- publisher: ACM Transactions on Interactive Intelligent Systems
url: https://dl.acm.org/journal/tiis
name: Enhancing Human-Computer Interaction through Augmented Reality
releaseDate: Dec 2017
summary: |
- Explores the potential of augmented reality (AR) in improving interaction between humans and computers
- Highlights benefits of AR in various areas such as gaming, education, healthcare, and design
- Discusses challenges and future directions of AR technology in enhancing user experience
references:
- name: Dr. Amanda Reynolds
phone: "(555) 123-4567"
relationship: Computer Science Professor
email: amanda.reynolds@usc.edu
summary: |
Andy Dufresne shows exceptional problem-solving skills and a solid understanding of programming concepts, he would bring immense value to any team or organization he becomes a part of.
projects:
- name: EduWeb
url: https://www.eduweb.xyz/
description: A web-based educational platform for interactive learning
startDate: Sep 2016
endDate: Dec 2016
summary: |
- Designed to enhance online learning experiences
- Facilitates students' engagement and collaboration through interactive features and user-friendly interface
- Offers a wide range of courses across various subjects
- Aims to improve the way students learn through the power of the web
keywords:
- Education
- Online Learning
- HCI
interests:
- name: Sports
keywords:
- Soccer
- Swimming
- Bicycling
- Hiking
- name: Music
keywords:
- Piano
- Guitar
volunteer:
- organization: USC Computer Science and Engineering Society
url: https://www.usccsesociety.org/
position: Tech Mentor
startDate: Sep 2015
endDate: Jul 2023
summary: |
- Volunteered as a Tech Mentor at USC Computer Science and Engineering Society
- Provided guidance and assistance to fellow students in their technical projects and coursework
- Assisted in organizing workshops, coding competitions, and networking events for the society members
- Contributed to fostering a collaborative and supportive environment within the student community
locale:
# Use `yamlresume languages list` to get the list of supported languages
language: en
layouts:
- engine: latex
page:
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
showPageNumbers: true
# Use `yamlresume templates list` to get the list of available templates
template: moderncv-banking
typography:
# LaTeX engine only supports 10pt, 11pt, and 12pt
fontSize: 11pt
- engine: markdown
```
[生成された PDF](https://github.com/yamlresume/yamlresume/blob/main/packages/cli/resources/resume.pdf) のスクリーンショットは次のとおりです:
異なる[テンプレート](https://ppresume.com/gallery/templates) と[多言語](https://ppresume.com/gallery/languages) のサポートを含む、より多くの例については [PPResume ギャラリー](https://ppresume.com/gallery) をご確認ください。
## 詳細情報
# インストール
URL: (/ja/docs/installation)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
YAMLResume は Node.js ツールで、内部では YAML 形式の履歴書を LaTeX コードに変換し、LaTeX タイプセッティングエンジンを呼び出して生成された LaTeX コードを PDF にコンパイルします。また、最適な PDF 出力を得るために、いくつかのフォントのインストールも推奨しています。要するに、YAMLResume を始めるには以下をインストールする必要があります:
* Node.js
* [yamlresume パッケージ](https://www.npmjs.com/package/yamlresume)
* タイプセッティングエンジン
* \[オプション] いくつかのフォント
これは少し複雑に聞こえますが、心配ありません。私たちがサポートします。
## Docker ユーザー
Docker ユーザーの場合、[Docker イメージ](https://hub.docker.com/r/yamlresume/yamlresume) をご用意しており、すべてが事前にパッケージ化されています:
* [Node.js](/ja/docs/installation#nodejs)
* [yamlresume CLI](/ja/docs/installation#yamlresume)
* [XeTeX](/ja/docs/installation#xetex)
* [推奨フォント](/ja/docs/installation#font)
以下のコマンドで新しい履歴書を即座に作成できます:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
```
このコマンドは、現在のディレクトリに `my-resume.yml` という新しい履歴書を作成します。手順:
1. `docker run ... yamlresume/yamlresume` - `yamlresume/yamlresume` イメージから新しいコンテナを実行します。このイメージがローカルマシンに存在しない場合、[Docker Hub](https://hub.docker.com/r/yamlresume/yamlresume) からプルします。
2. `--rm` - コンテナが終了時に自動的に削除されます
3. `-v $(pwd):/home/yamlresume` - 現在のディレクトリ(`$(pwd)`)をコンテナの `/home/yamlresume` にマウントし、コンテナがローカルファイルにアクセスできるようにします
4. `new my-resume.yml` - yamlresume CLI の [new](/ja/docs/cli#new) サブコマンドを実行して、ファイル名 `my-resume.yml` で新しい履歴書を作成します
編集後、yaml から pdf に履歴書をビルドします:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
```
基本的に、この方法で `yamlresume` [CLI サブコマンド](/cli) をすべて呼び出すことができます—`yamlresume/yamlresume` の後にサブコマンドを追加し、対応する使用ガイドに従うだけです。
`-v` フラグは非常に重要です。現在のディレクトリ(`$(pwd)`)をコンテナ内の `/home/yamlresume` にマウントし、ローカルディレクトリとコンテナ間の双方向ファイル同期を可能にします。
[Docker Hub](https://hub.docker.com/r/yamlresume/yamlresume) から `yamlresume/yamlresume` イメージをプルする際に問題が発生した場合、心配ありません。[github ミラー](https://github.com/yamlresume/yamlresume/pkgs/container/yamlresume) をご用意しています。
[ghcr イメージ](https://github.com/yamlresume/yamlresume/pkgs/container/yamlresume) は以下の方法で取得できます:
```sh
docker pull ghcr.io/yamlresume/yamlresume
```
### 権限の問題
Docker コンテナを実行する際に[権限の問題](https://github.com/yamlresume/yamlresume/issues/24) が発生する場合があります。これは `yamlresume/yamlresume` イメージが `USER yamlresume` ディレクティブで構築されており、デフォルトでより少ない権限で実行されるためです。
この問題を解決するには 2 つの方法があります:
1. ホストのユーザー名/グループ ID を使用してコンテナを実行:
```sh
docker run --rm -v $(pwd):/home/yamlresume -u $(id -u):$(id -g) yamlresume/yamlresume new my-resume.yml
```
これはコンテナを実行する推奨方法です。ホストユーザーが現在のディレクトリにアクセスする権限がある限り、ホストのユーザー名/グループ ID でコンテナを実行できます。
2. `-u root` を使用して root アクセス権限でコンテナを実行:
```sh
docker run --rm -v $(pwd):/home/yamlresume -u root yamlresume/yamlresume new my-resume.yml
```
これはコンテナを実行する最も推奨されない方法です。セキュリティ上の問題を引き起こす可能性があるため推奨されません。何をしているか確信がある場合のみ実行してください。
最後に、GitHub Actions で `yamlresume` Docker コンテナを実行する場合、[GitHub のドキュメント](https://docs.github.com/en/actions/reference/runners/github-hosted-runners#docker-container-filesystem) によると、root アクセス権限が必要な場合があります:
> 注意:GitHub Actions はデフォルトの Docker ユーザー(root)で実行する必要があります。Dockerfile で USER ディレクティブを設定しないでください。そうしないと GITHUB\_WORKSPACE にアクセスできません。
参照:[Understanding the Docker USER Instruction](https://www.docker.com/blog/understanding-the-docker-user-instruction/)
## 非 Docker ユーザー
Docker ユーザーでない場合は、以下の適切な説明に従って、オペレーティングシステムに応じて yamlresume CLI とすべての必要な依存関係をインストールしてください。この記事を書いている時点で、私たちのガイドは macOS、Windows、およびいくつかの Linux ディストリビューション(Ubuntu と RHEL ベースのディストリビューション)をカバーしています。
### Node.js
Node.js 20.x または更新バージョンが必要です。
理論的には `yamlresume` は Node.js 18 で動作するはずですが、Node.js 18 LTS が
[2025 年 4 月 30 日](https://nodejs.org/en/blog/release/v18.20.8)
にライフサイクル終了を迎える予定のため、Node.js 20
または更新バージョンの使用を強く推奨します。
異なるオペレーティングシステムで Node.js をインストールする方法は 100 以上あります。開始するには、公式の [Node.js ダウンロード](https://nodejs.org/en/download) をご確認ください。
Node.js のインストールには[パッケージマネージャー](https://nodejs.org/en/download/package-manager/all) の使用を推奨します。
[Homebrew](https://brew.sh/) ユーザー向け:
```sh
brew install node
```
[Chocolatey](https://chocolatey.org/) ユーザー向け:
```sh
choco install nodejs.install
```
Ubuntu 24.10 または更新バージョン向け:
```sh
sudo apt install nodejs
```
Ubuntu 24.04 またはそれより古いバージョンの場合は、[NodeSource](https://downloads.nodesource.com/#debian) を確認して Node.js 20 または更新バージョンを取得してください。
Fedora、AlmaLinux、Rocky Linux などの RHEL ベースの Linux 向け:
```sh
sudo dnf install nodejs
```
### YAMLResume CLI
`yamlresume` のインストールは非常に簡単です。お好みの Node.js パッケージマネージャーを使用してインストールできます:
<>
```console
npm install -g yamlresume
```
```console
pnpm add -g yamlresume
```
```console
yarn global add yamlresume
```
```console
bun add -g yamlresume
```
>
macOS をお使いで [Homebrew](https://brew.sh) を使用している場合は、[Homebrew から
yamlresume](http://formulae.brew.sh/formula/yamlresume) をインストールすることもできます:
```sh
brew install yamlresume
```
`yamlresume` が正常にインストールされたことを確認:
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build a resume on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
`yamlresume` をインストールせずに試したい場合は、
`npx`、`pnpx` またはその他の類似ツールを使用できます:
<>
```console
npx yamlresume help
```
```console
yarn dlx yamlresume help
```
```console
pnpx yamlresume help
```
```console
bun exec yamlresume help
```
>
### タイプセッティングエンジン
内部的には、`yamlresume` はコンパイラの作業を完了し、YAML 履歴書を [AST](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/compiler/ast.ts) に解析し、その後 [AST を LaTeX コードに変換](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/compiler/codegen/latex.ts) します。
小型コンパイラとして、`yamlresume` は生成された LaTeX コードを PDF にコンパイルするためにタイプセッティングエンジンに依存します。したがって、`yamlresume` を使用して履歴書 PDF を生成する前に、まずタイプセッティングエンジンをインストールする必要があります。
YAMLResume は現在 2 つのタイプセッティングエンジンをサポートしています:[XeTeX](#xetex) と
[Tectonic](#tectonic)。
この記事を書いている時点で、[LaTeX](https://www.latex-project.org/) は
プロフェッショナルな外観の PDF
を生成するための最良のタイプセッティングエンジン選択肢です。
[Typst](https://typst.app/) は優れた代替品ですが、まだ 初期段階にあり、CJK
サポートが未成熟で、本番使用には適していません。
以前、[タイプセッティングエンジンについて](https://blog.ppresume.com/posts/on-typesetting-engines)
の記事を書き、[PPResume](https://ppresume.com)
を設立する際に他のタイプセッティングエンジンではなく LaTeX
を選んだ理由を説明しました。
#### XeTeX
[XeTeX](https://tug.org/xetex/) は [Unicode](https://en.wikipedia.org/wiki/Unicode) を使用し、[OpenType](https://en.wikipedia.org/wiki/OpenType)、[Graphite](https://fonts.adobe.com/fonts/graphite)、[Apple Advanced Typography (AAT)](https://en.wikipedia.org/wiki/Apple_Advanced_Typography) などの現代フォント技術をサポートする [TeX](https://en.wikipedia.org/wiki/TeX) タイプセッティングエンジンです。
多くの学術・科学関係者に広く使用されている、非常に成熟した安定したタイプセッティングエンジンです。
最も簡単な方法は **MacTeX** ディストリビューションをインストールすることです。
XeTeX および多くの他の TeX 関連プログラムとパッケージが含まれています。[MacTeX ウェブサイト](https://www.tug.org/mactex/) からダウンロードするか、homebrew でインストールできます:
```sh
# install the full mactex
brew install mactex
# or if you want to save some disk space
brew install mactex-no-gui
```
[MiKTeX ディストリビューション](https://miktex.org) は Windows の人気選択肢で、XeTeX が含まれています。[MiKTeX ウェブサイト](https://miktex.org/download) からダウンロードできます。
または、XeTeX も含む **TeX Live** を Windows にインストールできます。[TeX Live ウェブサイト](https://www.tug.org/texlive/acquire-netinstall.html) からダウンロードしてください。
ほとんどの Linux ディストリビューションは、パッケージマネージャーを通じて TeX Live を提供しています。XeTeX は通常 `texlive-xetex` パッケージまたはより大きな `texlive-full` メタパッケージに含まれています。
Ubuntu の場合、ネットワークが良好で約 10GB のディスク容量がある場合は、完全な texlive ディストリビューションをインストールできます:
```sh
sudo apt install texlive-full
```
そうでなければ、最小限の必要なパッケージをインストールできます:
```sh
sudo apt install texlive-xetex texlive-fonts-extra texlive-lang-all
```
Fedora、AlmaLinux、Rocky Linux などの RHEL ベースの Linux の場合、十分なディスク容量と良好なネットワークがあれば、完全な TeX Live ディストリビューションをインストールできます:
```sh
sudo dnf install texlive-scheme-full
```
そうでなければ最小限の必要なパッケージをインストールできます:
```sh
sudo dnf install \
texlive-scheme-medium \
texlive-moderncv \
texlive-ctex \
texlive-academicons
```
または、[TeX Live ウェブサイト](https://www.tug.org/texlive/acquire-netinstall.html) から直接インストーラーを使用して TeX Live をインストールすることもできます。これは異なる Linux ディストリビューションで動作します。
XeTeX が正常にインストールされたことを確認:
```console
$ xetex -v
XeTeX 3.141592653-2.6-0.999994 (TeX Live 2022)
kpathsea version 6.3.4
Copyright 2022 SIL International, Jonathan Kew and Khaled Hosny.
There is NO warranty. Redistribution of this software is
covered by the terms of both the XeTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the XeTeX source.
Primary author of XeTeX: Jonathan Kew.
Compiled with ICU version 70.1; using 70.1
Compiled with zlib version 1.2.11; using 1.2.11
Compiled with FreeType2 version 2.11.1; using 1.2.11
Compiled with Graphite2 version 1.3.14; using 1.3.14
Compiled with HarfBuzz version 3.4.0; using 3.4.0
Compiled with libpng version 1.6.37; using 1.6.37
Compiled with pplib version v2.05 less toxic i hope
Using Mac OS X Core Text and Cocoa frameworks
```
#### Tectonic
[Tectonic](https://tectonic-typesetting.github.io) は、[XeTeX](https://tug.org/xetex/) と [TeXLive](https://www.tug.org/texlive/) によってサポートされる、モダンで完全で自己完結型の [TeX](https://en.wikipedia.org/wiki/TeX)/[LaTeX](https://www.latex-project.org/) エンジンです。
完全な TeX Live ディストリビューションは通常数 GB のディスク容量を占有しますが、tectonic の初期インストールは 10+ MB しか占有しません。サポートファイルを自動的にダウンロードするため、完全な LaTeX ディストリビューションをインストールする必要はありません。新しい LaTeX パッケージの使用を開始すると、Tectonic は必要なファイルのみをダウンロードして処理を続行します。
Tectonic は公式[インストールガイド](https://tectonic-typesetting.github.io/en-US/install.html) を提供していますが、これは tectonic をインストールコマンドを実行したディレクトリに配置するだけで、`yamlresume` は `$PATH` にグローバルな `tectonic` コマンドが必要なため、シェルのトリックを使用して自分で解決する必要があります。
macOS ユーザーの場合、Homebrew がプリビルドパッケージを提供しているため幸運です:
```sh
brew install tectonic
```
私の経験では、tectonic と公式 XeTeX の間にはまだいくつかの小さな互換性の問題があるため、完全な TeX Live ディストリビューションの長いダウンロード時間を気にしない場合は、XeTeX がここでの推奨選択肢です。
### フォント
#### Linux Libertine
YAMLResume は、ラテン文字のデフォルトフォントとして [Linux Libertine](https://www.dafont.com/linux-libertine.font) を採用しています。最適な PDF 出力を得るために、インストールを強く推奨します。
Homebrew ユーザー向け:
```sh
brew install font-linux-libertine
```
そうでなければ、[Linux Libertine](https://www.dafont.com/linux-libertine.font) の最新バージョンをウェブサイトからダウンロードし、macOS の [Font Book](https://support.apple.com/en-gb/guide/font-book/fntbk1000/mac) を使用してフォントをインストールできます。
[Linux Libertine](https://www.dafont.com/linux-libertine.font)
の最新バージョンをウェブサイトからダウンロードし、アーカイブを解凍してフォントをインストールしてください。
Ubuntu ユーザーの場合、Linux Libertine フォントは `texlive-fonts-extra` パッケージに含まれていますが、手動でインストールしたい場合は:
```sh
sudo apt install fonts-linuxlibertine
```
Fedora、AlmaLinux、Rocky Linux などの RHEL ベースの Linux の場合、Linux Libertine フォントを以下の方法でインストールできます:
```sh
sudo dnf install linux-libertine-fonts
```
#### Google Noto
CJK 履歴書が必要な場合、[最適な unicode カバレッジ](https://github.com/ppresume/community/issues/63) を得るために [Google Noto フォント](https://fonts.google.com/noto/) もインストールする必要があります。
Homebrew ユーザー向け:
```sh
brew install font-noto-sans-cjk font-noto-serif-cjk
```
Noto
フォントをダウンロードし、[公式ガイド](https://fonts.google.com/noto/use#use-noto-fonts)
に従って Windows にインストールしてください。
Ubuntu ユーザー向け:
```sh
sudo apt install fonts-noto-cjk fonts-noto-cjk-extra
```
Fedora、AlmaLinux、Rocky Linux などの RHEL ベースの Linux の場合、Noto フォントを以下の方法でインストールできます:
```sh
sudo dnf install google-noto-sans-cjk-fonts google-noto-serif-cjk-fonts
```
## トラブルシューティング
`yamlresume` またはその依存関係のインストールで問題が発生した場合は、[問題を報告](https://github.com/yamlresume/yamlresume/issues/new) してください。
`yamlresume` またはそのサブコマンドに `--verbose` フラグを渡すことで、詳細ログを有効にできます。
### 疲れましたか?
インストールプロセスに疲れた場合は、[PPResume](https://ppresume.com) を試すことができます。これは YAMLResume をオープンソース化したホスト型商用履歴書ビルダーソリューションです。
# アーキテクチャ
URL: (/ja/docs/compiler/architecture)
他のコンパイラと同様に、YAMLResume も複数の段階を通じて履歴書データを入力から出力に変換するパイプラインを含んでいます。
* **入力段階**:YAML と JSON 履歴書ファイルを入力として受け入れます。
* **解析段階**:入力ファイルの履歴書コンテンツとレイアウトを解析・検証します。
* **変換段階**:パイプラインを使用して履歴書コンテンツとレイアウトデータを変換します。
* **コード生成段階**:LaTeX テンプレートを使用して履歴書コンテンツとレイアウトデータをレンダリングします。
* **出力段階**:最終的な PDF 文書を生成します。
以下は YAMLResume のアーキテクチャ図です:
## データ処理パイプライン
変換パイプラインは、YAML ファイルからの生の履歴書データを処理し、LaTeX レンダリングの準備をします。2 つの主要段階で動作します:コンテンツ変換とレイアウト変換:
* コンテンツ変換段階では、すべてのテキストデータを処理し、ローカライゼーションルールを適用し、LaTeX 特殊文字をエスケープし、派生値を計算します。
* レイアウト変換段階では、ユーザーが提供したレイアウト設定をデフォルト値とマージし、地域固有のタイポグラフィルールを適用します。
このような長いデータ処理パイプラインでは、コードが言葉よりも説得力があります。実装に興味がある場合は、詳細について [transform.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/preprocess/transform.ts) をご確認ください。
# コンパイラ
URL: (/ja/docs/compiler)
## 概要
YAMLResume は、ユーザーが YAML を使用して履歴書を作成し、その後、精密なタイプセッティングでプロフェッショナルな PDF 文書を生成できる履歴書コンパイラです。
YAMLResume は[関心の分離](https://en.wikipedia.org/wiki/Separation_of_concerns) をコア設計原則として採用しており、これによりユーザーは履歴書のコンテンツに集中でき、スタイル/レイアウトについて過度に心配する必要がなく、コンテンツを変更することなくテンプレートを交換し、異なる出力形式間で一貫性を保つことができます。
つまり、ユーザーは履歴書のコンテンツにのみ集中すべきであり、YAMLResume がタイプセッティング、レイアウト、ローカライゼーション、PDF 生成などの残りの処理を行います。
主要機能:
* [コンテンツ](/ja/docs/compiler/types#resumecontent) と[レイアウト](/ja/docs/compiler/types#resumecontent) をカバーする[標準構造化 YAML 形式](/ja/docs/compiler/types) を定義
* [zod](https://zod.dev) または [JSON Schema](https://json-schema.org) を使用して履歴書コンテンツを検証
* [パイプライン](/ja/docs/compiler/architecture#data-processing-pipeline) を使用して履歴書コンテンツデータを変換
* [LaTeX テンプレート](/ja/docs/layouts/latex/templates) を使用してコンテンツをレンダリング
* [XeTeX](/ja/docs/installation#xetex) または [Tectonic](/ja/docs/installation#tectonic) コンパイルエンジンを通じて PDF を生成
* [多言語](/ja/docs/locale) とローカライゼーションをサポート
* プロジェクト管理とビルド自動化のための [CLI](/ja/docs/cli) コマンドを提供
以下のライブデモをご覧になり、なぜ私が YAMLResume を**履歴書コンパイラ**と呼ぶのかを理解してください:
[](https://asciinema.org/a/728098)
## 詳細情報
# タイプ
URL: (/ja/docs/compiler/types)
この文書は、YAMLResume 履歴書構造を定義する TypeScript タイプの概要を提供します。TypeScript プロジェクトとして、YAMLResume はデータの一貫性を確保するために静的タイプを採用しています。このファイルは、個人詳細、教育、経験、スキルなどを含む、履歴書情報を表現するために使用されるコアデータ構造の概要を提供します。
詳細については、実際のソース [types/index.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/models/types/index.ts) をご確認ください。
これらのタイプを理解することは、YAMLResume の機能をカスタマイズまたは拡張したい貢献者や開発者にとって重要です。
この文書は、有効な YAMLResume を作成しようとするユーザーに権威ある参照を提供し、オプションと必須フィールドの違いを明確にします。YAMLResume で正常にコンパイルするために、最小履歴書には以下の基本フィールドが含まれている必要があります:
* `content.basics.name`
* `education[number].area`
* `education[number].degree`
* `education[number].institution`
* `education[number].startDate`
したがって、理論的には最小実行可能履歴書は以下のようになります:
```yml lineNumbers
content:
basics:
name: Xiao Hanyu
education:
- area: Computer Science and Technology
degree: Bachelor
institution: Zhejiang University
startDate: Sep, 2007
```
## Resume
全体的な履歴書構造を定義し、コンテンツとレイアウトを含みます。
| 属性 | タイプ | 必須 | 説明 |
| ---------- | --------------------- | -- | -------------------- |
| `content` | [`Content`](#content) | ✅ | 履歴書全体のコンテンツ構造を定義します。 |
| `layouts?` | [`Layouts`](#layouts) | ⬜ | 全体的なレイアウト設定を定義します。 |
| `locale?` | [`Locale`](#locale) | ⬜ | 全体的なロケール設定を定義します。 |
以下は履歴書構造の高レベル図です:
### Content
履歴書全体のコンテンツ構造を定義します。
| 属性 | タイプ | 必須 | 説明 |
| --------------- | --------------------------------------- | -- | ---------------------------- |
| `basics` | [`BasicsItem`](#basicsitem) | ✅ | コア個人情報と連絡先情報を表します。 |
| `education` | [`EducationItem[]`](#educationitem) | ✅ | 教育経験のコレクションを含みます。 |
| `awards?` | [`AwardItem[]`](#awarditem) | ⬜ | 賞と認識のコレクションを含みます。 |
| `certificates?` | [`CertificateItem[]`](#certificateitem) | ⬜ | 認証と証明書のコレクションを含みます。 |
| `interests?` | [`InterestItem[]`](#interestitem) | ⬜ | 興味、趣味、または個人的な活動のコレクションを含みます。 |
| `languages?` | [`LanguageItem[]`](#languageitem) | ⬜ | 言語能力のコレクションを含みます。 |
| `location?` | [`LocationItem`](#locationitem) | ⬜ | 位置情報を含みます。 |
| `projects?` | [`ProjectItem[]`](#projectitem) | ⬜ | プロジェクトのコレクションを含みます。 |
| `profiles?` | [`ProfileItem[]`](#profileitem) | ⬜ | オンラインプロフィールのコレクションを含みます。 |
| `publications?` | [`PublicationItem[]`](#publicationitem) | ⬜ | 出版物のコレクションを含みます。 |
| `references?` | [`ReferenceItem[]`](#referenceitem) | ⬜ | 推薦人のコレクションを含みます。 |
| `skills?` | [`SkillItem[]`](#skillitem) | ⬜ | スキルのコレクションを含みます。 |
| `volunteer?` | [`VolunteerItem[]`](#volunteeritem) | ⬜ | ボランティア経験のコレクションを含みます。 |
| `work?` | [`WorkItem[]`](#workitem) | ⬜ | 職歴と雇用履歴のコレクションを含みます。 |
#### AwardItem
獲得した単一の賞、名誉、または認識を表します。
| 属性 | タイプ | 必須 | 説明 |
| ---------- | -------- | -- | ------------------------- |
| `awarder` | `string` | ✅ | 賞を授与した組織または団体。 |
| `title` | `string` | ✅ | 賞の名前またはタイトル。 |
| `date?` | `string` | ⬜ | 受賞日(例:「2020」、「Oct 2020」)。 |
| `summary?` | `string` | ⬜ | 賞に関する短い説明または詳細情報。 |
#### BasicsItem
コア個人情報と連絡先情報を表します。
| 属性 | タイプ | 必須 | 説明 |
| ----------- | -------- | -- | ------------------------------- |
| `name` | `string` | ✅ | フルネーム。 |
| `email?` | `string` | ⬜ | メールアドレス。 |
| `headline?` | `string` | ⬜ | 短い専門タイトルまたは役職(例:「ソフトウェアエンジニア」)。 |
| `phone?` | `string` | ⬜ | 電話番号。 |
| `summary?` | `string` | ⬜ | 専門的な要約または目標声明。 |
| `url?` | `string` | ⬜ | 個人ウェブサイトまたはポートフォリオ URL。 |
#### CertificateItem
単一の認証、証明書、または専門資格を表します。
| 属性 | タイプ | 必須 | 説明 |
| -------- | -------- | -- | ---------------------------- |
| `issuer` | `string` | ✅ | 証明書を発行した組織。 |
| `name` | `string` | ✅ | 証明書名。 |
| `date?` | `string` | ⬜ | 証明書取得日(例:「2021」、「Nov 2021」)。 |
| `url?` | `string` | ⬜ | 証明書に関連する URL(例:検証リンク)。 |
#### EducationItem
単一の教育経験または学位プログラムを表します。
| 属性 | タイプ | 必須 | 説明 |
| ------------- | ------------------- | -- | ---------------------------------------- |
| `area` | `string` | ✅ | 研究分野(例:「コンピュータサイエンス」)。 |
| `degree` | [`Degree`](#degree) | ✅ | 取得した学位タイプ。 |
| `institution` | `string` | ✅ | 機関名。 |
| `startDate` | `string` | ✅ | 学習開始日(例:「2016」、「Sep 2016」)。 |
| `courses?` | `string[]` | ⬜ | 受講したコースのリスト。 |
| `endDate?` | `string` | ⬜ | 学習終了日(例:「2020」、「May 2020」)、空値は「現在」を表します。 |
| `summary?` | `string` | ⬜ | 成果または詳細情報の説明。 |
| `score?` | `string` | ⬜ | GPA または学業成績。 |
| `url?` | `string` | ⬜ | 機関または学位に関連する URL。 |
#### InterestItem
単一の興味、趣味、または個人的な活動を表します。
| 属性 | タイプ | 必須 | 説明 |
| ----------- | ---------- | -- | --------------------- |
| `name` | `string` | ✅ | 興味カテゴリ名(例:「読書」、「写真」)。 |
| `keywords?` | `string[]` | ⬜ | 興味に関連するキーワード。 |
#### LanguageItem
単一の言語能力項目を表します。
| 属性 | タイプ | 必須 | 説明 |
| ----------- | ----------------------- | -- | --------------------------- |
| `fluency` | [`Fluency`](#fluency) | ✅ | 言語の流暢度。 |
| `language` | [`Language`](#language) | ✅ | 言語。 |
| `keywords?` | `string[]` | ⬜ | 言語スキルに関連する特定のキーワード(例:「翻訳」)。 |
#### LocationItem
位置と住所情報を表します。
| 属性 | タイプ | 必須 | 説明 |
| ------------- | --------------------- | -- | ---------- |
| `city` | `string` | ✅ | 都市名。 |
| `address?` | `string` | ⬜ | 住所。 |
| `country?` | [`Country`](#country) | ⬜ | 国コードまたは国名。 |
| `postalCode?` | `string` | ⬜ | 郵便番号。 |
| `region?` | `string` | ⬜ | 州、省、または地域。 |
#### ProfileItem
単一のオンラインプロフィールまたはソーシャルメディアの存在を表します。
| 属性 | タイプ | 必須 | 説明 |
| ---------- | --------------------- | -- | ------------------- |
| `network` | [`Network`](#network) | ✅ | ネットワークまたはプラットフォーム名。 |
| `username` | `string` | ✅ | プラットフォーム上のユーザー名。 |
| `url?` | `string` | ⬜ | プロフィールの URL。 |
#### ProjectItem
単一のプロジェクト、ポートフォリオ作品、または技術的な作業を表します。
| 属性 | タイプ | 必須 | 説明 |
| -------------- | ---------- | -- | ------------------------------- |
| `name` | `string` | ✅ | プロジェクト名。 |
| `startDate` | `string` | ✅ | プロジェクト開始日(例:「2021」、「Jan 2021」)。 |
| `summary` | `string` | ✅ | プロジェクトの詳細な成果。 |
| `description?` | `string` | ⬜ | プロジェクトの説明。 |
| `endDate?` | `string` | ⬜ | プロジェクト終了日(例:「2022」、「Jul 2022」)。 |
| `keywords?` | `string[]` | ⬜ | プロジェクトで使用されたキーワードまたは技術。 |
| `url?` | `string` | ⬜ | プロジェクトに関連する URL(例:リポジトリ、ライブデモ)。 |
#### PublicationItem
単一の出版物、研究作業、または学術論文を表します。
| 属性 | タイプ | 必須 | 説明 |
| -------------- | -------- | -- | ------------------------- |
| `name` | `string` | ✅ | 出版物の名前またはタイトル。 |
| `publisher` | `string` | ✅ | 作品の出版社。 |
| `releaseDate?` | `string` | ⬜ | 発行日(例:「2023」、「Mar 2023」)。 |
| `summary?` | `string` | ⬜ | 出版物の要約または概要。 |
| `url?` | `string` | ⬜ | 出版物に関連する URL(例:DOI、リンク)。 |
#### ReferenceItem
単一の専門推薦人または推薦を表します。
| 属性 | タイプ | 必須 | 説明 |
| --------------- | -------- | -- | --------------------- |
| `name` | `string` | ✅ | 推薦人の名前。 |
| `summary` | `string` | ✅ | 推薦人に関する短い説明。 |
| `email?` | `string` | ⬜ | 推薦人のメールアドレス。 |
| `phone?` | `string` | ⬜ | 推薦人の電話番号。 |
| `relationship?` | `string` | ⬜ | 推薦人との関係(例:「元マネージャー」)。 |
#### SkillItem
単一のスキル、能力、または技術的能力を表します。
| 属性 | タイプ | 必須 | 説明 |
| ----------- | ----------------- | -- | ---------------------- |
| `level` | [`Level`](#level) | ✅ | スキルの習熟度。 |
| `name` | `string` | ✅ | スキル名。 |
| `keywords?` | `string[]` | ⬜ | スキルに関連する特定のキーワードまたは技術。 |
#### VolunteerItem
単一のボランティア経験またはコミュニティサービスを表します。
| 属性 | タイプ | 必須 | 説明 |
| -------------- | -------- | -- | --------------------------------- |
| `organization` | `string` | ✅ | 組織名。 |
| `position` | `string` | ✅ | 担当した役割または職位。 |
| `startDate` | `string` | ✅ | ボランティア活動開始日(例:「2019」、「Jun 2019」)。 |
| `summary` | `string` | ✅ | 責任または成果の要約。 |
| `endDate?` | `string` | ⬜ | ボランティア活動終了日(例:「2020」、「Dec 2020」)。 |
| `url?` | `string` | ⬜ | 組織または活動に関連する URL。 |
#### WorkItem
単一の職歴または雇用職位を表します。
| 属性 | タイプ | 必須 | 説明 |
| ----------- | ---------- | -- | --------------------------- |
| `name` | `string` | ✅ | 会社または雇用主名。 |
| `position` | `string` | ✅ | 職位または担当した役職。 |
| `startDate` | `string` | ✅ | 雇用開始日(例:「2021」、「Apr 2021」)。 |
| `summary` | `string` | ✅ | 責任と成果の要約。 |
| `endDate?` | `string` | ⬜ | 雇用終了日(例:「2023」、「Aug 2023」)。 |
| `keywords?` | `string[]` | ⬜ | 役職または使用技術に関連するキーワード。 |
| `url?` | `string` | ⬜ | 会社または職務に関連する URL。 |
### Locale
国際化とローカライゼーションのロケール設定を定義します。
| 属性 | タイプ | 必須 | 説明 |
| ----------- | ----------------------------------- | -- | -------------------------- |
| `language?` | [`LocaleLanguage`](#localelanguage) | ⬜ | 履歴書コンテンツとテンプレート用語の選択された言語。 |
### Layouts
複数の出力形式をサポートするレイアウト項目の配列。
| 属性 | タイプ | 必須 | 説明 |
| ----------- | -------------------------------------------------------------------- | -- | ------------- |
| `layouts[]` | [`LatexLayout`](#latexlayout) \| [`MarkdownLayout`](#markdownlayout) | ⬜ | 複数の出力レイアウト設定。 |
#### 一般的なレイアウトタイプ
##### Margins
文書レイアウトのマージン設定を定義します。
| 属性 | タイプ | 必須 | 説明 |
| --------- | -------- | -- | ------------------ |
| `top?` | `string` | ⬜ | 上マージン値(例:「2.5cm」)。 |
| `bottom?` | `string` | ⬜ | 下マージン値(例:「2.5cm」)。 |
| `left?` | `string` | ⬜ | 左マージン値(例:「1.5cm」)。 |
| `right?` | `string` | ⬜ | 右マージン値(例:「1.5cm」)。 |
##### Sections
セクション名をカスタマイズするためのセクションエイリアス設定を定義します。
| 属性 | タイプ | 必須 | 説明 |
| ---------- | --------------------------- | -- | -------------------------------- |
| `aliases?` | `Record` | ⬜ | デフォルトの翻訳を上書きする、セクション名のカスタムエイリアス。 |
| `order?` | `OrderableSectionID[]` | ⬜ | 最終出力におけるセクションのカスタム順序。 |
#### HtmlLayout
HTML レイアウト設定。
| 属性 | タイプ | 必須 | 説明 |
| ------------- | ----------------------------------- | -- | ------------------------- |
| `engine` | `'html'` | ✅ | 履歴書を生成するエンジン。 |
| `advanced?` | [`HtmlAdvanced`](#htmladvanced) | ⬜ | 高度なレイアウト設定オプションを定義します。 |
| `sections?` | [`Sections`](#sections) | ⬜ | セクションのカスタマイズ設定を定義します。 |
| `template?` | [`HtmlTemplate`](#htmltemplate) | ⬜ | 選択されたテンプレートを定義します。 |
| `typography?` | [`HtmlTypography`](#htmltypography) | ⬜ | 文書フォーマットのタイポグラフィ設定を定義します。 |
##### HtmlAdvanced
高度な HTML 設定オプションを定義します。
| 属性 | タイプ | 必須 | 説明 |
| -------------- | --------- | -- | ------------------------- |
| `showIcons?` | `boolean` | ⬜ | リンクとプロフィールのアイコンを表示するかどうか。 |
| `title?` | `string` | ⬜ | HTML ドキュメントのカスタムタイトル。 |
| `footer?` | `string` | ⬜ | HTML ドキュメントのカスタムフッター。 |
| `description?` | `string` | ⬜ | HTML ドキュメントのメタ記述。 |
| `keywords?` | `string` | ⬜ | HTML ドキュメントのメタキーワード。 |
##### HtmlTypography
HTML 文書フォーマットのタイポグラフィ設定を定義します。
| 属性 | タイプ | 必須 | 説明 |
| ------------- | ------------------------------- | -- | ------------------------ |
| `fontFamily?` | `string` | ⬜ | 使用するフォントファミリーのカンマ区切りリスト。 |
| `fontSize?` | [`HtmlFontSize`](#htmlfontsize) | ⬜ | 文書の基本フォントサイズ。 |
#### LatexLayout
LaTeX レイアウト設定。
| 属性 | タイプ | 必須 | 説明 |
| ------------- | ------------------------------------- | -- | --------------------------- |
| `advanced?` | [`LatexAdvanced`](#latexadvanced) | ⬜ | 高度な設定オプションを定義します。 |
| `engine` | `'latex'` | ✅ | 履歴書を生成するエンジン。 |
| `page?` | [`LatexPage`](#latexpage) | ⬜ | 文書プレゼンテーションのページレベル設定を定義します。 |
| `sections?` | [`Sections`](#sections) | ⬜ | セクションのカスタマイズ設定を定義します。 |
| `template?` | [`LatexTemplate`](#latextemplate) | ⬜ | 選択されたテンプレートを定義します。 |
| `typography?` | [`LatexTypography`](#latextypography) | ⬜ | 文書フォーマットのタイポグラフィ設定を定義します。 |
##### LatexAdvanced
LaTeX の高度な設定オプションを定義します。
| 属性 | タイプ | 必須 | 説明 |
| ------------ | ------------------------------------ | -- | ------------------------- |
| `fontspec?` | `{ numbers?: LatexFontspecNumbers }` | ⬜ | LaTeX fontspec パッケージ設定。 |
| `showIcons?` | `boolean` | ⬜ | リンクとプロフィールのアイコンを表示するかどうか。 |
##### LatexPage
LaTeX の文書プレゼンテーションのページレベル設定を定義します。
| 属性 | タイプ | 必須 | 説明 |
| ------------------ | ------------------------- | -- | ---------------- |
| `margins?` | [`Margins`](#margins) | ⬜ | ページマージン設定を定義します。 |
| `paperSize?` | [`PaperSize`](#papersize) | ⬜ | 用紙サイズを定義します。 |
| `showPageNumbers?` | `boolean` | ⬜ | ページ番号を表示するかどうか。 |
##### LatexTypography
LaTeX の文書フォーマットのタイポグラフィ設定を定義します。
| 属性 | タイプ | 必須 | 説明 |
| ------------- | --------------------------------- | -- | ------------------------ |
| `fontSize?` | [`LatexFontSize`](#latexfontsize) | ⬜ | 文書の基本フォントサイズ。 |
| `fontFamily?` | `string` | ⬜ | 使用するフォントファミリーのカンマ区切りリスト。 |
| `links?` | `{ underline?: boolean }` | ⬜ | リンクのスタイル設定。 |
#### MarkdownLayout
Markdown レイアウト設定。
| 属性 | タイプ | 必須 | 説明 |
| ----------- | ----------------------- | -- | --------------------- |
| `engine` | `'markdown'` | ✅ | 履歴書を生成するエンジン。 |
| `sections?` | [`Sections`](#sections) | ⬜ | セクションのカスタマイズ設定を定義します。 |
## 列挙タイプ
### コンテンツ Enum
#### Country
世界のすべての可能な国と地域のユニオンタイプ。
#### Degree
すべての可能な学位のユニオンタイプ。
* `Associate`
* `Bachelor`
* `Diploma`
* `Doctor`
* `High School`
* `Master`
* `Middle School`
#### Fluency
すべての可能な言語流暢度のユニオンタイプ。
* `Elementary Proficiency`
* `Full Professional Proficiency`
* `Limited Working Proficiency`
* `Minimum Professional Proficiency`
* `Native or Bilingual Proficiency`
#### Language
すべてのサポートされている言語のユニオンタイプ。
#### Level
すべての可能なスキル習熟度のユニオンタイプ。
* `Advanced`
* `Beginner`
* `Expert`
* `Intermediate`
* `Master`
* `Novice`
#### Network
すべての可能なソーシャルネットワークオプションのユニオンタイプ。
### レイアウト Enum
#### HtmlFontSize
すべての可能な HTML フォントサイズオプションのユニオンタイプ。
HTML エンジンは 14px から 20px のサイズをサポートします:
* `14px`、`15px`、`16px` (デフォルト)、`17px`、`18px`、`19px`、`20px`
#### HtmlTemplate
すべての可能な HTML テンプレートオプションのユニオンタイプ。
参照:[テンプレート](/ja/docs/layouts/html/templates)
* `calm`
#### LatexFontSize
すべての可能な Latex フォントサイズオプションのユニオンタイプ。
現在 3 つのオプションのみサポート:
* `10pt` - 10pt フォントサイズ(デフォルト)
* `11pt` - 11pt フォントサイズ
* `12pt` - 12pt フォントサイズ
#### LatexFontspecNumbers
すべての可能な latex fontspec 数字オプションのユニオンタイプ。
* `Auto` - 選択された `LocaleLanguage` に基づいてスタイルを自動決定することを許可(デフォルト)
* `Lining` - 標準のライニング数字(CJK 言語のデフォルト)
* `OldStyle` - 異なる高さのオールドスタイル数字(ラテン言語のデフォルト)
#### LatexTemplate
すべての可能なテンプレートオプションのユニオンタイプ。
参照:[テンプレート](/ja/docs/layouts/latex/templates)
* `moderncv-banking`
* `moderncv-casual`
* `moderncv-classic`
#### PaperSize
すべての可能な LaTeX 用紙サイズオプションのユニオンタイプ。
* `a4` (デフォルト)
* `letter`
### ロケール Enum
#### LocaleLanguage
すべての可能なロケール言語のユニオンタイプ。
参照:[多言語](/ja/docs/locale)
* `en`
* `es`
* `zh-hans`
* `zh-hant-hk`
* `zh-hant-tw`
# コンテンツ
URL: (/ja/docs/content)
この章では、履歴書の核心であるコンテンツについて詳しく説明します。
コンテンツは履歴書の核心です。履歴書を他の多くの履歴書から際立たせる鍵であり、[レイアウト](/ja/docs/layouts) とデザインは単なる錦上添花です。
YAMLResume でのコンテンツ作成の 2 つの重要な側面を紹介します:
* **リッチテキスト**:太字、斜体、リンク、リストなどのフォーマットを説明に追加するために Markdown を使用する方法
* **多言語サポート**:言語と文化的な違いを考慮して、異なる言語で履歴書を作成する方法
以下のガイドを探索して、履歴書のコンテンツをマスターしてください。
# リッチテキスト
URL: (/ja/docs/content/rich-text)
YAMLResume では、プレーンテキストに制限されません。`work`、`education`、`projects` などの異なるセクションの `summary` フィールドは、限定的な [Markdown](https://en.wikipedia.org/wiki/Markdown) 構文をサポートしてリッチテキストフォーマットを可能にします。これにより、より表現力豊かで読みやすい履歴書コンテンツを作成できます。
## サポートされている構文
以下は使用できる Markdown 機能のクイック概要です:
### 太字と斜体
テキストを強調するために太字または斜体スタイルを使用できます。
* **太字:** `**your bold text**`
* **斜体:** `*your italic text*`
* **両方:** `***your bold and italic text***`
### リンク
テキストにハイパーリンクを埋め込むことができます。
* **構文:** `[link text](https://example.com)`
### リスト
ネストを含む順序付きリストと順序なしリストをサポートしています。
YAML の `|`(パイプ)文字は「リテラルブロックスカラー」を作成するために使用され、改行文字を保持しながら[マルチライン文字列](https://stackoverflow.com/a/21699210/2310396) を記述する方法です。これは `summary` のようなフィールドに特に有用で、リストや段落を含めたい場合があります。`|` の下でインデントされたすべてのコンテンツは単一の文字列として扱われ、改行文字が保持されます。
#### 順序なしリスト
各リスト項目にハイフン(`-`)またはアスタリスク(`*`)を使用します。
```yml lineNumbers
summary: |
- First item
- Second item
- Third item
```
#### 順序付きリスト
数字の後にピリオドを付けて順序付きリストを作成します。
```yml lineNumbers
summary: |
1. First item
2. Second item
3. Third item
```
#### ネストされたリスト
リストをインデントしてネスト構造を作成できます。
```yml lineNumbers
summary: |
- Team player with a detail-oriented mindset.
- Experienced in databases (SQL, NoSQL).
- Proficient in PostgreSQL and MongoDB.
- Familiar with Redis for caching.
- Strong foundation in data structures and algorithms.
```
## 完全な例
以下は、複数のサポートされている構文機能を組み合わせた `work` エントリの `summary` フィールドの例です:
```yml lineNumbers
---
content:
basics:
# ...
summary: |
This is a sample YAML resume that support limited set of markdown rich text syntax (bold, italics, links, lists):
- Computer Science major with **strong foundation** in data structures, *algorithms*, and software development
1. Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
2. Experiened in databases (SQL, NoSQL), familiar with server-side technologies ([Node.js](https://nodejs.org/en), Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
```
以下は生成された PDF です:
## サポートされていないものは?
YAMLResume は上記にリストされた構文のみをサポートしています。見出し、ブロック引用、画像、水平線、テーブルなどの他の一般的な Markdown 機能は**サポートされておらず、処理中に無視されます**。
# CLI
URL: (/ja/docs/contributing/cli)
YAMLResume はモノレポ(mono-repo)構造を採用しており、すべてのパッケージが単一のリポジトリに含まれていることを意味します。[pnpm workspace](https://pnpm.io/workspaces) のおかげで、このアプローチはパッケージ間の依存関係管理とバージョン管理を簡素化します。
この記事の執筆時点で、YAMLResume リポジトリには2つのパッケージがあります:
* [yamlresume/cli](https://github.com/yamlresume/yamlresume/tree/main/packages/cli):YAMLResume の CLI インターフェース。
* [yamlresume/core](https://github.com/yamlresume/yamlresume/tree/main/packages/core):YAMLResume のコアエンジンを含みます。公式[スキーマ](/zh-cn/docs/compiler/schema)に基づく履歴書の解析、検証、レンダリングを処理します。
## yamlresume/core ビルド
`yamlresume/cli` は正常に動作するために `yamlresume/core` に依存しています。したがって、`yamlresume/cli` をテストしたい場合は、`yamlresume/core` もビルドされて利用可能であることを確認する必要があります。
以下のコマンドを使用してこれを行うことができます:
```bash
# 開発目的でビルド
pnpm core build
# 本番用にビルド、出力を圧縮し、TypeScript
# DTS ファイル `.d.ts` を生成
pnpm core build:prod
# ファイル変更を監視して自動的にビルド
pnpm core build:watch
```
## yamlresume/cli ビルド
`yamlresume/core` のビルドが完了したら、CLI コマンドを実行する方法は2つあります:
1. `yamlresume/cli` をローカルでビルドし、`dist/cli.js` を使用して node.js で実行:
```bash
pnpm cli build
node packages/cli/dist/cli.js [options]
```
2. [tsx](https://tsx.is/) を使用して `yamlresume/cli` を直接実行:
```bash
pnpm cli dev [options]
# このコマンドは以下に変換されます
# tsx src/cli.ts
```
## デモ
`yamlresume/core` ビルド:
```console
$ pnpm core build
> @yamlresume/yamlresume@0.7.1 core /Users/hanyu/work/yamlresume/yamlresume
> pnpm --filter @yamlresume/core build
> @yamlresume/core@0.7.1 build /Users/hanyu/work/yamlresume/yamlresume/packages/core
> tsup
CLI Building entry: src/index.ts
CLI Using tsconfig: tsconfig.json
CLI tsup v8.4.0
CLI Using tsup config: /Users/hanyu/work/yamlresume/yamlresume/packages/core/tsup.config.ts
CLI Target: esnext
CLI Cleaning output folder
ESM Build start
ESM dist/index.js 160.91 KB
ESM ⚡️ Build success in 111ms
```
`yamlresume/cli` ビルド:
```console
$ pnpm cli build
> @yamlresume/yamlresume@0.7.1 cli /Users/hanyu/work/yamlresume/yamlresume
> pnpm --filter yamlresume build
> yamlresume@0.7.1 build /Users/hanyu/work/yamlresume/yamlresume/packages/cli
> tsup
CLI Building entry: src/cli.ts
CLI Using tsconfig: tsconfig.json
CLI tsup v8.4.0
CLI Using tsup config: /Users/hanyu/work/yamlresume/yamlresume/packages/cli/tsup.config.ts
CLI Target: esnext
CLI Cleaning output folder
ESM Build start
ESM dist/cli.js 11.36 KB
ESM ⚡️ Build success in 42ms
```
`pnpm cli dev` を使用して tsx で `yamlresume/cli` をテスト:
```console
$ pnpm cli dev help
> @yamlresume/yamlresume@0.7.1 cli /Users/hanyu/work/yamlresume/yamlresume
> pnpm --filter yamlresume dev help
> yamlresume@0.7.1 dev /Users/hanyu/work/yamlresume/yamlresume/packages/cli
> tsx src/cli.ts help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
Node.js を使用して `yamlresume/cli` をテスト:
```console
$ node packages/cli/dist/cli.js -V
0.7.1
```
# Docker
URL: (/ja/docs/contributing/docker)
[CLI パッケージ](https://www.npmjs.com/package/yamlresume)に加えて、YAMLResume はクイックスタートを容易にするための[docker イメージ](https://hub.docker.com/r/yamlresume/yamlresume)も提供しています。
[ドキュメント](/zh-cn/docs/installation#docker-users)で説明されているように、以下のコマンドを使用して yamlresume docker コンテナを実行できます:
```bash
docker run --rm -v $(pwd):/app -w /app yamlresume/yamlresume
```
しかし、興味があれば、ニーズに合わせて Docker イメージをカスタマイズできます。
## Docker イメージのビルド
YAMLResume の Docker イメージは2つの段階で定義・生成されます:
### Dockerfile.base
[Dockerfile.base](https://github.com/yamlresume/yamlresume/blob/main/Dockerfile.base) には、YAMLResume を実行するための基本環境が含まれており、[TeX Live](https://www.tug.org/texlive/) からの [XeTeX](/zh-cn/docs/installation#xetex) や [Google Noto フォント](/zh-cn/docs/installation#google-noto) など、すべての必要な依存関係が含まれています。
これは基本イメージで、主に GitHub Actions でのビルドプロセスを加速するために使用されます——`apt install texlive-xetex` で texlive をインストールするには約[30分](https://github.com/yamlresume/yamlresume/actions/runs/15438395862)かかり、これは各 docker ビルドには長すぎるため、この基本イメージを一度ビルドして[公開し](https://hub.docker.com/r/yamlresume/yamlresume-base)、後続の各ビルドで再利用することにしました。
通常、このイメージを自分でビルドする必要はありません。dockerhub で公開されているイメージを直接再利用できます。
### Dockerfile
[Dockerfile](https://github.com/yamlresume/yamlresume/blob/main/Dockerfile) は `yamlresume/yamlresume` イメージのビルド方法を定義しており、非常にシンプルで直接的です。`npm install -g yamlresume@latest` で npmjs から `yamlresume` をインストールし、Docker の[セキュリティベストプラクティス](https://www.docker.com/blog/understanding-the-docker-user-instruction/)に従って必要なユーザーとグループを作成するだけです。
yamlresume イメージをローカルでビルドするのは簡単な作業です。以下を実行するだけです:
```bash
docker build -t yamlresume/yamlresume .
```
異なるアーキテクチャ用の docker イメージのビルドで問題が発生した場合は、[docker マルチプラットフォームビルド](https://docs.docker.com/build/building/multi-platform/)を確認する必要があるかもしれません。
[Twitter でいくつかのコツを書きました](https://x.com/xiaohanyu1988/status/1931178628785778722)。興味があればご覧ください。
# 貢献ガイド
URL: (/ja/docs/contributing)
まず、YAMLResume への貢献を検討していただき、ありがとうございます!あなたのような方々がオープンソースを素晴らしいものにしています。コードだけでなく、あらゆる種類の貢献を歓迎します。以下のようなお手伝いができます:
* バグの報告
* コードの現在の状態についての議論
* 修正の提出
* 新機能の提案
* ドキュメントの改善
以下は、特定の作業へのショートカットです:
## 始める
### 前提条件
* [Node.js](https://nodejs.org/)(バージョン >= 20、`.nvmrc` または `package.json` engines フィールドを確認)
* [pnpm](https://pnpm.io/)(バージョン >= 10、`package.json` packageManager フィールドを確認)
* Git
### セットアップ
1. **リポジトリをフォーク:** [YAMLResume GitHub ページ](https://github.com/yamlresume/yamlresume) で「Fork」ボタンをクリックします。これにより、プロジェクトの独自のコピーが作成されます。
2. **フォークをクローン:**
```bash
git clone https://github.com//yamlresume.git
cd yamlresume
```
3. **依存関係をインストール:**
```bash
pnpm install
```
このコマンドは、ワークスペース全体のすべての必要な依存関係をインストールします。
## 開発ワークフロー
### パッケージのビルド
* すべてのパッケージを一度にビルド:
```bash
pnpm build
```
* すべてのパッケージをビルドして変更を監視:
```bash
pnpm build:watch
```
* 本番ビルド(型定義、圧縮を含む):
```bash
pnpm build:prod
```
### テストの実行
* すべてのパッケージのテストを実行:
```bash
pnpm test
```
* 監視モードでテストを実行:
```bash
pnpm test:watch
```
* テストを実行してカバレッジレポートを生成:
```bash
pnpm test:cov
```
詳細とユースケースについては[テスト](./contributing/test)をご覧ください。
### コードフォーマットとリンティング
[Biome](https://biomejs.dev/) を使用してコードフォーマットとリンティングを行います。コミットする前に、コードがプロジェクトのスタイルガイドに準拠していることを確認してください。
* 問題をチェックして自動修正:
```bash
pnpm check
```
* 修正を適用せずにチェックを実行(CI に有用):
```bash
pnpm check:ci
```
また、[addlicense](https://github.com/google/addlicense) を使用して、ソースファイルに正しいライセンスヘッダーがあることを確認しています。以下のコマンドを実行するには、これをインストールする必要があります。
* 欠落しているライセンスヘッダーを追加:
```bash
pnpm license:add
```
* 欠落しているライセンスヘッダーをチェック:
```bash
pnpm license:check
```
## 貢献の提出
### 問題の報告
バグを発見したり、機能リクエストがある場合は、GitHub で[問題を開いてください](https://github.com/yamlresume/yamlresume/issues)。以下の詳細をできるだけ多く提供してください:
* 明確で説明的なタイトル。
* バグを再現する手順(該当する場合)。
* 期待される動作と実際の動作。
* スクリーンショットやコードスニペット(役立つ場合)。
* 環境の詳細(オペレーティングシステム、Node バージョン、pnpm バージョン)。
### Pull Request(PR)
Pull Request を歓迎します!以下はクイックガイドです:
1. **ブランチを作成:** `main` ブランチから開始し、説明的なブランチ名を作成します(例:`fix/login-bug`、`feat/new-template-option`)。
```bash
git checkout main
git pull origin main
git checkout -b your-branch-name
```
2. **変更を行う:** コードやドキュメントの改善を書きます。
3. **変更をテスト:** すべてのテストが通ることを確認:
```bash
pnpm test
```
4. **コード品質をチェック:** フォーマットとリンティングが通ることを確認:
```bash
pnpm check
```
5. **変更をコミット:** コミットメッセージに[Conventional Commits](https://www.conventionalcommits.org/)を使用し、`commitlint` によって強制されます。これにより、変更ログとバージョン管理の自動化に役立ちます。典型的なコミットメッセージは `feat: add new command` や `fix: resolve issue with parsing` のようになります。必要に応じて、`pnpm commitlint` を使用してメッセージのフォーマットを支援したり、[git cz](https://github.com/commitizen/cz-cli) などのツールを使用できます(インストール済みの場合)。
```bash
git add .
git commit -m "feat: your descriptive commit message"
```
6. **ブランチをプッシュ:**
```bash
git push origin your-branch-name
```
7. **Pull Request を開く:** GitHub の YAMLResume リポジトリに移動し、「New pull request」ボタンをクリックします。ブランチを `main` ブランチと比較します。
8. **PR を説明:** 行った変更の明確な説明を提供します。関連する問題にリンクします(例:「Closes #123」)。
9. **レビュー:** メンテナーが PR をレビューします。フィードバックや要求された変更を解決します。
10. **マージ:** 承認されると、PR がマージされます。貢献ありがとうございます!
## ライセンス
YAMLResume に貢献することで、あなたの貢献がその[MIT ライセンス](LICENSE)に従ってライセンスされることに同意します。
# 新言語
URL: (/ja/docs/contributing/new-language)
import { Step, Steps } from "fumadocs-ui/components/steps";
YAMLResume は[多言語](/zh-cn/docs/locale)を基盤からサポートするように設計されており、ユーザーが好みの言語で履歴書を作成できるようになっています。
この記事の執筆時点で、YAMLResume は以下の言語をサポートしています:
* [英語](/zh-cn/docs/locale/english)
* [中国語](/zh-cn/docs/locale/chinese)
* [ノルウェー語](/zh-cn/docs/locale/norwegian)
* [スペイン語](/zh-cn/docs/locale/spanish)
お好みの言語がリストにない場合は、以下の手順に従って貢献し、新しい言語のサポートを追加できます。
## 言語を登録
YAMLResume に新しい `locale.language` オプションを追加するには、まず [models/resume.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/models/resume.ts) で言語を登録し、`LOCALE_LANGUAGE_OPTIONS` に新しいエントリを追加します。
**チェックリスト:**
* [ ] 言語を `LOCALE_LANGUAGE_OPTIONS` に追加。
* [ ] [新しい CLI をビルドしてテスト](/zh-cn/docs/contributing/cli#yamlresumecli-build)し、`pnpm cli dev languages list` を使用して、言語がリストに表示されることを確認。
## 翻訳を追加
YAMLResume で使用されるすべての関連[オプション](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/translations/options.ts)、[句読点と用語](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/translations/template.ts)の翻訳を提供します。これにより、ユーザーは正確なラベル、オプション、用語翻訳、セクション名を使用して新しい言語の履歴書を生成できます。以下は、ノルウェー語翻訳を追加する参考 [PR](https://github.com/yamlresume/yamlresume/pull/44) です。
**チェックリスト:**
* [ ] [国名](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/models/country.ts)の翻訳を追加
* [ ] `degrees`、`fluency`、`languages`、`sections`、`skills` のオプション翻訳を追加
* [ ] `comma`、`colon`、`separator` の句読点翻訳を追加
* [ ] `courses`、`keywords`、`score` の用語翻訳を追加
## Babel 設定を更新
YAMLResume は PDF 生成に LaTeX を使用しており、最適なタイポグラフィ効果を得るために、適切な [babel パッケージ設定](https://latex3.github.io/babel/) を設定する必要があります。以下は、ノルウェー語の参考[コミット](https://github.com/yamlresume/yamlresume/commit/b72a4441ad2542873f449bc35a265e7208eafbe7)です。
**チェックリスト:**
* [ ] [preamble.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/renderer/preamble.ts) の `renderBabelConfig()` 関数を更新し、言語の babel パッケージを含める。
## 新言語でテスト
`yamlresume/core` と `yamlresume/cli` パッケージを[ビルド](/zh-cn/docs/contributing/cli#yamlresumecore-build)し、その後:
* [ ] 新しい履歴書を作成 `pnpm cli dev new my-resume.yml`
* [ ] `locale.language` を追加した新しい言語に設定
* [ ] `pnpm cli dev build my-resume.yml` で新しい言語の履歴書を生成して変更をテスト
* [ ] 両方の PDF 出力が期待通りに動作することを確認。
## PR を提出
上記の手順が完了したら、Pull Request を提出し、変更と追加した言語を明確に説明してください。メンテナーが PR をレビューし、変更や説明を求める場合があります。
YAMLResume を世界中のより多くの人々にとって便利にするお手伝いをしていただき、ありがとうございます!
# テスト
URL: (/ja/docs/contributing/test)
スムーズな開発体験を得るために、信頼性の高いテスト戦略を持つことが重要です。これには、アプリケーションのすべての側面が期待通りに動作することを保証するための単体テスト、統合テスト、エンドツーエンドテストが含まれます。
## 単体テスト
以下のコマンドを使用して単体テストを実行できます:
```bash
# yamlresume/cli パッケージのテストを実行
pnpm cli test
# yamlresume/core パッケージのテストを実行
pnpm core test
# すべてのパッケージのテストを実行
pnpm test
```
新機能を開発している場合は、ファイルが変更されたときにテストを実行できます:
```bash
# yamlresume/cli パッケージの変更を監視してテスト
pnpm cli test:watch
# yamlresume/core パッケージの変更を監視してテスト
pnpm core test:watch
# すべてのパッケージの変更を監視してテスト
pnpm test:watch
```
`yamlresume/core` パッケージに依存する CLI 機能を開発している場合は、`yamlresume/core` パッケージを[ビルド](./contributing/cli#yamlresumecore-build)することを忘れないでください。
## テストカバレッジ
YAMLResume は高品質なコードとリグレッション防止を追求して、**[100% 単体テストカバレッジ](https://app.codecov.io/gh/yamlresume/yamlresume)** を維持しています。以下のコマンドを実行してテストカバレッジレポートを確認できます:
```bash
# yamlresume/cli パッケージのテストカバレッジをチェック
pnpm cli test:cov
# yamlresume/core パッケージのテストカバレッジをチェック
pnpm core test:cov
# すべてのパッケージのテストカバレッジをチェック
pnpm test:cov
```
# create-yamlresume
URL: (/ja/docs/ecosystem/create-yamlresume)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
[create-yamlresume](https://yamlresume.dev/docs/ecosystem/create-yamlresume) は、一行のコマンドで新しい [YAMLResume](https://yamlresume.dev) プロジェクトを作成するのに役立ちます。
## 使用方法
<>
```console
npx create-yamlresume my-resume
# or
npm init yamlresume my-resume
```
```console
pnpm create yamlresume my-resume
```
```console
yarn create yamlresume my-resume
```
```console
bun create yamlresume my-resume
```
>
## 機能
このツールは以下を行います:
1. プロジェクト名を使用して新しいディレクトリを作成
2. 基本的な Node.js プロジェクト構造を作成、以下を含む:
* YAMLResume 依存関係と有用なスクリプトを含む `package.json`
* 適切な除外ルールを含む `.gitignore` ファイル
* 基本的な使用説明を含む `README.md`
3. すべての必要な依存関係をインストール
4. `yamlresume new` を使用して新しいサンプル履歴書ファイルを作成
5. 利用可能なコマンドと次のステップを表示
## サンプルセッション
```
$ pnpm create yamlresume
✔ What is your project name? … yamlresume
ℹ Using pnpm.
✔ What should your resume file be called? (without .yml extension) … resume
◐ Creating YAMLResume project in /private/tmp/yamlresume...
◐ Installing dependencies with pnpm...
Packages: +59
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 59, reused 59, downloaded 0, added 59, done
dependencies:
+ yamlresume 0.7.5
Done in 4s using pnpm v10.6.3
✔ Dependencies installed successfully!
◐ Creating resume file resume.yml...
✔ Created resume.yml successfully.
◐ Initializing git repository...
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m
Initialized empty Git repository in /tmp/yamlresume/.git/
✔ Git repository initialized!
[master (root-commit) 53c6210] init a new YAMLResume project
4 files changed, 421 insertions(+)
create mode 100644 .gitignore
create mode 100644 README.md
create mode 100644 package.json
create mode 100644 resume.yml
✔ Initial commit created!
ℹ
✨ Project created successfully!
ℹ
Next steps:
ℹ 1. cd yamlresume
ℹ 2. Edit your resume: resume.yml
ℹ 3. Build your resume: pnpm run build
ℹ 4. Watch for changes: pnpm run dev
ℹ 5. Show all commands: pnpm run yamlresume help
ℹ
Learn more:
ℹ 🏠 Homepage: https://yamlresume.dev
ℹ 📖 Documentation: https://yamlresume.dev/docs/
ℹ 🎨 Templates: https://yamlresume.dev/docs/layouts/latex/templates
ℹ 📝 Schema: https://yamlresume.dev/docs/compiler/schema
```
## プロジェクト構造
生成されるプロジェクトは以下のようになります:
```
my-resume/
├── package.json # yamlresume 依存関係を含むプロジェクト設定
├── .gitignore # Git 除外ルール
├── README.md # プロジェクトドキュメント
└── resume.yml # あなたの YAML 履歴書(選択したファイル名)
```
## 利用可能なコマンド
生成されたプロジェクトで、以下を実行できます:
* `npm run build` - 履歴書を PDF にビルド
* `npm run dev` - 変更を監視して自動的に再ビルド
* `npm run validate` - スキーマに従って履歴書を検証
* `npm run yamlresume` - YAMLResume CLI を実行
# エコシステム
URL: (/ja/docs/ecosystem)
YAMLResume は、履歴書をより効率的に作成、変換、管理するのに役立つツールセットを提供しています。以下は利用可能な主要なユーティリティです:
## create-yamlresume
[create-yamlresume](./ecosystem/create-yamlresume) により、一行のコマンドで新しい YAMLResume プロジェクトを簡単に開始できます。プロジェクトディレクトリをセットアップし、必要な依存関係をインストールし、サンプル履歴書ファイルを生成するため、すぐに開始できます。
* `npx create-yamlresume my-resume` または同様の `npm`、`yarn`、`pnpm` コマンドを使用して新しいプロジェクトをセットアップ。
* 即座に使用可能なプロジェクト構造、履歴書のビルドと検証用のスクリプト、サンプル YAML 履歴書ファイルを含む。
## json2yamlresume
[json2yamlresume](./ecosystem/json2yamlresume) は、[JSON Resume](https://jsonresume.org/) ファイルを YAMLResume 形式に変換するための CLI ツールです。
* JSON Resume ファイルを YAMLResume に変換し、必要に応じてフィールドと構造を変換。
* データが YAMLResume スキーマに従って検証されることを保証。
これらのツールは、他の形式からの移行、プロジェクト設定の自動化、YAMLResume とのワークフローの簡素化に役立ちます。
## 詳細情報
# json2yamlresume
URL: (/ja/docs/ecosystem/json2yamlresume)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
[json2yamlresume](https://yamlresume.dev/docs/ecosystem/json2yamlresume) は、[JSON Resume](https://jsonresume.org/) を [YAMLResume](https://yamlresume.dev/) 形式に変換するための[コマンドラインツール](https://npmjs.com/package/json2yamlresume)です。
## 機能
* **形式変換**:JSON Resume を YAMLResume 形式にシームレスに変換
* **[構造変換](#conversion-rules)**
* **CLI インターフェース**:変換を簡単にするシンプルなコマンドラインインターフェース
* **検証**:YAMLResume の強力な[スキーマ検証](/zh-cn/docs/compiler/schema)に基づいて構築
## インストール
<>
```console
npm install -g json2yamlresume
```
```console
pnpm add -g json2yamlresume
```
```console
yarn global add json2yamlresume
```
```console
bun add -g json2yamlresume
```
>
## 使用方法
### JSON Resume を YAMLResume に変換
```bash
$ json2yamlresume input.json output.yaml
# または、オプションの出力パスを指定せずにコマンドを呼び出す場合、
# 出力は入力ファイルと同じディレクトリに、同じ名前で .yml 拡張子を使用して書き込まれます
$ json2yamlresume input.json
```
### ヘルプを表示
```bash
$ json2yamlresume --help
Usage: json2yamlresume [options] [output-file]
Convert JSON Resume to YAMLResume format
Arguments:
input-file Input JSON Resume file path
output-file Output YAMLResume file path
Options:
-V, --version output the version number
-h, --help display help for command
```
### バージョンを表示
```bash
$ json2yamlresume --version
0.7.4
```
## 例
以下は JSON Resume 形式のサンプル履歴書です:
```json lineNumbers title="json-resume.json"
{
"basics": {
"name": "John Doe",
"label": "Software Engineer",
"email": "john@example.com",
"location": {
"city": "San Francisco",
"countryCode": "US"
},
"profiles": [
{
"network": "GitHub",
"username": "johndoe",
"url": "https://github.com/johndoe"
}
]
},
"work": [
{
"name": "Tech Corp",
"position": "Senior Developer",
"startDate": "2020-01",
"summary": "Led development of web applications.",
"highlights": [
"Increased performance by 40%",
"Mentored 5 junior developers"
]
}
],
"education": [
{
"institution": "University of California",
"area": "Computer Science",
"studyType": "Bachelor of Science",
"startDate": "2018"
}
]
}
```
以下のコマンドを呼び出して JSON Resume を YAMLResume に変換できます:
```bash
$ json2yamlresume json-resume.json yamlresume.yml
```
以下は YAMLResume 形式の出力です:
```yaml lineNumbers title="yamlresume.yml"
---
content:
basics:
name: John Doe
headline: Software Engineer
email: john@example.com
education:
- institution: University of California
area: Computer Science
degree: Bachelor of Science
startDate: "2018"
location:
city: San Francisco
country: US
profiles:
- network: GitHub
username: johndoe
url: https://github.com/johndoe
work:
- name: Tech Corp
position: Senior Developer
startDate: 2020-01
summary: |-
- Increased performance by 40%
- Mentored 5 junior developers
```
## 変換ルール
### 1. location/profiles をトップレベルに移動
* `basics.location` → トップレベル `location`
* `basics.profiles` → トップレベル `profiles`
* `basics.label` → `basics.headline`
### 2. education フィールドマッピング
* `education[].studyType` → `education[].degree`
### 3. highlights を summary フィールドにマージ
コンバーターは `highlights` 配列を以下のセクションの `summary` フィールドに markdown の順序なしリストとしてマージします:
* `work[]`
* `volunteer[]`
* `projects[]`
例:
```json
{
"summary": "Led development team.",
"highlights": ["Increased performance", "Mentored developers"]
}
```
以下になります:
```yaml
summary: |-
Led development team.
- Increased performance
- Mentored developers
```
YAMLResume の summary フィールドは[リッチテキスト](/zh-cn/docs/content/rich-text)をサポートしていることを覚えておいてください!
### 4. references フィールドマッピング
* `references[].reference` → `references[].summary`
## サポートされている JSON Resume セクション
コンバーターはすべての標準 JSON Resume セクションをサポートしています:
* ✅ `basics`
* ✅ `work`
* ✅ `volunteer`
* ✅ `education`
* ✅ `awards`
* ✅ `certificates`
* ✅ `publications`
* ✅ `skills`
* ✅ `languages`
* ✅ `interests`
* ✅ `references`
* ✅ `projects`
# フォント
URL: (/ja/docs/guide/font)
文字が情報伝達の媒体であるなら、文字自体の視覚的特徴——つまりフォント——が情報の品質に影響を与えます。
原則として、履歴書のタイポグラフィは簡潔で明確であるべきです。フォントについては、まず過度に派手なフォントを使用すべきではなく、次にフォントの種類は多すぎてはいけません——3種類以内に制限するのが最適です。ここでは、フォントの基礎知識とタイポグラフィの要点について説明します。
## フォント分類
### セリフ vs. サンセリフ
セリフに関して、ラテン文字のフォントは2つのファミリーに分かれます:セリフフォントとサンセリフフォント[^1]。
セリフは文字のストロークの端に付加される小さな線です。セリフを持つフォントをセリフフォントと呼びます。対照的に、セリフのないフォントをサンセリフフォントと呼び、*sans* はフランス語で「ない」という意味です。
### プロポーショナル vs. 等幅
文字の幅が同じかどうかによって、フォントは等幅フォントとプロポーショナルフォントに分けることができます。名前の通り、等幅フォントではすべての文字が同じ水平空間を占め、プロポーショナルフォントではそうではありません。
伝統的な印刷では、プロポーショナルフォントは単語の可読性を向上させることができます。技術的制限により、初期のコンピューターやタイプライターは文字の幅を調整できませんでした。そのため、すべての文字が同じ幅で作られ、等幅フォントが生まれました。コンピューター技術の改善により、GUI(グラフィカルユーザーインターフェース)が主流となり発展し、技術的制限がなくなり、プロポーショナルフォントが非常に人気になりました。なぜなら、人間にとってより自然で読みやすいからです。
### CJK フォント
[CJK](https://en.wikipedia.org/wiki/CJK_characters) のフォントスタイルは少し複雑です。一般的に、CJK 言語にもセリフフォントとサンセリフフォントがあります。
#### 宋体
**[宋体](https://en.wikipedia.org/wiki/Ming_typefaces)**:簡体字中国語では宋体/明体、繁体字中国語では宋體/明體、日本語ではみんちょうたい/明朝体、韓国語では명조체/明朝體と呼ばれ、CJK のセリフフォントです。
宋体は通常、本文、見出し、注釈に使用されます。見出しに使用する場合、文字の太さは通常本文と区別するために増加します。現在、印刷で最も一般的に使用されるフォントです。
#### 黑体
**[黑体](https://en.wikipedia.org/wiki/Sans-serif)**、簡体字中国語では黑体、繁体字中国語では黑體と呼ばれ、CJK のサンセリフフォントです。
黑体は見出し、引用、ロゴなどによく使用されます。黑体は本文で特定の単語を強調するためにも使用されます。中国語文字はストロークが多いため、黑体は小さな文字では明瞭度が低く、伝統的な印刷では本文として黑体を使用することはほとんどありませんでした。しかし、文字作成技術の改善とインターネットとデジタル出版の発展により、多くの黑体フォントが本文用に開発され、少数の書籍が本文フォントとして黑体を使用し始めました。
宋体と黑体に加えて、*中国語には2つの広く使用される追加フォントスタイルがあります*。
#### 楷体
**[楷体](https://en.wikipedia.org/wiki/Regular_script)**:簡体字中国語では楷体、繁体字中国語では楷體と呼ばれ、現代中国語の書き方で最も一般的に使用されるスタイルです。
楷体は主に見出し、引用、対話、要約、本文とは異なる他の段落に使用されます。しかし、宋体に近いため、楷体は強調に使用されることは少ないです。
#### 仿宋体
**[仿宋体](https://en.wikipedia.org/wiki/Fangsong)**、簡体字中国語では仿宋体、繁体字中国語では仿宋體と呼ばれ、楷書フォントです。主に引用、要約、本文とは異なる他の段落に使用されます。同時に、中国政府が公式文書を作成する際に使用する標準フォントでもあります。
## フォント設計と使用
デジタル出版は長年発展しており、西洋言語の文字セットは小さいため、様々なニーズに応じて設計された多くの異なるフォントがあります。
等幅フォントでは、主に各文字の設計に焦点を当てますが、プロポーショナルフォントでは、文字間のスペースも慎重に考慮する必要があります。
### 文字構成
各フォントの文字は一貫した構造を持ち、フォントユーザーはこれらの基本概念を理解する必要があります:
* ベースライン:文字「H」や「n」が立つ見えない線
* 大文字高さ:ベースラインから大文字「H」や「E」の上部までの距離
* x 高さ:小文字「x」の底部から上部までの距離
* アセンダー:小文字「b」、「d」、「f」、「h」、「k」、「l」が「x」の上部を超える上昇部分で、その高さをアセンダー高さと呼び、アセンダーが整列する頂線をアセンダーラインと呼ぶ
* ディセンダー:小文字「g」、「j」、「p」、「q」、「y」がベースラインを下回る下降部分で、その高さをディセンダー高さと呼び、ディセンダーが整列する底線をディセンダーラインと呼ぶ
### 文字間隔
文字間隔、またはトラッキングは、文字間のスペースを指します。文字間隔の調整は、フォントデザイナー側とフォントユーザー側に分かれます。これは一行またはテキストブロックの密度に影響します。
フォントデザイナーにとって、文字間隔の調整は設計における重要な手順です。プロポーショナルフォントでは、単一文字の左側のスペースは必ずしも右側と同じではありません。目的は、文字が両側の他の文字と隣接する際の可読性を確保することです。
フォントユーザーにとって、文字間隔の調整は、元のタイポグラフィ後にソフトウェアで手動で文字間のスペースを再配置し、特別な整列[^2]やより良いレイアウト効果[^3]を得ることを意味します。
### カーニング
カーニングは、プロポーショナルフォントで特定の文字ペア間のスペースを増減するプロセスを指します。これらの文字ペアをカーニングペアと呼びます。カーニングは実際のスペースよりも視覚的スペースにより注目します。
多くのフォントのデザイナーは設計時にカーニングペアに注意を払い、カーニング値をフォントファイルに保存します。これにより、タイポグラフィソフトウェアはこれらの値に基づいてカーニングペアのスペースを自動調整し、より良いレイアウト効果を生み出すことができます。
各文字は独特の形状を持っているため、フォントの設計と実装プロセスでは、すべてのカーニングペアの文字が協力して最適な視覚効果を生み出す必要があります。実際、これが重要な手順であり、困難な点です[^4]。
### リガチャ
リガチャは、2つ以上の文字を一緒に接続した文字形状です。
印刷におけるリガチャは手書きにおける連字に由来します。活字印刷誕生後、多くのリガチャが直接フォントとして作られました。しかし、1950年代のサンセリフフォントの広範な使用と1970年代の写真植字の後、ブロック文字の使用は稀になりました。リガチャを使用してデジタルタイポグラフィを行うことができる最初のデジタルタイポグラフィソフトウェアは、[Donald Knuth](https://en.wikipedia.org/wiki/Donald_Knuth) が作成した TeX でした。この傾向は1985年後のデスクトップ出版にも影響しました。初期には、ソフトウェアは文字をリガチャで置き換えることができませんでした(TeX は可能でしたが)、コンピューター用に新しく作られたフォントのほとんどはリガチャを含んでいませんでした。さらに、パーソナルコンピューターの初期には、ほとんどのコンピューターが英語で、英語ではリガチャの使用が強制されていないため、リガチャを実際に使用する必要がありませんでした。[OpenType](https://en.wikipedia.org/wiki/OpenType) などのデジタルタイポグラフィ技術の発展により、リガチャは徐々に実践に戻りました[^5]。
日常のビジネス文書では、リガチャの欠如はスペルミスとは見なされませんが、広告、図書出版などの分野での専門的なタイポグラフィでは、リガチャは基本的に必要です。
### イタリック
イタリックは、通常のフォントスタイルをベースにフォントを傾けることで実現されるフォントスタイルです。イタリックタイプまたは傾斜タイプ[^6]を指すことができます。
西洋フォントには2つの傾斜フォントがあります:傾斜タイプとイタリックタイプ。文字形状が変化する傾斜は「イタリックタイプ」と呼ばれ、文字形状を変更せずに元のフォントを右に傾けるだけのものは傾斜タイプと呼ばれます。傾斜イタリックはソフトウェアアルゴリズムで単純に傾斜・歪曲するだけなので、ストロークが緩く、最近では新しく設計された専門的なイタリックタイプを使用する傾向が増えています。
理論的には、イタリックにはイタリックタイプと傾斜タイプが含まれますが、実際にはすべてのイタリックタイプが傾斜しているわけではないことに注意すべきです。
実践では、イタリックは通常、テキストの段落を強調したり、セリフフォントの本文と区別したりするために適用されます。
### 旧式数字
旧式数字、[テキスト数字](https://en.wikipedia.org/wiki/Text_figures)とも呼ばれ、ラテン文字言語用に設計され、異なる高さを持ち、典型的なテキスト行のスタイルに似ているため、この名前が付けられました。
対照的に、現代数字(現代、タイトル、または現代数字とも呼ばれる)は大文字と同じ高さを持ちます。
YAMLResume はデフォルトでラテン文字言語履歴書に旧式数字を使用し、他の言語に現代数字を使用します。
> 高品質なタイポグラフィは通常、本文でテキスト数字を好みます:それらは小文字とスモールキャップとより良く融合し、現代数字の流れとは異なります。現代数字はすべて大文字設定で必要(したがって代替名タイトル数字)、表やスプレッドシートでより良い効果を発揮する可能性があります。
>
> — [テキスト数字](https://en.wikipedia.org/wiki/Text_figures#Design)
### 推奨される西洋フォント
現在、大量のフォントがあるため、履歴書に汎用的な西洋フォントスキームを推奨することは容易ではありません。
* 推奨、本文にセリフフォントを使用
* 推奨、見出しにサンセリフフォントを使用、セリフフォントも使用可能
* 推奨、本文のテキストを強調するためにイタリックフォントスタイルを使用、対応するボールドスタイルも使用可能
以下は一般的なセリフフォントのリストです:
* [Garamond](https://en.wikipedia.org/wiki/Garamond)
* [Palatino](https://en.wikipedia.org/wiki/Palatino)
* [Geogria](https://en.wikipedia.org/wiki/Georgia_\(typeface\))
* [Baskerville](https://en.wikipedia.org/wiki/Baskerville)
* [Minion](https://en.wikipedia.org/wiki/Minion_\(typeface\))
* [Hoefler Text](https://en.wikipedia.org/wiki/Hoefler_Text)
* [Linux Libertine](https://en.wikipedia.org/wiki/Linux_Libertine)
一般的なサンセリフフォントのリスト:
* [Helvetica](https://en.wikipedia.org/wiki/Helvetica)
* [Gill Sans](https://en.wikipedia.org/wiki/Gill_Sans)
* [Optima](https://en.wikipedia.org/wiki/Optima)
***
[^1]: [Serif vs Sans: The Final Battle](http://designreviver.com/inspiration/serif-vs-sans-the-final-battle/)
[^2]: レイアウト幅が小さい場合、通常両端揃えは適切ではありません。両端揃えを適用すると、ほとんどのソフトウェアが文字間隔を調整することを強制し、通常最終的なレイアウト効果は非常に悪くなります。
[^3]: 例えば、TeX タイポグラフィシステムの革新は、その優れた[両端揃え](https://en.wikipedia.org/wiki/TeX#Hyphenation_and_justification)アルゴリズムにあり、その原理は文字間隔を調整してレイアウトをより[両端揃え](https://en.wikipedia.org/wiki/Typographic_alignment#Justified)にすることです。
[^4]: A Beginner's [Guide](https://designschool.canva.com/blog/kerning/) to Kerning Like a Designer
[^5]: [Ligature](https://en.wikipedia.org/wiki/Ligature)
[^6]: [Italic Type](https://en.wikipedia.org/wiki/Italic_type)
# 文法
URL: (/ja/docs/guide/grammar)
## 内容
履歴書にとって簡潔さが最も重要です。基本的な客観的情報が履歴書の核心です:
* 個人情報
* 電話、メールなどの重要な連絡先情報は明確でなければなりません
* 教育背景
* 新卒の場合は、高校の教育背景を追加できます
* 専門技能
* 受賞歴
* 仕事(インターン)経験
主観的情報は慎重に追加:
* 自己評価
* 個人の趣味
* 社交活動、ボランティア経験など、応募職位と明確な関係がないもの
応募職位と関係のない客観的情報は慎重に追加:
* 写真
* 誕生日
* 家庭住所
* 国籍
* 政治的身分
* 婚姻・家族状況
禁止内容:
* 「私の履歴書」をタイトルとして使用
* 異なるソースの履歴書テンプレートのロゴウォーターマーク
## スペル
履歴書のスペルミスは就職活動において大忌です。あまりにも多くの基本的なスペルミスは、雇用主の応募者への第一印象に影響を与えます。ほとんどのソフトウェアにはスペルチェッカーがあるので、適切に使用して多くの主要なスペルミスを避けてください。もちろん、ソフトウェアのスペルチェックに過度に依存せず、信頼できる友人に校正してもらうのが最善です。
### 固有名詞
一般的なスペルミスに加えて、固有名詞には大文字小文字により敏感なため、非常に頻繁なスペルミスがあります。同じ文字の組み合わせの異なる大文字小文字は、異なる分野で完全に異なる意味を持つ可能性があるため、求職者は非常に慎重でなければなりません。例えば、小文字「i」の [iOS](http://www.apple.com/ios/) は Apple iPhone のモバイルオペレーティングシステムを表し、大文字「I」の [IOS](https://en.wikipedia.org/wiki/Cisco_IOS) は Cisco ルーターの専用システムです。
私たちの背景に限って、このガイドは IT 分野内の一般的な固有名詞スペルミスをまとめています。
| 間違ったスペル | 修正 |
| ------------------------------ | -------------- |
| ajax | Ajax AJAX |
| android | Android |
| android studio | Android Studio |
| APP | App |
| AppStore, app store | App Store |
| Css, css | CSS |
| eclipse | Eclipse |
| git, GIT | Git |
| Html, html | HTML |
| Http, http | HTTP |
| json, Json | JSON |
| JAVA, java | Java |
| Javascript, javascript, JS, js | JavaScript |
| linux, LINUX | Linux |
| mysql | MySQL |
| node, Node, NodeJS, nodejs | Node.js |
| OC, oc, objective-c | Objective-C |
| python | Python |
| ruby | Ruby |
| sqlite | SQLite |
| xml, Xml | XML |
| xcode, XCODE, XCode | Xcode |
| ios, IOS | iOS |
| iphone, IPHONE | iPhone |
| jquery, JQuery | jQuery |
## 文法
一般的な文章と比較して、履歴書の作成には特別な文法要件があります。
* 一般的に過去時制を使用しますが、現在の仕事や教育経験を説明している場合は現在時制を使用
* 一般的に過去時制の動詞で項目を開始し、主語を省略
* 長く複雑な従属節ではなく、理解しやすい短い文を使用
* 教育背景と仕事経験を逆順でリストし、時間形式は月まで正確に
* 「2015.05」のような標準時間形式、または「June, 2016」のように明確に説明できる形式を使用し、「05/06」のような年省略形式は使用しない(異なる国で異なる解釈がある可能性)
以下は履歴書作成でよく使用される100個の過去時制単語のリストです:
| | | | | |
| ------------- | ------------ | ------------ | ------------ | ------------ |
| Accelerated | Accomplished | Accounted | Accumulated | Achieved |
| Administrated | Arbitrated | Articulated | Boosted | Briefed |
| Broadened | Budgeted | Campaigned | Chaired | Championed |
| Clarified | Coached | Collaborated | Coordinated | Corroborated |
| Cultivated | Customized | Decided | Decreased | Delegated |
| Demonstrated | Designated | Developed | Devised | Diagnosed |
| Documented | Doubled | Economized | Edited | Educated |
| Empowered | Enabled | Encouraged | Endorsed | Enhanced |
| Facilitated | Focused | Forecasted | Generated | Harmonized |
| Harnessed | Identified | Illustrated | Impressed | Improved |
| Increased | Justified | Launched | Led | Magnified |
| Managed | Marketed | Mastered | Navigated | Negotiated |
| Observed | Obtained | Organized | Orchestrated | Participated |
| Pinpointed | Performed | Publicized | Published | Realigned |
| Recognized | Recommended | Selected | Separated | Spearheaded |
| Stimulated | Succeeded | Surpassed | Synchronized | Synergized |
| Tabulated | Targeted | Tested | Traded | Translated |
| Triggered | Triumphed | Troubleshot | Uncovered | Underwrote |
| Unearthed | Unified | Upgraded | Urged | Utilized |
| Validated | Verbalized | Verified | Vitalized | Yielded |
# ガイド
URL: (/ja/docs/guide)
## 履歴書作成とタイポグラフィガイド
履歴書は人々のキャリアに対する第一印象を与えます。
A4 用紙(210 mm × 297 mm)の上で、履歴書は人生の前の段階を終え、次の段階を始めます。
> 九層の台は、累土より起る。
>
> — [老子](https://en.wikipedia.org/wiki/Laozi)、第六十四章
美しい履歴書は、フォント、句読点、レイアウト、文法などの詳細に基づいています。
このガイドは、履歴書作成とタイポグラフィの要点を体系的に説明し、特にタイポグラフィに重点を置いて、形式と精神の両方で美しい履歴書を作成するのに役立ちます。各トピックについて、まずそれが何であるかを説明し、次になぜそうなのかを説明し、最後にどのように行うかを説明します。
このガイドは可能な限り簡潔で明確であることを目指し、異なる説明に4つの優先順位があります:
* **必須**、タイポグラフィでの強制的な要件、違反は重大なエラー
* **推奨**、一般的なタイポグラフィ標準に準拠、強く推奨
* **すべきではない**、タイポグラフィでの高度な知識や機能が必要、または異なる言語や文化で多様化、または会社の規定によって変化、状況を理解せずに使用するのは危険
* **禁止**、一般的なタイポグラフィ標準と衝突、適用禁止
# 公開
URL: (/ja/docs/guide/publishing)
## ファイル形式
履歴書の一般的なファイル形式には以下があります:
* PDF
* Microsoft Word (doc, docx)
* プレーンテキスト
* HTML
ここで最も推奨するのは PDF です:
* PDF は優れたクロスプラットフォーム出力品質を持ち、ほぼ100%一貫した印刷と表示を保証します
* PDF はフォントを埋め込むことができ、フォント選択において大きな自由度があります
* ほとんどのプラットフォームにデフォルトの PDF リーダーがあります
* Windows 8 以降には内蔵の PDF リーダーがあります
* macOS には [Preview](https://en.wikipedia.org/wiki/Preview_\(Mac_OS\)) があり、iOS には [iBooks](http://www.apple.com/ibooks/) があります
* 多くのブラウザ(Chrome など)には内蔵の [pdf.js](http://mozilla.github.io/pdf.js/) があり、PDF をデフォルトで開くこともできます
MS Word を学ぶのは簡単ですが、Word 形式で履歴書を提供することには大きな欠点があります:
* Word 文書を開くには追加のオフィスソフトウェアをインストールする必要があります
* Windows の Microsoft Word、[WPS Office](https://wps.com)
* macOS の [iWork](https://en.wikipedia.org/wiki/IWork)
* Linux の [WPS Office](https://wps.com)、[LibreOffice](https://www.libreoffice.org/)
* [Google Docs](https://docs.google.com/) などの多くのオンラインドキュメント編集システムも Word 文書を開いて編集できます
* Word 文書は異なるプラットフォームの異なるソフトウェアで大きく異なる表示になる可能性があります
* 実際には誰もがコンピューターに [Microsoft Word](https://products.office.com/en-us/word) をインストールしているわけではありません
* もう一つの事実は、Microsoft Word の正規ライセンスが数百ドルかかる可能性があることです
* 一貫した表示と出力を確保するために、Word 文書は主要オペレーティングシステムで一般的な数種類のフォントのみを使用するのが最善で、これにより Word 文書のフォント選択の自由度は非常に小さくなります
もちろん、異なる会社の異なる HR マネージャーは異なる要件や好みを持つ可能性があります。Word で履歴書を作成する場合は、代替案として PDF にエクスポートすることをお勧めします
## メールエチケット
会社の専用採用システム以外に、求職申請で履歴書を提出する主な方法は電子メールであるべきです。基本的な電子メールエチケットは以下の通りです。
* 正しいメールニックネームを設定し、非公式で過度に派手なニックネームを使用しないでください。これは雇用主に非常に非専門的な印象を与えます
* メールタイトルで統一された形式を使用し、最も重要な情報を伝えるために明確で簡潔に保ちます
* 推奨形式:`Apply-Company Position-Name-[University/Education]-[Work Experience]`
* メール本文は簡潔であるべきで、長いカバーレターや大量の個人的主観的評価を書くことは推奨されません
* テキストの冒頭にタイトルと挨拶を追加するのが最善です
* 本文内容
* 基本的な個人情報、仕事の状況(在職中または非在職)、職位、教育と仕事経験など
* 応募職位
* 応募方法、他人による推薦かどうか
* 名前と連絡先情報(電話/メール)を含む署名を追加
* タイトルと同じ形式で命名された履歴書ファイルを添付
# 句読点
URL: (/ja/docs/guide/punctuations)
句読点は履歴書作成において最も目立たないが、最も間違いやすい部分です。句読点を正しく標準的に使用できるかどうかは、求職者の仕事への応募態度を反映します。
句読点の正しく標準的な使用は簡単に見えるかもしれませんが、見た目ほど単純ではありません。主な理由は、異なる言語環境では句読点の使用について明確な規範がないか、規範があっても多くの場所で明確に定義されていないか、または複数の[スタイルガイド](https://en.wikipedia.org/wiki/Style_guide)があるが互換性がなく、相互に矛盾していることです。次に、実際のタイポグラフィでは多言語混合の状況によく遭遇し、問題がより複雑になります。このガイドは、参考のために句読点使用の一般的な規則をまとめようとしています。
* 必須、コンマ、ピリオド、セミコロン、コロン、感嘆符、疑問符の後にスペースを1つ追加
* 必須、開き括弧の前と閉じ括弧の後にスペースを1つ追加、単語と同じですが、閉じ括弧の後にコンマが続く場合はスペースを追加しません
* 推奨、数字とその単位の間にスペースを1つ追加
* 推奨、ハイフンの周りにスペースを追加せず、時々文字間隔を微調整する必要があります
* 推奨、「A or B」のように2つの平行するものを表すスラッシュの周りにスペースを追加しません
* 推奨、引用符(`'`、`'`、`"`、`"`)を使用し、[アポストロフィ](https://en.wikipedia.org/wiki/Apostrophe)ではありません
* すべきではない、[箇条書きリスト](https://en.wikipedia.org/wiki/Bullet_\(typography\))の項目の末尾に句読点を追加
* 禁止、行の先頭に句読点をぶら下げる、これはソフトウェアの自動設定または手動調整で回避できます
## 接続記号
ハイフン (-)、短いダッシュ (–)、長いダッシュ (—) は、混同しやすく間違いを引き起こす3つの句読点です。それらの使用方法は以下の通りです。
> ハイフンの場合、ハイフン1つ (-) を入力;
>
> 短いダッシュの場合、ハイフン2つ (--) を入力;
>
> 長いダッシュの場合、ハイフン3つ (---) を入力;
>
> マイナス記号の場合、数学モードでハイフン1つ ($-$) を入力。
>
> — Donald Knuth、[The TeXBook](https://en.wikipedia.org/wiki/Computers_and_Typesetting)
### ハイフン (-)
ハイフンは主に以下に使用されます:
* 複合語、例:「upper-case letter」
* 数字や文字を区切る、例:電話番号「1-888-777-666」
* 行末で単語を分割してレイアウト全体を整潔に保つ
行末での単語分割にはいくつかの規則があります:
* 連続する3行以上で最後の単語を分割しないようにする
* 固有名詞、人名などの分割を避ける
* ページをまたぐ単語分割を避ける
* 原則として音節に基づいて単語を分割しますが、分割位置は単語によって異なるため、必要に応じて辞書を調べるのが最善です[^7]
### 短いダッシュ (–)
短いダッシュの長さは大文字「N」の幅に等しく、長いダッシュの長さの半分です。主に以下に使用されます:
* 数字、日時などの範囲を表す、例:年間の日付「July–August 1968」
* ナビゲーションパスの起点と終点を表す、例:「Boston–Hartford route」
短いダッシュを使用する際は、通常その周りにスペースを追加する必要はありません。
### 長いダッシュ (—)
長いダッシュの長さは大文字「M」の幅に等しく、その使用は最も柔軟で複雑です。通常以下に使用されます:
* 何かを詳細に説明する、括弧やコロンに相当
* 叙述節を分割する
* 会話が中断されることを表す、この場合は省略記号も使用できます
さらに、2つまたは3つの長いダッシュが接続されている場合もありますが、ここでは詳細に説明しません[^8]。
***
[^7]: 専門的なタイポグラフィソフトウェアは通常自動単語分割機能を持ち、ある程度有効にすると分割位置を特定できますが、手動で再確認するのが最善です。
[^8]: [Wikipedia/Dash](https://en.wikipedia.org/wiki/Dash) はこの記号の詳細な使用方法と異なるオペレーティングシステムでの入力方法を実演しています。
# タイポグラフィ
URL: (/ja/docs/guide/typesetting)
タイポグラフィは「二次元建築」です。
文字とそのフォントが建物の材料であるなら、タイポグラフィは建物の設計図です。タイポグラフィについて議論する前に、いくつかの基本概念を明確にする必要があります。特に、タイポグラフィでよく使用されるサイズ単位システムです。
## フォントサイズ
フォントサイズは文字サイズの標準測定です。フォントサイズの国際的な共通単位はポイントです。
[ポイント](https://en.wikipedia.org/wiki/Point_\(typography\))は通常 pt と略され、タイポグラフィで最小の測定単位です。実際、ポイントのサイズは印刷の歴史を通じて変化し続けています。18世紀以来、ポイントのサイズは0.18から0.4ミリメートルまで様々でした。1980年代と1990年代の[デスクトップ出版](https://en.wikipedia.org/wiki/Desktop_publishing)の出現により、[デジタル印刷](https://en.wikipedia.org/wiki/Digital_printing)が[活字印刷](https://en.wikipedia.org/wiki/Printing_press)を大きく置き換え、DTPポイントが事実上の標準として徐々に確立されました。
DTPポイントは1/72[インチ](https://en.wikipedia.org/wiki/Inch)として定義されます。
ほとんどのフォントは10-12 ptに設定したときに最適な効果を発揮します。言い換えれば、文字自体のストロークと構造、および文字間のスペースは、このサイズで比較的良好な視覚効果を呈します。フォントが大きくなるほど、テキストはより緩く見えるため、手動で文字間隔を減らす必要があります。一方、フォントが小さくなるほど、テキストはより密に見えるため、手動で文字間隔を増やす必要があります。
| pt | mm | cm | pica | inch |
| -- | ------ | ------- | ---- | ---- |
| 1 | 0.3528 | 0.03528 | 1/12 | 1/72 |
## 行間
行間または行間隔は、2つの連続するベースライン間の距離を指します。
理想的な行間は、テキストフォントサイズの少なくとも120%で、一般的に1.2-1.5倍が推奨されます。異なるフォントは異なるx高さを持ち、原則として、適用されるフォントのx高さが大きいほど、行間は大きくなるべきです。逆に、x高さが小さいほど、行間は小さくなります。
## ページレイアウト
レイアウトはタイポグラフィの輪郭で、漁網の綱のようなものです。綱が引っ張られると、すべての網目が自然に展開します。フォントサイズと行間の一般的なタイポグラフィ規則に加えて、履歴書レイアウト設計にはいくつかの独特な要件があります。原則として、履歴書を1ページ内に収めるのが最善です。
* 言語を明確で簡潔にする
* 合理的な範囲でフォントサイズと行間を調整する
* ページマージンを10-25ミリメートルに保ち、左右のマージンを対称にする
* 情報をリストするために平行文ではなくリストを使用する
* 左揃えを使用し、両端揃えは慎重に使用する。両端揃えは単語の長さが異なるため、単語分割と文字間隔で問題を引き起こす可能性がある
# レイアウト
URL: (/ja/docs/layouts)
履歴書の核心はコンテンツですが、レイアウトも重要です。多くの JSON/YAML ベースの履歴書ジェネレーターはコンテンツのみに焦点を当て、レイアウトを変更せずに残し、ユーザーに大きな問題を残しています。
他の履歴書ジェネレーターとは異なり、YAMLResume はすぐに使えるレイアウトソリューションを提供し、ユーザーが履歴書のコンテンツに集中しながら、ピクセルパーフェクトなレイアウトとタイポグラフィでプロフェッショナルな履歴書を生成できるようにします。
v0.8.0 以降、YAMLResume は `layouts` 配列を通じて、複数のレイアウトと複数の出力エンジン (LaTeX および Markdown) をサポートしています。
以下は `resume.yml` ファイルでのレイアウト設定の例です:
```yml lineNumbers title="resume.yml"
---
content:
# ...
locale:
language: en
layouts:
- engine: latex
template: moderncv-banking
page:
showPageNumbers: true
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
typography:
fontSize: 11pt
- engine: markdown
```
## エンジン
YAMLResume は現在、2 つのエンジンをサポートしています。
* [LaTeX](./layouts/latex): 高品質な PDF 履歴書を生成します。
* [Markdown](./layouts/markdown): プレーンな Markdown 履歴書を生成します。
## 詳細情報
# 中国語
URL: (/ja/docs/locale/chinese)
[中国語](https://zh.wikipedia.org/wiki/%E4%B8%AD%E6%96%87)は[シナ・チベット語族](https://zh.wikipedia.org/wiki/%E6%B1%89%E8%97%8F%E8%AF%AD%E7%B3%BB)に属し、ラテン文字言語とは大きく異なります。約14億人、つまり世界人口の17%が何らかの中国語を第一言語としています。
## 言語学
### 文字セット
[漢字](https://zh.wikipedia.org/wiki/%E6%B1%89%E5%AD%97)と[ラテン文字](https://zh.wikipedia.org/wiki/%E8%A5%BF%E6%96%B9%E6%8B%89%E4%B8%81%E5%AD%97%E7%AC%A6%E9%9B%86)は、2つの根本的に異なる書面言語の方法を表しています。
ラテン文字は限られた文字セットを持ち、比較的少数の文字で大量の語彙を表現し、各文字は特定の音や[音素](https://zh.wikipedia.org/wiki/%E9%9F%B3%E7%B4%A0)を表し、単語はこれらの文字を特定の順序で組み合わせることで形成されます。一方、中国語には数万の文字があり、中国語の完全な範囲を表現し、各文字は[形態素](https://zh.wikipedia.org/wiki/%E8%AF%AD%E7%B4%A0)や単語を表し、通常は意味を直接伝え、単語は個々の文字を組み合わせて形成され、各文字は独自の意味と発音を持ちます。
書字体系のこの根本的な違いは、言語学習、テキスト処理、文化交流に重要な影響を与えます。ラテン文字は比較的学習しやすく使用しやすいですが、漢字は大量の記憶と練習が必要です。
### 変種
中国語には多くの地域変種がありますが、2つの主要な書面形式は簡体字中国語と繁体字中国語です。
以下に詳細を説明します:
**簡体字中国語**
* 主に中国本土とシンガポールで使用されています。
* 20世紀中期に発展し、識字率向上を目的としています。
* [簡体字](https://zh.wikipedia.org/wiki/%E7%AE%80%E5%8C%96%E5%AD%97)を使用し、通常は繁体字より画数が少ないです。
**繁体字中国語**
* 主に香港、マカオ、台湾、多くの海外華人コミュニティで使用されています。
* 中国語の古い形式です。
* [繁体字](https://zh.wikipedia.org/wiki/%E7%B9%81%E4%BD%93%E5%AD%97)を使用し、より多くの画数で複雑です。
簡体字と繁体字中国語の両方が、[普通話](https://zh.wikipedia.org/wiki/%E6%99%AE%E9%80%9A%E8%AF%9D)、[広東語](https://zh.wikipedia.org/wiki/%E7%B2%A4%E8%AF%AD)、[閩南語](https://zh.wikipedia.org/wiki/%E9%97%BD%E5%8D%97%E8%AF%AD)など、様々な中国語方言を書くために使用できることに注意してください。
同時に、繁体字中国語には少なくとも2つの変種があります。香港変種 [zh-HK](https://simplelocalize.io/data/locale-code/zh-HK) と台湾変種 [zh-TW](https://simplelocalize.io/data/locale-code/zh-TW) です。zh-HK と zh-TW の大部分の文字は同じですが、少数の細かい違いがあります。
例えば、「software」という単語は zh-HK では「軟件」と翻訳され、zh-TW では「軟體」と翻訳されます。zh-HK と zh-TW で翻訳が異なる英語の単語は約数十個あり、詳細は[こちら](https://zh.wikipedia.org/wiki/%E7%B9%81%E4%BD%93%E5%AD%97#%E7%94%A8%E8%AA%9E%E5%B7%AE%E7%95%B0)にあります。
一般的に、YAMLResume は zh-HK と zh-TW の違いに対処できません。なぜなら、ユーザーが履歴書を書く際にどの変種を使用するかを決定し、内容が zh-HK または zh-TW の慣用句や規則に準拠していることを確認する必要があるからです。しかし、YAMLResume が zh-HK と zh-TW で正しく処理する必要があることが1つあります。一部の国や地域が zh-HK と zh-TW で異なる名前を持っているからです。例えば、[サウジアラビア](https://zh.wikipedia.org/wiki/%E6%B2%99%E7%89%B9%E9%98%BF%E6%8B%89%E4%BC%AF)は zh-HK では「沙特阿拉伯」と翻訳され、zh-TW では「沙烏地阿拉伯」と翻訳されます。他にもいくつかの国があります。YAMLResume は[処理](#location-countries-and-regions)で、zh-HK と zh-TW で異なる翻訳を持つすべての国や地域を処理しています。
## 慣用句
### 日付
日付は英語と中国語で異なる方法で表現されます。例えば、英語の「Jun 2018 – Present」は中国語の「2018 年 6 月至今」に翻訳されるべきで、年と月の位置が逆転し、ハイフン「–」は「至」に置き換えられるべきです。
同時に、中国語は専用の月の語彙を使用せず、アラビア数字と文字「月」の組み合わせを使用し、カウントゲームのようにシンプルにします。
| 英語 | 中国語 |
| --------------- | ---- |
| January (Jan) | 1 月 |
| February (Feb) | 2 月 |
| March (Mar) | 3 月 |
| April (Apr) | 4 月 |
| May (May) | 5 月 |
| June (Jun) | 6 月 |
| July (Jul) | 7 月 |
| August (Aug) | 8 月 |
| September (Sep) | 9 月 |
| October (Oct) | 10 月 |
| November (Nov) | 11 月 |
| December (Dec) | 12 月 |
### 位置
住所形式は[英語](/locale/english#location)と中国語の規則の間で異なります。英語とは異なり、中国語で住所、都市、国を含む住所を提示する際、一般的な部分(国、州など)は通常前で、最も具体的な部分(町、住所など)は後です。
## タイポグラフィ
### フォント
ラテン文字言語と同様に、中国語にはセリフフォント[宋体](/zh-cn/docs/guide/font#song)とサンセリフフォント[黑体](/zh-cn/docs/guide/font#bold)があります。さらに、[常规](/zh-cn/docs/guide/font#regular)と[仿宋](/zh-cn/docs/guide/font#fangsong)の2つの追加フォントスタイルがあります。詳細は[ガイド -> フォント -> CJKフォント](/zh-cn/docs/guide/font#cjk-font)をご覧ください。
YAMLResume は中国語履歴書の主要フォントとして宋体を使用します。
### 句読点
中国語の句読点は、言語自体と同様に、独特の特徴があります。注意すべき重要な違いは[半角と全角](https://zh.wikipedia.org/wiki/%E5%8D%8A%E8%A7%92%E5%92%8C%E5%85%A8%E8%A7%92%E5%AD%97%E7%AC%A6)句読点の違いです。
中国語の半角と全角句読点の主な違いは、視覚的な幅と期待される用途にあります。
**半角句読点**
* **より狭い**:これらの句読点は通常、ラテン文字や数字と一緒に使用され、URL、メールアドレス、コードスニペットなどで使用されます。
* **使用頻度が低い**:標準的な中国語テキストでは使用頻度が低く、通常は少数のラテン文字言語フレーズや段落で使用されます。
**全角句読点**
* **より広い**:これらの句読点は漢字の幅に合わせて設計され、中国語テキストでの視覚的バランスと一貫した外観を保証します。
* **より一般的**:これらは中国語テキストで使用される標準的な句読点です。
正しいタイプの句読点を使用することは、中国語テキストの正しいフォーマットと可読性にとって重要です。一致しない句読点は視覚的な不整合と潜在的な混乱を引き起こす可能性があります。
半角と全角句読点の違いを理解することで、中国語テキストが正しくフォーマットされ、視覚的に魅力的であることを保証できます。以下は、ラテン文字言語と中国語言語でそれぞれ使用される半角と全角形式の句読点表です。
| | 英語 | 簡体字中国語 |
| ----- | --- | ------ |
| 句点 | . | 。 |
| 疑問符 | ? | ? |
| 感嘆符 | ! | ! |
| コンマ | , | , |
| コロン | : | : |
| セミコロン | ; | ; |
| 小括弧 | () | () |
| 角括弧 | \[] | [] |
| 波括弧 | \{} | {} |
履歴書では、正しい句読点の使用は作者の責任ですが、YAMLResume は履歴書テンプレートが常に正しい句読点を使用することを保証できます。現在2つのケースがあります:
#### コンマ
英語は文の部分やリストの項目を区切るためにコンマ`,`を区切り文字として使用しますが、中国語は文を区切るために中国語コンマ`,`を使用し、リストの項目(例:キーワードリスト)を区切るために専用の列挙コンマ([顿号](https://zh.wikipedia.org/wiki/%E9%A0%93%E5%8F%B7), `、`)を使用します。
#### コロン
英語と中国語も[異なる](https://zh.wikipedia.org/wiki/%E5%8D%8A%E8%A7%92%E5%92%8C%E5%85%A8%E8%A7%92%E5%AD%97%E7%AC%A6)コロンを持っています。[英語コロン](https://www.compart.com/en/unicode/U+003A)は`:`で、Unicode は`U+003A`ですが、[中国語コロン](https://www.compart.com/en/unicode/U+FF1A)は`:`で、Unicode は`U+FF1A`です。常に信頼できるように、YAMLResume もこの問題を処理します。履歴書テンプレートで「Keywords:」(簡体字中国語では「关键字:」、繁体字中国語では「關鍵字:」)や「Courses:」(簡体字中国語では「课程:」、繁体字中国語では「課程:」)などの様々な固定用語に正しいコロンを使用しています。
### 旧式数字
デフォルトでは、**YAMLResume は中国語履歴書で[旧式数字](/zh-cn/docs/guide/font#old-style-numbers)を使用しません**。なぜでしょうか?漢字はすべて同じ高さと幅を持っているため(これが漢字が「方块字」、つまり四角い文字とも呼ばれる理由です)、基本的にすべての漢字は本質的にタイトルと等幅です。セリフスタイルの数字を採用することで、数字スタイルが漢字により近くなります。
### イタリック
デフォルトでは、**YAMLResume は中国語履歴書でイタリックを使用しません**。なぜなら、中国語でのイタリックは[悪い慣行](https://drwhispers.com/2021/11/16/italics-in-chinese/)とされているからです。
ラテン文字言語では、イタリックは通常本文のセリフと区別され、強調やテキストの部分を区別するために使用されますが、漢字をイタリック化すると、テキストの自然な流れと可読性を損なう可能性があります。
ラテン文字とは異なり、漢字は四角い文字で、伝統的にイタリックで書かれることはありません。多くの中国語フォントには各文字の特定のイタリック字形がありません。中国語テキストをイタリック化する際、ソフトウェアは通常文字を傾けるだけで、視覚的に不快で非専門的な外観を引き起こす可能性があります。
## 翻訳
YAMLResume は中国語履歴書の様々なオプションと用語に以下の翻訳を採用しています。
### 教育学位
| 英語 | 中国語(簡体字) | 中国語(繁体字、香港) | 中国語(繁体字、台湾) |
| ------------- | -------- | ----------- | ----------- |
| Middle School | 初中 | 初中 | 初中 |
| High School | 高中 | 高中 | 高中 |
| Diploma | 专科 | 專科 | 專科 |
| Associate | 副学士 | 副學士 | 副學士 |
| Bachelor | 学士 | 學士 | 學士 |
| Master | 硕士 | 碩士 | 碩士 |
| Doctor | 博士 | 博士 | 博士 |
### 言語
| 英語 | 中国語(簡体字) | 中国語(繁体字、香港) | 中国語(繁体字、台湾) |
| ----------- | -------- | ----------- | ----------- |
| Afrikaans | 南非荷兰语 | 南非荷蘭語 | 南非荷蘭語 |
| Albanian | 阿尔巴尼亚语 | 阿爾巴尼亞語 | 阿爾巴尼亞語 |
| Amharic | 阿姆哈拉语 | 阿姆哈拉語 | 阿姆哈拉語 |
| Arabic | 阿拉伯语 | 阿拉伯語 | 阿拉伯語 |
| Azerbaijani | 阿塞拜疆语 | 阿塞拜疆語 | 亞塞拜然語 |
| Belarusian | 白俄罗斯语 | 白俄羅斯語 | 白俄羅斯語 |
| Bengali | 孟加拉语 | 孟加拉語 | 孟加拉語 |
| Bhojpuri | 博杰普尔语 | 博傑普爾語 | 博傑普爾語 |
| Bulgarian | 保加利亚语 | 保加利亞語 | 保加利亞語 |
| Burmese | 缅甸语 | 緬甸語 | 緬甸語 |
| Cantonese | 粤语 | 粵語 | 粵語 |
| Catalan | 加泰罗尼亚语 | 加泰羅尼亞語 | 加泰隆尼亞語 |
| Chinese | 中文 | 中文 | 中文 |
| Croatian | 克罗地亚语 | 克羅地亞語 | 克羅埃西亞語 |
| Czech | 捷克语 | 捷克語 | 捷克語 |
| Danish | 丹麦语 | 丹麥語 | 丹麥語 |
| Dutch | 荷兰语 | 荷蘭語 | 荷蘭語 |
| English | 英语 | 英語 | 英語 |
| Estonian | 爱沙尼亚语 | 愛沙尼亞語 | 愛沙尼亞語 |
| Farsi | 波斯语 | 波斯語 | 波斯語 |
| Filipino | 菲律宾语 | 菲律賓語 | 菲律賓語 |
| Finnish | 芬兰语 | 芬蘭語 | 芬蘭語 |
| French | 法语 | 法語 | 法語 |
| German | 德语 | 德語 | 德語 |
| Greek | 希腊语 | 希臘語 | 希臘語 |
| Gujarati | 古吉拉特语 | 古吉拉特語 | 古吉拉特語 |
| Hausa | 豪萨语 | 豪薩語 | 豪薩語 |
| Hebrew | 希伯来语 | 希伯來語 | 希伯來語 |
| Hindi | 印地语 | 印地語 | 印地語 |
| Hungarian | 匈牙利语 | 匈牙利語 | 匈牙利語 |
| Icelandic | 冰岛语 | 冰島語 | 冰島語 |
| Igbo | 伊博语 | 伊博語 | 伊博語 |
| Indonesian | 印度尼西亚语 | 印度尼西亞語 | 印度尼西亞語 |
| Irish | 爱尔兰语 | 愛爾蘭語 | 愛爾蘭語 |
| Italian | 意大利语 | 意大利語 | 意大利語 |
| Japanese | 日语 | 日語 | 日語 |
| Javanese | 爪哇语 | 爪哇語 | 爪哇語 |
| Kazakh | 哈萨克语 | 哈薩克語 | 哈薩克語 |
| Khmer | 高棉语 | 高棉語 | 高棉語 |
| Korean | 韩语 | 韓語 | 韓語 |
| Lahnda | 拉亨达语 | 拉亨達語 | 拉亨達語 |
| Latvian | 拉脱维亚语 | 拉脫維亞語 | 拉脫維亞語 |
| Lithuanian | 立陶宛语 | 立陶宛語 | 立陶宛語 |
| Malay | 马来语 | 馬來語 | 馬來語 |
| Mandarin | 普通话 | 普通話 | 普通話 |
| Marathi | 马拉地语 | 馬拉地語 | 馬拉地語 |
| Nepali | 尼泊尔语 | 尼泊爾語 | 尼泊爾語 |
| Norwegian | 挪威语 | 挪威語 | 挪威語 |
| Oromo | 奥罗莫语 | 奧羅莫語 | 奧羅莫語 |
| Pashto | 普什图语 | 普什圖語 | 普什圖語 |
| Polish | 波兰语 | 波蘭語 | 波蘭語 |
| Portuguese | 葡萄牙语 | 葡萄牙語 | 葡萄牙語 |
| Romanian | 罗马尼亚语 | 羅馬尼亞語 | 羅馬尼亞語 |
| Russian | 俄语 | 俄語 | 俄語 |
| Serbian | 塞尔维亚语 | 塞爾維亞語 | 塞爾維亞語 |
| Shona | 绍纳语 | 紹納語 | 紹納語 |
| Sinhala | 僧伽罗语 | 僧伽羅語 | 僧伽羅語 |
| Slovak | 斯洛伐克语 | 斯洛伐克語 | 斯洛伐克語 |
| Slovene | 斯洛文尼亚语 | 斯洛文尼亞語 | 斯洛文尼亞語 |
| Somali | 索马里语 | 索馬里語 | 索馬里語 |
| Spanish | 西班牙语 | 西班牙語 | 西班牙語 |
| Sundanese | 巽他语 | 巽他語 | 巽他語 |
| Swahili | 斯瓦希里语 | 斯瓦希里語 | 斯瓦希里語 |
| Swedish | 瑞典语 | 瑞典語 | 瑞典語 |
| Tagalog | 他加禄语 | 他加祿語 | 他加祿語 |
| Tamil | 泰米尔语 | 泰米爾語 | 泰米爾語 |
| Telugu | 泰卢固语 | 泰盧固語 | 泰盧固語 |
| Thai | 泰语 | 泰語 | 泰語 |
| Turkish | 土耳其语 | 土耳其語 | 土耳其語 |
| Ukrainian | 乌克兰语 | 烏克蘭語 | 烏克蘭語 |
| Urdu | 乌尔都语 | 烏爾都語 | 烏爾都語 |
| Uzbek | 乌兹别克语 | 烏茲別克語 | 烏茲別克語 |
| Vietnamese | 越南语 | 越南語 | 越南語 |
| Yoruba | 约鲁巴语 | 約魯巴語 | 約魯巴語 |
| Zulu | 祖鲁语 | 祖魯語 | 祖魯語 |
### 言語習熟度
| 英語 | 中国語(簡体字) | 中国語(繁体字、香港) | 中国語(繁体字、台湾) |
| -------------------------------- | -------- | ----------- | ----------- |
| Elementary Proficiency | 初级水平 | 初級水平 | 初級水平 |
| Limited Working Proficiency | 有限工作水平 | 有限工作水平 | 有限工作水平 |
| Minimum Professional Proficiency | 最低专业水平 | 最低專業水平 | 最低專業水平 |
| Full Professional Proficiency | 完全专业水平 | 完全專業水平 | 完全專業水平 |
| Native or Bilingual Proficiency | 母语或双语水平 | 母語或雙語水平 | 母語或雙語水平 |
### 位置(国と地域)
| 英語 | 中国語(簡体字) | 中国語(繁体字、香港) | 中国語(繁体字、台湾) |
| ---------------- | -------- | ----------- | ----------- |
| Afghanistan | 阿富汗 | 阿富汗 | 阿富汗 |
| Albania | 阿尔巴尼亚 | 阿爾巴尼亞 | 阿爾巴尼亞 |
| Algeria | 阿尔及利亚 | 阿爾及利亞 | 阿爾及利亞 |
| Argentina | 阿根廷 | 阿根廷 | 阿根廷 |
| Armenia | 亚美尼亚 | 亞美尼亞 | 亞美尼亞 |
| Australia | 澳大利亚 | 澳大利亞 | 澳大利亞 |
| Austria | 奥地利 | 奧地利 | 奧地利 |
| Azerbaijan | 阿塞拜疆 | 阿塞拜疆 | 亞塞拜然 |
| Bangladesh | 孟加拉 | 孟加拉 | 孟加拉 |
| Belarus | 白俄罗斯 | 白俄羅斯 | 白俄羅斯 |
| Belgium | 比利时 | 比利時 | 比利時 |
| Brazil | 巴西 | 巴西 | 巴西 |
| Bulgaria | 保加利亚 | 保加利亞 | 保加利亞 |
| Cambodia | 柬埔寨 | 柬埔寨 | 柬埔寨 |
| Canada | 加拿大 | 加拿大 | 加拿大 |
| Chile | 智利 | 智利 | 智利 |
| China | 中国 | 中國 | 中國 |
| Colombia | 哥伦比亚 | 哥倫比亞 | 哥倫比亞 |
| Croatia | 克罗地亚 | 克羅地亞 | 克羅埃西亞 |
| Czech Republic | 捷克 | 捷克 | 捷克 |
| Denmark | 丹麦 | 丹麥 | 丹麥 |
| Egypt | 埃及 | 埃及 | 埃及 |
| Finland | 芬兰 | 芬蘭 | 芬蘭 |
| France | 法国 | 法國 | 法國 |
| Germany | 德国 | 德國 | 德國 |
| Greece | 希腊 | 希臘 | 希臘 |
| Hong Kong S.A.R. | 中国香港 | 中國香港 | 中國香港 |
| Hungary | 匈牙利 | 匈牙利 | 匈牙利 |
| Iceland | 冰岛 | 冰島 | 冰島 |
| India | 印度 | 印度 | 印度 |
| Indonesia | 印度尼西亚 | 印度尼西亞 | 印度尼西亞 |
| Iran | 伊朗 | 伊朗 | 伊朗 |
| Iraq | 伊拉克 | 伊拉克 | 伊拉克 |
| Ireland | 爱尔兰 | 愛爾蘭 | 愛爾蘭 |
| Israel | 以色列 | 以色列 | 以色列 |
| Italy | 意大利 | 意大利 | 義大利 |
| Japan | 日本 | 日本 | 日本 |
| Kazakhstan | 哈萨克斯坦 | 哈薩克斯坦 | 哈薩克 |
| Kenya | 肯尼亚 | 肯尼亞 | 肯亞 |
| Korea | 韩国 | 韓國 | 韓國 |
| Kuwait | 科威特 | 科威特 | 科威特 |
| Latvia | 拉脱维亚 | 拉脫維亞 | 拉脫維亞 |
| Lebanon | 黎巴嫩 | 黎巴嫩 | 黎巴嫩 |
| Lithuania | 立陶宛 | 立陶宛 | 立陶宛 |
| Luxembourg | 卢森堡 | 盧森堡 | 盧森堡 |
| Macau S.A.R. | 中国澳门 | 中國澳門 | 中國澳門 |
| Malaysia | 马来西亚 | 馬來西亞 | 馬來西亞 |
| Mexico | 墨西哥 | 墨西哥 | 墨西哥 |
| Netherlands | 荷兰 | 荷蘭 | 荷蘭 |
| New Zealand | 新西兰 | 新西蘭 | 紐西蘭 |
| Norway | 挪威 | 挪威 | 挪威 |
| Pakistan | 巴基斯坦 | 巴基斯坦 | 巴基斯坦 |
| Philippines | 菲律宾 | 菲律賓 | 菲律賓 |
| Poland | 波兰 | 波蘭 | 波蘭 |
| Portugal | 葡萄牙 | 葡萄牙 | 葡萄牙 |
| Romania | 罗马尼亚 | 羅馬尼亞 | 羅馬尼亞 |
| Russia | 俄罗斯联邦 | 俄羅斯聯邦 | 俄羅斯聯邦 |
| Saudi Arabia | 沙特阿拉伯 | 沙特阿拉伯 | 沙烏地阿拉伯 |
| Singapore | 新加坡 | 新加坡 | 新加坡 |
| Slovakia | 斯洛伐克 | 斯洛伐克 | 斯洛伐克 |
| Slovenia | 斯洛文尼亚 | 斯洛文尼亞 | 斯洛維尼亞 |
| South Africa | 南非 | 南非 | 南非 |
| South Korea | 韩国 | 韓國 | 韓國 |
| Spain | 西班牙 | 西班牙 | 西班牙 |
| Sweden | 瑞典 | 瑞典 | 瑞典 |
| Switzerland | 瑞士 | 瑞士 | 瑞士 |
| Taiwan | 中国台湾 | 中國臺灣 | 中國臺灣 |
| Thailand | 泰国 | 泰國 | 泰國 |
| Türkiye | 土耳其 | 土耳其 | 土耳其 |
| Ukraine | 乌克兰 | 烏克蘭 | 烏克蘭 |
| United Kingdom | 英国 | 英國 | 英國 |
| United States | 美国 | 美國 | 美國 |
| Vietnam | 越南 | 越南 | 越南 |
### セクション名
| 英語 | 中国語(簡体字) | 中国語(繁体字、香港) | 中国語(繁体字、台湾) |
| ------------ | -------- | ----------- | ----------- |
| Awards | 荣誉 | 榮譽 | 榮譽 |
| Basics | 简介 | 簡介 | 簡介 |
| Certificates | 证书 | 證書 | 證書 |
| Education | 教育背景 | 教育背景 | 教育背景 |
| Interests | 兴趣爱好 | 興趣愛好 | 興趣愛好 |
| Languages | 语言 | 語言 | 語言 |
| Location | 地址 | 地址 | 地址 |
| Profiles | 社交信息 | 社交信息 | 社交信息 |
| Projects | 项目 | 項目 | 項目 |
| Publications | 出版刊物 | 出版刊物 | 出版刊物 |
| References | 引荐 | 引薦 | 引薦 |
| Skills | 专业技能 | 專業技能 | 專業技能 |
| Volunteer | 志愿服务 | 志願服務 | 志願服務 |
| Work | 工作经历 | 工作經歷 | 工作經歷 |
### スキルレベル
| 英語 | 中国語(簡体字) | 中国語(繁体字、香港) | 中国語(繁体字、台湾) |
| ------------ | -------- | ----------- | ----------- |
| Novice | 新手 | 新手 | 新手 |
| Beginner | 初级 | 初級 | 初級 |
| Intermediate | 中级 | 中級 | 中級 |
| Advanced | 高级 | 高級 | 高級 |
| Expert | 专家 | 專家 | 專家 |
| Master | 大师 | 大師 | 大師 |
### 用語
| 英語 | 中国語(簡体字) | 中国語(繁体字、香港) | 中国語(繁体字、台湾) |
| -------- | -------- | ----------- | ----------- |
| Courses | 课程 | 課程 | 課程 |
| Keywords | 关键字 | 關鍵字 | 關鍵字 |
| Score | 成绩 | 成績 | 成績 |
# オランダ語
URL: (/ja/docs/locale/dutch)
英語とオランダ語はどちらも[ゲルマン語派](https://en.wikipedia.org/wiki/Germanic_languages)であり、オランダ語は西ゲルマン語群の一部として、英語やドイツ語と密接に関連しています。多くの類似点を共有していますが、オランダ語にはYAMLResumeで特別な配慮が必要な独自の特徴があります。
## 言語学
### 文字セット
英語とオランダ語はどちらも[ラテン文字](https://en.wikipedia.org/wiki/Latin_alphabet)を使用します。ただし、オランダ語にはいくつかの固有の機能が含まれています。
| 機能 | 英語の文字セット | オランダ語の文字セット |
| :---------- | :----------- | :---------------------------------------------------------------------------------------- |
| **アルファベット** | 26文字 (`a-z`) | 26文字 (`a-z`)。二重音字 `ij` は時々、別個の文字として扱われます。 |
| **発音区別符号** | なし | 母音の分離を示すためのトレマ(分音記号)(`ë`, `ï`など、例:*coöperatie*)や、強調や発音のためのアキュートアクセント(`é`)などの発音区別符号を使用します。 |
| **特殊文字** | 基本的なラテン文字に限定 | 標準的な文字を含みますが、`ij` は大文字の場合に特別に扱われます(例:*IJsselmeer*)。 |
主な違いは以下の通りです:
* **二重音字 `ij`**: オランダ語では、`ij` の組み合わせはしばしば単一の文字として扱われます。文頭や固有名詞で大文字にするときは、IとJの両方が大文字になります(例:*IJmuiden*)。
* **発音区別符号**: トレマ(分音記号)は、二重母音としてではなく、2つの母音が別々に発音される(母音接続)ことを示すために使用されます。
## 慣用句
### 日付
オランダ語では、文頭に現れない限り、曜日と月は小文字で表記されます(英語とは異なります)。
例えば、"Sep 2021" はオランダ語で "sep. 2021" または "sept. 2021" と翻訳され、月は小文字になります。
### 大文字の使用
オランダ語の大文字使用規則は一般的に英語と似ていますが、例外があります:
* **曜日/月**: 小文字で表記されます(*maandag*, *januari*)。
* **言語/国籍**: 大文字で表記されます(*Nederlands*, *Engels*)。
* **代名詞 "I"**: オランダ語の "ik" は、文頭にない限り小文字で表記されます。
YAMLResumeは、すべての履歴書テンプレートに対して固定されたオプションと用語のセットを内部的に採用しています。例えば、YAMLResumeの履歴書テンプレートの言語は、[LinkedInの言語習熟度オプション](https://www.linkedin.com/pulse/language-proficiency-linkedin-duaa-ali/)を採用しています:
* Elementary Proficiency
* Limited Working Proficiency
* Minimum Professional Proficiency
* Full Professional Proficiency
* Native or Bilingual Proficiency
これらはオランダ語に次のように翻訳されます:
* Elementaire vaardigheid
* Beperkte werkvaardigheid
* Minimale professionele vaardigheid
* Volledige professionele vaardigheid
* Moedertaal of tweetalige vaardigheid
オランダ語の大文字使用規則に従い、最初の単語のみ大文字になります。
## 組版
### 句読点
オランダ語には、英語とは異なるいくつかの注目すべき句読点の違いがあります:
* **小数点**: オランダ語では、英語のピリオド (3.14) の代わりに、小数点としてカンマを使用します (例: 3,14)。
* **桁区切り**: オランダ語では、カンマの代わりにピリオドまたはスペースを桁区切りとして使用します (例: 1.000 または 1 000)。
* **引用符**: オランダ語では公式に、二重引用符(多くの場合、低-高 `„...”` または 高-高 `"..."`)または一重引用符(`'...'`)を使用します。
## 翻訳
YAMLResumeは、オランダ語の履歴書で使用されるさまざまなオプションと用語について、以下の翻訳を採用しています。
### 教育学位
| English | Dutch |
| :------------ | :--------- |
| Middle School | Middelbaar |
| High School | Hogeschool |
| Diploma | Diploma |
| Associate | Graduaat |
| Bachelor | Bachelor |
| Master | Master |
| Doctor | Doctoraat |
### 言語
| English | Dutch |
| :---------- | :------------- |
| Afrikaans | Afrikaans |
| Albanian | Albanees |
| Amharic | Amhaars |
| Arabic | Arabisch |
| Azerbaijani | Azerbeidzjaans |
| Belarusian | Wit-Russisch |
| Bengali | Bengaals |
| Bhojpuri | Bhojpuri |
| Bulgarian | Bulgaars |
| Burmese | Birmees |
| Cantonese | Kantonees |
| Catalan | Catalaans |
| Chinese | Chinees |
| Croatian | Kroatisch |
| Czech | Tsjechisch |
| Danish | Deens |
| Dutch | Nederlands |
| English | Engels |
| Estonian | Ests |
| Farsi | Persan |
| Filipino | Filipijns |
| Finnish | Fins |
| French | Frans |
| German | Duits |
| Greek | Grieks |
| Gujarati | Gujarati |
| Hausa | Haoussa |
| Hebrew | Hebreeuws |
| Hindi | Hindi |
| Hungarian | Hongaars |
| Icelandic | IJslands |
| Igbo | Igbo |
| Indonesian | Indonesisch |
| Irish | Iers |
| Italian | Italiaans |
| Japanese | Japans |
| Javanese | Javaans |
| Kazakh | Kazachs |
| Khmer | Khmer |
| Korean | Koreaans |
| Lahnda | Lahnda |
| Latvian | Lets |
| Lithuanian | Litouws |
| Malay | Maleis |
| Mandarin | Mandarijn |
| Marathi | Marathi |
| Nepali | Nepalees |
| Norwegian | Noors |
| Oromo | Oromo |
| Pashto | Pasjto |
| Polish | Pools |
| Portuguese | Portugees |
| Romanian | Roemeense |
| Russian | Russisch |
| Serbian | Servisch |
| Shona | Shona |
| Sinhala | Singalees |
| Slovak | Slowaaks |
| Slovene | Sloveens |
| Somali | Somalisch |
| Spanish | Spaans |
| Sundanese | Soendanees |
| Swahili | Swahili |
| Swedish | Zweeds |
| Tagalog | Tagalog |
| Tamil | Tamoul |
| Telugu | Telugu |
| Thai | Thais |
| Turkish | Turks |
| Ukrainian | Oekraïens |
| Urdu | Urdu |
| Uzbek | Oezbeeks |
| Vietnamese | Vietnamees |
| Yoruba | Joruba |
| Zulu | Zoeloe |
### 言語の習熟度
| English | Dutch |
| :------------------------------- | :----------------------------------- |
| Elementary Proficiency | Elementaire vaardigheid |
| Limited Working Proficiency | Beperkte werkvaardigheid |
| Minimum Professional Proficiency | Minimale professionele vaardigheid |
| Full Professional Proficiency | Volledige professionele vaardigheid |
| Native or Bilingual Proficiency | Moedertaal of tweetalige vaardigheid |
### 場所(国と地域)
| English | Dutch |
| :----------------------------------- | :------------------------------------------------ |
| Afghanistan | Afghanistan |
| Aland Islands | Åland eilanden |
| Albania | Albanië |
| Algeria | Algerije |
| American Samoa | Amerikaans-Samoa |
| Andorra | Andorra |
| Angola | Angola |
| Anguilla | Anguilla |
| Antarctica | Antarctica |
| Antigua And Barbuda | Antigua en Barbuda |
| Argentina | Argentinië |
| Armenia | Armenië |
| Aruba | Aruba |
| Australia | Australië |
| Austria | Oostenrijk |
| Azerbaijan | Azerbeidzjan |
| Bahrain | Bahrein |
| Bangladesh | Bangladesh |
| Barbados | Barbados |
| Belarus | Belarus |
| Belgium | België |
| Belize | Belize |
| Benin | Benin |
| Bermuda | Bermuda |
| Bhutan | Bhutan |
| Bolivia | Bolivia |
| Bonaire, Sint Eustatius and Saba | Bonaire, Sint Eustatius en Saba |
| Bosnia and Herzegovina | Bosnië en Herzegovina |
| Botswana | Botswana |
| Bouvet Island | Bouvet-eiland |
| Brazil | Brazilië |
| British Indian Ocean Territory | Brits Indische Oceaanterritorium |
| Brunei | Brunei |
| Bulgaria | Bulgarije |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Cambodja |
| Cameroon | Kameroen |
| Canada | Canada |
| Cape Verde | Kaapverdië |
| Cayman Islands | Kaaimaneilanden |
| Central African Republic | Centraal-Afrikaanse Republiek |
| Chad | Tsjaad |
| Chile | Chili |
| China | China |
| Christmas Island | Christmaseiland |
| Cocos (Keeling) Islands | Cocoseilanden |
| Colombia | Colombië |
| Comoros | Comoren |
| Congo | Congo |
| Cook Islands | Cook Eilanden |
| Costa Rica | Costa Rica |
| Cote D'Ivoire (Ivory Coast) | Ivoorkust |
| Croatia | Kroatië |
| Cuba | Cuba |
| Curaçao | Curacao |
| Cyprus | Cyprus |
| Czech Republic | Tsjechische Republiek |
| Democratic Republic of the Congo | Democratische Republiek Congo |
| Denmark | Denemarken |
| Djibouti | Djibouti |
| Dominica | Dominica |
| Dominican Republic | Dominicaanse Republiek |
| East Timor | Oost-Timor |
| Ecuador | Ecuador |
| Egypt | Egypte |
| El Salvador | El Salvador |
| Equatorial Guinea | Equatoriaal-Guinea |
| Eritrea | Eritrea |
| Estonia | Estland |
| Ethiopia | Ethiopië |
| Falkland Islands | Falklandeilanden |
| Faroe Islands | Faeröer eilanden |
| Fiji Islands | Fiji-eilanden |
| Finland | Finland |
| France | Frankrijk |
| French Guiana | Frans-Guyana |
| French Polynesia | Frans-Polynesië |
| French Southern Territories | Franse Zuidelijke Gebieden |
| Gabon | Gabon |
| Gambia The | Gambia De |
| Georgia | Georgië |
| Germany | Duitsland |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Griekenland |
| Greenland | Groenland |
| Grenada | Grenada |
| Guadeloupe | Guadeloupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernsey en Alderney |
| Guinea | Guinea |
| Guinea-Bissau | Guinee-Bissau |
| Guyana | Guyana |
| Haiti | Haïti |
| Heard Island and McDonald Islands | Heard Island en McDonald Islands |
| Honduras | Honduras |
| Hong Kong | HongKong |
| Hungary | Hongarijë |
| Iceland | Ijsland |
| India | India |
| Indonesia | Indonesië |
| Iran | Iran |
| Iraq | Iraq |
| Ireland | Ierland |
| Israel | Israël |
| Italy | Italië |
| Jamaica | Jamaica |
| Japan | Japan |
| Jersey | Jersey |
| Jordan | Jordanië |
| Kazakhstan | Kazachstan |
| Kenya | Kenia |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Koeweit |
| Kyrgyzstan | Kirgizië |
| Laos | Laos |
| Latvia | Letland |
| Lebanon | Libanon |
| Lesotho | Lesotho |
| Liberia | Liberia |
| Libya | Libië |
| Liechtenstein | Liechtenstein |
| Lithuania | Litouwen |
| Luxembourg | Luxemburg |
| Macau | Macau |
| Madagascar | Madagascar |
| Malawi | Malawi |
| Malaysia | Maleisië |
| Maldives | Maldiven |
| Mali | Mali |
| Malta | Malta |
| Man (Isle of) | Man (Eiland van) |
| Marshall Islands | Marshall eilanden |
| Martinique | Martinique |
| Mauritania | Mauritanië |
| Mauritius | Mauritius |
| Mayotte | Mayotte |
| Mexico | Mexico |
| Micronesia | Micronesië |
| Moldova | Moldavië |
| Monaco | Monaco |
| Mongolia | Mongolië |
| Montenegro | Montenegro |
| Montserrat | Montserrat |
| Morocco | Marokko |
| Mozambique | Mozambique |
| Myanmar | Myanmar |
| Namibia | Namibië |
| Nauru | Nauru |
| Nepal | Nepal |
| Netherlands | Nederland |
| New Caledonia | Nieuw-Caledonië |
| New Zealand | Nieuw-Zeeland |
| Nicaragua | Nicaragua |
| Niger | Niger |
| Nigeria | Nigeria |
| Niue | Niue |
| Norfolk Island | Norfolkeiland |
| North Korea | Noord-Korea |
| North Macedonia | Noord-Macedionië |
| Northern Mariana Islands | Noordelijke Marianen |
| Norway | Noorwegen |
| Oman | Oman |
| Pakistan | Pakistan |
| Palau | Palau |
| Palestinian Territory Occupied | Palestijns bezet gebied |
| Panama | Panama |
| Papua new Guinea | Papoea-Nieuw-Guinea |
| Paraguay | Paraguay |
| Peru | Peru |
| Philippines | Philippines |
| Pitcairn Island | Pitcairn-eiland |
| Poland | Polen |
| Portugal | Portugal |
| Puerto Rico | Puerto Rico |
| Qatar | Katar |
| Reunion | Reunion |
| Romania | Roemenië |
| Russia | Rusland |
| Rwanda | Rwanda |
| Saint Helena | Sint-Helena |
| Saint Kitts And Nevis | Saint Kitts en Nevis |
| Saint Lucia | Saint Lucia |
| Saint Pierre and Miquelon | Saint Pierre en Miquelon |
| Saint Vincent And The Grenadines | Saint Vincent en de Grenadines |
| Saint-Barthelemy | Saint-Barthélemy |
| Saint-Martin (French part) | Saint-Martin (Frans deel) |
| Samoa | Samoa |
| San Marino | San Marino |
| Sao Tome and Principe | Sao Tomé en Principe |
| Saudi Arabia | Saoedi-Arabië |
| Senegal | Senegal |
| Serbia | Servië |
| Seychelles | Seychellen |
| Sierra Leone | Sierra Leone |
| Singapore | Singapore |
| Sint Maarten (Dutch part) | Sint Maarten (Nederlands deel) |
| Slovakia | Slowakije |
| Slovenia | Slovenië |
| Solomon Islands | Salomonseilanden |
| Somalia | Somalië |
| South Africa | Zuid-Afrika |
| South Georgia | Zuid-Georgië |
| South Korea | Zuid-Korea |
| South Sudan | Zuid-Sudan |
| Spain | Spanje |
| Sri Lanka | Sri Lanka |
| Sudan | Sudan |
| Suriname | Suriname |
| Svalbard And Jan Mayen Islands | Svalbard- en Jan Mayen-eilanden |
| Swaziland | Swaziland |
| Sweden | Zweden |
| Switzerland | Zwitserland |
| Syria | Syrië |
| Taiwan | Taiwan |
| Tajikistan | Tadsjikistan |
| Tanzania | Tanzania |
| Thailand | Thailand |
| The Bahamas | De Bahama's |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinidad en Tobago |
| Tunisia | Tunesië |
| Türkiye | Turkijë |
| Turkmenistan | Turkmenistan |
| Turks And Caicos Islands | Turks- en Caicoseilanden |
| Tuvalu | Tuvalu |
| Uganda | Oeganda |
| Ukraine | Oekraïne |
| United Arab Emirates | Verenigde Arabische Emiraten |
| United Kingdom | Koninkrijk |
| United States | Verenigde Staten |
| United States Minor Outlying Islands | Kleine afgelegen eilanden van de Verenigde Staten |
| Uruguay | Uruguay |
| Uzbekistan | Oezbekistan |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Vaticaanstad (Heilige Stoel) |
| Venezuela | Venezuela |
| Vietnam | Vietnam |
| Virgin Islands (British) | Britse Maagdeneilanden |
| Virgin Islands (US) | Amerikaanse Maagdeneilanden |
| Wallis And Futuna Islands | Wallis en Futuna-eilanden |
| Western Sahara | Westelijke Sahara |
| Yemen | Jemen |
| Zambia | Zambia |
| Zimbabwe | Zimbabwe |
### セクション名
| English | Dutch |
| :----------- | :---------------- |
| Awards | Onderscheidingen |
| Basics | Basis Informatie |
| Certificates | Certificaten |
| Education | Opleidingen |
| Interests | Interesses |
| Languages | Talen |
| Location | Locatie |
| Profiles | Profielen |
| Projects | Projecten |
| Publications | Publicaties |
| References | Referenties |
| Skills | Vaardigheden |
| Volunteer | Vrijwilligerswerk |
| Work | Werkervaring |
### スキルレベル
| English | Dutch |
| :----------- | :----------- |
| Novice | Nieuweling |
| Beginner | Beginner |
| Intermediate | Intermediair |
| Advanced | Geavanceerd |
| Expert | Expert |
| Master | Meester |
### オプションと用語
| English | Dutch |
| :------- | :---------- |
| Courses | Cursussen |
| Keywords | Trefwoorden |
| Score | Score |
# 英語
URL: (/ja/docs/locale/english)
ご存知の通り、英語は世界中で広く使用され、話されています。
YAMLResume で英語をサポートすることは簡単な作業です。LaTeX を使用した英語履歴書をサポートするために、追加の設定はほとんど必要ありません。
## 言語学
理論的には、英語は[ゲルマン語族](https://en.wikipedia.org/wiki/Germanic_languages)に属し、これは[インド・ヨーロッパ語族](https://en.wikipedia.org/wiki/Indo-European_languages)の一分岐で、主に約5.15億人によって使用され、主にヨーロッパ、北米、オセアニア、南部アフリカで話されています。
### 文字セット
現代英語は26文字からなるラテン文字で書かれており、各文字は大文字と小文字の形式を持ちます。
[ラテン文字](https://en.wikipedia.org/wiki/Latin_alphabet)は世界で最も広く使用されているアルファベット書字体系です。
## 慣用句
### 日付
英語には専用の月の語彙があり、それぞれに省略形があります。YAMLResume はデフォルトですべての月フィールドの省略形を採用しています。
| 長形式 | 省略形 |
| --------- | --- |
| January | Jan |
| February | Feb |
| March | Mar |
| April | Apr |
| May | May |
| June | Jun |
| July | Jul |
| August | Aug |
| September | Sep |
| October | Oct |
| November | Nov |
| December | Dec |
### 位置
異なる言語は異なる形式で位置を提示します。英語では、住所、都市、国を含む住所を提示する際、一般的な部分(国、州など)は通常最後に現れ、最も具体的な部分(町、住所など)が最初に現れます。中国語などの他の言語では、順序が完全に逆になります。
以下は英語での典型的な順序です:
1. 住所:番地、通り名、アパート番号など。
2. 都市:都市や町の名前。
3. 州/省:州や省(該当する場合)。
4. 国:国の名前。
## タイポグラフィ
多くのタイポグラフィ理論と実践は、すべてのラテン文字言語で共有でき、英語も例外ではありません。詳細をカバーした[ガイド](/zh-cn/docs/guide)を準備しています。
### フォント
詳細については、ガイドの[ガイド -> フォント](/zh-cn/docs/guide/font)をご覧ください:
* [セリフ vs. サンセリフ](/zh-cn/docs/guide/font#serif-vs-sans-serif)
* [プロポーショナル vs. 等幅](/zh-cn/docs/guide/font#proportional-vs-monospaced)
* [カーニング](/zh-cn/docs/guide/font#kerning)
* [リガチャ](/zh-cn/docs/guide/font#ligature)
* [イタリック](/zh-cn/docs/guide/font#italics)
* [旧式数字](/zh-cn/docs/guide/font#old-style-numbers)
### 句読点
詳細については、ガイドの[ガイド -> 句読点](/zh-cn/docs/guide/punctuations)をご覧ください:
* [ハイフン](/zh-cn/docs/guide/punctuations#hyphen--)
* [短いダッシュ](/zh-cn/docs/guide/punctuations#en-dash-)
* [長いダッシュ](/zh-cn/docs/guide/punctuations#em-dash-)
## 翻訳
YAMLResume は英語履歴書で使用される様々なオプションと用語に以下の翻訳を採用しています。
### 教育学位
YAMLResume は教育セクションで以下の事前定義された学位を提示します。
| 英語 |
| ------------- |
| Middle School |
| High School |
| Diploma |
| Associate |
| Bachelor |
| Master |
| Doctor |
### 言語
YAMLResume は言語セクションで以下の事前定義された言語オプションを提示します。
| 英語 |
| ----------- |
| Afrikaans |
| Albanian |
| Amharic |
| Arabic |
| Azerbaijani |
| Belarusian |
| Bengali |
| Bhojpuri |
| Bulgarian |
| Burmese |
| Cantonese |
| Catalan |
| Chinese |
| Croatian |
| Czech |
| Danish |
| Dutch |
| English |
| Estonian |
| Farsi |
| Filipino |
| Finnish |
| French |
| German |
| Greek |
| Gujarati |
| Hausa |
| Hebrew |
| Hindi |
| Hungarian |
| Icelandic |
| Igbo |
| Indonesian |
| Irish |
| Italian |
| Japanese |
| Javanese |
| Kazakh |
| Khmer |
| Korean |
| Lahnda |
| Latvian |
| Lithuanian |
| Malay |
| Mandarin |
| Marathi |
| Nepali |
| Norwegian |
| Oromo |
| Pashto |
| Polish |
| Portuguese |
| Romanian |
| Russian |
| Serbian |
| Shona |
| Sinhala |
| Slovak |
| Slovene |
| Somali |
| Spanish |
| Sundanese |
| Swahili |
| Swedish |
| Tagalog |
| Tamil |
| Telugu |
| Thai |
| Turkish |
| Ukrainian |
| Urdu |
| Uzbek |
| Vietnamese |
| Yoruba |
| Zulu |
### 言語習熟度
YAMLResume は言語セクションで以下の事前定義された言語習熟度オプションを提示します。これらのオプションは[Linkedin](https://www.linkedin.com/pulse/language-proficiency-linkedin-duaa-ali/)からミラーされています。
| 英語 |
| -------------------------------- |
| Elementary Proficiency |
| Limited Working Proficiency |
| Minimum Professional Proficiency |
| Full Professional Proficiency |
| Native or Bilingual Proficiency |
### 位置(国と地域)
YAMLResume は位置セクションで以下の国と地域オプションを提供します。このリストは[countries-states-cities-database](https://github.com/dr5hn/countries-states-cities-database)から来ています。すべてが国ではなく、一部は地域や[特別行政区](https://en.wikipedia.org/wiki/Special_administrative_regions_of_China)です。
| 英語 |
| ------------------------------------ |
| Afghanistan |
| Aland Islands |
| Albania |
| Algeria |
| American Samoa |
| Andorra |
| Angola |
| Anguilla |
| Antarctica |
| Antigua And Barbuda |
| Argentina |
| Armenia |
| Aruba |
| Australia |
| Austria |
| Azerbaijan |
| Bahrain |
| Bangladesh |
| Barbados |
| Belarus |
| Belgium |
| Belize |
| Benin |
| Bermuda |
| Bhutan |
| Bolivia |
| Bonaire, Sint Eustatius and Saba |
| Bosnia and Herzegovina |
| Botswana |
| Bouvet Island |
| Brazil |
| British Indian Ocean Territory |
| Brunei |
| Bulgaria |
| Burkina Faso |
| Burundi |
| Cambodia |
| Cameroon |
| Canada |
| Cape Verde |
| Cayman Islands |
| Central African Republic |
| Chad |
| Chile |
| China |
| Christmas Island |
| Cocos (Keeling) Islands |
| Colombia |
| Comoros |
| Congo |
| Cook Islands |
| Costa Rica |
| Cote D'Ivoire (Ivory Coast) |
| Croatia |
| Cuba |
| Curaçao |
| Cyprus |
| Czech Republic |
| Democratic Republic of the Congo |
| Denmark |
| Djibouti |
| Dominica |
| Dominican Republic |
| East Timor |
| Ecuador |
| Egypt |
| El Salvador |
| Equatorial Guinea |
| Eritrea |
| Estonia |
| Ethiopia |
| Falkland Islands |
| Faroe Islands |
| Fiji Islands |
| Finland |
| France |
| French Guiana |
| French Polynesia |
| French Southern Territories |
| Gabon |
| Gambia The |
| Georgia |
| Germany |
| Ghana |
| Gibraltar |
| Greece |
| Greenland |
| Grenada |
| Guadeloupe |
| Guam |
| Guatemala |
| Guernsey and Alderney |
| Guinea |
| Guinea-Bissau |
| Guyana |
| Haiti |
| Heard Island and McDonald Islands |
| Honduras |
| Hong Kong S.A.R. |
| Hungary |
| Iceland |
| India |
| Indonesia |
| Iran |
| Iraq |
| Ireland |
| Israel |
| Italy |
| Jamaica |
| Japan |
| Jersey |
| Jordan |
| Kazakhstan |
| Kenya |
| Kiribati |
| Kosovo |
| Kuwait |
| Kyrgyzstan |
| Laos |
| Latvia |
| Lebanon |
| Lesotho |
| Liberia |
| Libya |
| Liechtenstein |
| Lithuania |
| Luxembourg |
| Macau S.A.R. |
| Madagascar |
| Malawi |
| Malaysia |
| Maldives |
| Mali |
| Malta |
| Man (Isle of) |
| Marshall Islands |
| Martinique |
| Mauritania |
| Mauritius |
| Mayotte |
| Mexico |
| Micronesia |
| Moldova |
| Monaco |
| Mongolia |
| Montenegro |
| Montserrat |
| Morocco |
| Mozambique |
| Myanmar |
| Namibia |
| Nauru |
| Nepal |
| Netherlands |
| New Caledonia |
| New Zealand |
| Nicaragua |
| Niger |
| Nigeria |
| Niue |
| Norfolk Island |
| North Korea |
| North Macedonia |
| Northern Mariana Islands |
| Norway |
| Oman |
| Pakistan |
| Palau |
| Palestinian Territory Occupied |
| Panama |
| Papua new Guinea |
| Paraguay |
| Peru |
| Philippines |
| Pitcairn Island |
| Poland |
| Portugal |
| Puerto Rico |
| Qatar |
| Reunion |
| Romania |
| Russia |
| Rwanda |
| Saint Helena |
| Saint Kitts And Nevis |
| Saint Lucia |
| Saint Pierre and Miquelon |
| Saint Vincent And The Grenadines |
| Saint-Barthelemy |
| Saint-Martin (French part) |
| Samoa |
| San Marino |
| Sao Tome and Principe |
| Saudi Arabia |
| Senegal |
| Serbia |
| Seychelles |
| Sierra Leone |
| Singapore |
| Sint Maarten (Dutch part) |
| Slovakia |
| Slovenia |
| Solomon Islands |
| Somalia |
| South Africa |
| South Georgia |
| South Korea |
| South Sudan |
| Spain |
| Sri Lanka |
| Sudan |
| Suriname |
| Svalbard And Jan Mayen Islands |
| Swaziland |
| Sweden |
| Switzerland |
| Syria |
| Taiwan |
| Tajikistan |
| Tanzania |
| Thailand |
| The Bahamas |
| Togo |
| Tokelau |
| Tonga |
| Trinidad And Tobago |
| Tunisia |
| Türkiye |
| Turkmenistan |
| Turks And Caicos Islands |
| Tuvalu |
| Uganda |
| Ukraine |
| United Arab Emirates |
| United Kingdom |
| United States |
| United States Minor Outlying Islands |
| Uruguay |
| Uzbekistan |
| Vanuatu |
| Vatican City State (Holy See) |
| Venezuela |
| Vietnam |
| Virgin Islands (British) |
| Virgin Islands (US) |
| Wallis And Futuna Islands |
| Western Sahara |
| Yemen |
| Zambia |
| Zimbabwe |
### セクション名
YAMLResume は以下のセクションをサポートし、それぞれにセクション名があります。
| 英語 |
| ------------ |
| Awards |
| Basics |
| Certificates |
| Education |
| Interests |
| Languages |
| Location |
| Profiles |
| Projects |
| Publications |
| References |
| Skills |
| Volunteer |
| Work |
### スキルレベル
YAMLResume はスキルセクションで以下のスキルレベルオプションを提示します。
| 英語 |
| ------------ |
| Novice |
| Beginner |
| Intermediate |
| Advanced |
| Expert |
| Master |
### 用語
YAMLResume は履歴書テンプレートでいくつかの固定用語を使用しています。
| 用語 | 説明 |
| -------- | -------------------------------- |
| Courses | 教育セクションのコースに使用 |
| Keywords | 仕事、プロジェクトセクションでキーワードリストを提示する際に使用 |
| Score | 教育セクションの学校成績/スコアに使用 |
# フランス語
URL: (/ja/docs/locale/french)
フランス語は、インド・ヨーロッパ語族の[ロマンス諸語](https://ja.wikipedia.org/wiki/ロマンス諸語)の一つです。英語と同じラテン文字を使用しますが、タイポグラフィ、句読点、文法において独自の特徴があり、YAMLResume では特別な配慮が必要です。
## 言語学
### 文字セット
フランス語は、基本の[ラテン文字](https://ja.wikipedia.org/wiki/ラテン文字)26 文字に加え、母音につく 4 つのダイアクリティカルマーク(アクサン・シルコンフレックス、トレマ、アクサン・グラーヴ、アクサン・テギュ)と、「ç」につくセディーユを使用します。また、「œ」と「æ」の 2 つの合字もあります。
| 特徴 | 英語の文字セット | フランス語の文字セット |
| ---------------- | ------------- | ---------------------------------------------------------------------------------------------------------------------- |
| **アルファベット** | 26 文字 (`a-z`) | 26 文字に加え、ダイアクリティカルマーク付きの文字と合字 |
| **ダイアクリティカルマーク** | なし | アクサン・テギュ (`é`)、アクサン・グラーヴ (`à`, `è`, `ù`)、アクサン・シルコンフレックス (`â`, `ê`, `î`, `ô`, `û`)、トレマ (`ë`, `ï`, `ü`, `ÿ`)、セディーユ (`ç`) |
| **特殊文字** | 基本的なラテン文字のみ | 合字 `œ` (例: "cœur") と `æ` (例: "ex æquo") を含む |
### 慣用句
#### 日付
フランス語では、曜日と月は大文字で始めません(英語とは異なります)。例えば、英語の "Sep 2021" はフランス語では "sept. 2021" と翻訳されます。
YAMLResume では月のみを使用するため、以下の変換表を用います:
| English | French |
| --------------- | ----------------- |
| January (Jan) | janvier (janv.) |
| February (Feb) | février (févr.) |
| March (Mar) | mars (mars) |
| April (Apr) | avril (avr.) |
| May (May) | mai (mai) |
| June (Jun) | juin (juin) |
| July (Jul) | juillet (juil.) |
| August (Aug) | août (août) |
| September (Sep) | septembre (sept.) |
| October (Oct) | octobre (oct.) |
| November (Nov) | novembre (nov.) |
| December (Dec) | décembre (déc.) |
#### 大文字の使用
フランス語では通常、タイトルや見出しは文の先頭のみ大文字にしますが、YAMLResume では履歴書の標準に合わせて一貫性を持たせるため、用語を大文字で提供しています。
顕著な違いの一つとして、形容詞として使用される言語や国籍は標準的なフランス語では大文字にしません(例:"je parle français")が、YAMLResume のリスト内で名詞(言語そのもの)として参照する場合は、一貫性のために大文字にします。
### 組版
#### 句読点
フランス語には、句読点の周囲のスペースに関して独自のルールがあります:
* **高い句読点**: コロン (`:`)、セミコロン (`;`)、感嘆符 (`!`)、疑問符 (`?`) の前には、改行なしスペース(non-breaking space)が必要です。
* **引用符**: フランス語では、ギメ (`«` と `»`) を使用し、その内側に改行なしスペースを入れます(例: `« Bonjour »`)。
* **小数点**: フランス語では、小数点としてコンマを使用します(例: 3,14)。
* **桁区切り**: フランス語では、桁区切りとして改行なしスペースを使用します(例: 1 000)。
YAMLResume は、フランス語レイアウト向けにコロンのスペース処理を特別に行います(例: ` :`)。
## 翻訳
YAMLResume では、フランス語の履歴書で使用される様々なオプションや用語について、以下の翻訳を採用しています。
### 学位
| English | French |
| ------------- | ------------------------------------ |
| Middle School | Collège |
| High School | Lycée |
| Diploma | Diplôme |
| Associate | Diplôme universitaire de technologie |
| Bachelor | Licence |
| Master | Master |
| Doctor | Doctorat |
### 言語
| English | French |
| ----------- | ----------- |
| Afrikaans | Afrikaans |
| Albanian | Albanais |
| Amharic | Amharique |
| Arabic | Arabe |
| Azerbaijani | Azéri |
| Belarusian | Biélorusse |
| Bengali | Bengali |
| Bhojpuri | Bhojpuri |
| Bulgarian | Bulgare |
| Burmese | Birman |
| Cantonese | Cantonais |
| Catalan | Catalan |
| Chinese | Chinois |
| Croatian | Croate |
| Czech | Tchèque |
| Danish | Danois |
| Dutch | Néerlandais |
| English | Anglais |
| Estonian | Estonien |
| Farsi | Persan |
| Filipino | Filipino |
| Finnish | Finnois |
| French | Français |
| German | Allemand |
| Greek | Grec |
| Gujarati | Gujarati |
| Hausa | Haoussa |
| Hebrew | Hébreu |
| Hindi | Hindi |
| Hungarian | Hongrois |
| Icelandic | Islandais |
| Igbo | Igbo |
| Indonesian | Indonésien |
| Irish | Irlandais |
| Italian | Italien |
| Japanese | Japonais |
| Javanese | Javanais |
| Kazakh | Kazakh |
| Khmer | Khmer |
| Korean | Coréen |
| Lahnda | Lahnda |
| Latvian | Letton |
| Lithuanian | Lituanien |
| Malay | Malais |
| Mandarin | Mandarin |
| Marathi | Marathi |
| Nepali | Népalais |
| Norwegian | Norvégien |
| Oromo | Oromo |
| Pashto | Pachto |
| Polish | Polonais |
| Portuguese | Portugisisk |
| Romanian | Roumain |
| Russian | Russe |
| Serbian | Serbe |
| Shona | Shona |
| Sinhala | Cingalais |
| Slovak | Slovaque |
| Slovene | Slovène |
| Somali | Somali |
| Spanish | Espagnol |
| Sundanese | Soundanais |
| Swahili | Swahili |
| Swedish | Suédois |
| Tagalog | Tagalog |
| Tamil | Tamoul |
| Telugu | Telugu |
| Thai | Thaï |
| Turkish | Turc |
| Ukrainian | Ukrainien |
| Urdu | Ourdou |
| Uzbek | Ouzbek |
| Vietnamese | Vietnamien |
| Yoruba | Yoruba |
| Zulu | Zoulou |
### 言語能力
| English | French |
| -------------------------------- | ---------------------------- |
| Elementary Proficiency | Niveau élémentaire |
| Limited Working Proficiency | Niveau de travail limité |
| Minimum Professional Proficiency | Niveau professionnel minimum |
| Full Professional Proficiency | Niveau professionnel complet |
| Native or Bilingual Proficiency | Niveau natif ou bilingue |
### 場所(国と地域)
| English | French |
| ------------------------------------ | ------------------------------------------ |
| Afghanistan | Afghanistan |
| Aland Islands | Îles Åland |
| Albania | Albanie |
| Algeria | Algérie |
| American Samoa | Samoa américaines |
| Andorra | Andorre |
| Angola | Angola |
| Anguilla | Anguilla |
| Antarctica | Antarctique |
| Antigua And Barbuda | Antigua-et-Barbuda |
| Argentina | Argentine |
| Armenia | Arménie |
| Aruba | Aruba |
| Australia | Australie |
| Austria | Autriche |
| Azerbaijan | Azerbaïdjan |
| Bahrain | Bahreïn |
| Bangladesh | Bangladesh |
| Barbados | Barbade |
| Belarus | Biélorussie |
| Belgium | Belgique |
| Belize | Belize |
| Benin | Bénin |
| Bermuda | Bermudes |
| Bhutan | Bhoutan |
| Bolivia | Bolivie |
| Bonaire, Sint Eustatius and Saba | Bonaire, Saint-Eustache et Saba |
| Bosnia and Herzegovina | Bosnie-Herzégovine |
| Botswana | Botswana |
| Bouvet Island | Île Bouvet |
| Brazil | Brésil |
| British Indian Ocean Territory | Territoire britannique de l'océan Indien |
| Brunei | Brunéi |
| Bulgaria | Bulgarie |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Cambodge |
| Cameroon | Cameroun |
| Canada | Canada |
| Cape Verde | Cap-Vert |
| Cayman Islands | Îles Caïmans |
| Central African Republic | République centrafricaine |
| Chad | Tchad |
| Chile | Chili |
| China | Chine |
| Christmas Island | Île Christmas |
| Cocos (Keeling) Islands | Îles Cocos (Keeling) |
| Colombia | Colombie |
| Comoros | Comores |
| Congo | Congo |
| Cook Islands | Îles Cook |
| Costa Rica | Costa Rica |
| Cote D'Ivoire (Ivory Coast) | Côte d'Ivoire |
| Croatia | Croatie |
| Cuba | Cuba |
| Curaçao | Curaçao |
| Cyprus | Chypre |
| Czech Republic | République tchèque |
| Democratic Republic of the Congo | République démocratique du Congo |
| Denmark | Danemark |
| Djibouti | Djibouti |
| Dominica | Dominique |
| Dominican Republic | République dominicaine |
| East Timor | Timor oriental |
| Ecuador | Équateur |
| Egypt | Égypte |
| El Salvador | Salvador |
| Equatorial Guinea | Guinée équatoriale |
| Eritrea | Érythrée |
| Estonia | Estonie |
| Ethiopia | Éthiopie |
| Falkland Islands | Îles Malouines |
| Faroe Islands | Îles Féroé |
| Fiji Islands | Fidji |
| Finland | Finlande |
| France | France |
| French Guiana | Guyane française |
| French Polynesia | Polynésie française |
| French Southern Territories | Terres australes françaises |
| Gabon | Gabon |
| Gambia The | Gambie |
| Georgia | Géorgie |
| Germany | Allemagne |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Grèce |
| Greenland | Groenland |
| Grenada | Grenade |
| Guadeloupe | Guadeloupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernesey et Alderney |
| Guinea | Guinée |
| Guinea-Bissau | Guinée-Bissau |
| Guyana | Guyana |
| Haiti | Haïti |
| Heard Island and McDonald Islands | Îles Heard-et-MacDonald |
| Honduras | Honduras |
| Hong Kong S.A.R. | Hong Kong S.A.R. |
| Hungary | Hongrie |
| Iceland | Islande |
| India | Inde |
| Indonesia | Indonésie |
| Iran | Iran |
| Iraq | Irak |
| Ireland | Irlande |
| Israel | Israël |
| Italy | Italie |
| Jamaica | Jamaïque |
| Japan | Japon |
| Jersey | Jersey |
| Jordan | Jordanie |
| Kazakhstan | Kazakhstan |
| Kenya | Kenya |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Koweït |
| Kyrgyzstan | Kirghizistan |
| Laos | Laos |
| Latvia | Lettonie |
| Lebanon | Liban |
| Lesotho | Lesotho |
| Liberia | Libéria |
| Libya | Libye |
| Liechtenstein | Liechtenstein |
| Lithuania | Lituanie |
| Luxembourg | Luxembourg |
| Macau S.A.R. | Macao S.A.R. |
| Madagascar | Madagascar |
| Malawi | Malawi |
| Malaysia | Malaisie |
| Maldives | Maldives |
| Mali | Mali |
| Malta | Malte |
| Man (Isle of) | Île de Man |
| Marshall Islands | Îles Marshall |
| Martinique | Martinique |
| Mauritania | Mauritanie |
| Mauritius | Maurice |
| Mayotte | Mayotte |
| Mexico | Mexique |
| Micronesia | Micronésie |
| Moldova | Moldavie |
| Monaco | Monaco |
| Mongolia | Mongolie |
| Montenegro | Monténégro |
| Montserrat | Montserrat |
| Morocco | Maroc |
| Mozambique | Mozambique |
| Myanmar | Myanmar |
| Namibia | Namibie |
| Nauru | Nauru |
| Nepal | Népal |
| Netherlands | Pays-Bas |
| New Caledonia | Nouvelle-Calédonie |
| New Zealand | Nouvelle-Zélande |
| Nicaragua | Nicaragua |
| Niger | Niger |
| Nigeria | Nigéria |
| Niue | Niue |
| Norfolk Island | Île Norfolk |
| North Korea | Corée du Nord |
| North Macedonia | Macédoine du Nord |
| Northern Mariana Islands | Îles Mariannes du Nord |
| Norway | Norvège |
| Oman | Oman |
| Pakistan | Pakistan |
| Palau | Palaos |
| Palestinian Territory Occupied | Palestine |
| Panama | Panama |
| Papua new Guinea | Papouasie-Nouvelle-Guinée |
| Paraguay | Paraguay |
| Peru | Pérou |
| Philippines | Philippines |
| Pitcairn Island | Îles Pitcairn |
| Poland | Pologne |
| Portugal | Portugal |
| Puerto Rico | Porto Rico |
| Qatar | Qatar |
| Reunion | La Réunion |
| Romania | Roumanie |
| Russia | Russie |
| Rwanda | Rwanda |
| Saint Helena | Sainte-Hélène |
| Saint Kitts And Nevis | Saint-Christophe-et-Niévès |
| Saint Lucia | Sainte-Lucie |
| Saint Pierre and Miquelon | Saint-Pierre-et-Miquelon |
| Saint Vincent And The Grenadines | Saint-Vincent-et-les-Grenadines |
| Saint-Barthelemy | Saint-Barthélemy |
| Saint-Martin (French part) | Saint-Martin |
| Samoa | Samoa |
| San Marino | Saint-Marin |
| Sao Tome and Principe | Sao Tomé-et-Principe |
| Saudi Arabia | Arabie saoudite |
| Senegal | Sénégal |
| Serbia | Serbie |
| Seychelles | Seychelles |
| Sierra Leone | Sierra Leone |
| Singapore | Singapour |
| Sint Maarten (Dutch part) | Saint-Martin |
| Slovakia | Slovaquie |
| Slovenia | Slovénie |
| Solomon Islands | Îles Salomon |
| Somalia | Somalie |
| South Africa | Afrique du Sud |
| South Georgia | Géorgie du Sud-et-les Îles Sandwich du Sud |
| South Korea | Corée du Sud |
| South Sudan | Soudan du Sud |
| Spain | Espagne |
| Sri Lanka | Sri Lanka |
| Sudan | Soudan |
| Suriname | Suriname |
| Svalbard And Jan Mayen Islands | Svalbard et Jan Mayen |
| Swaziland | Swaziland |
| Sweden | Suède |
| Switzerland | Suisse |
| Syria | Syrie |
| Taiwan | Taïwan |
| Tajikistan | Tadjikistan |
| Tanzania | Tanzanie |
| Thailand | Thaïlande |
| The Bahamas | Bahamas |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinité-et-Tobago |
| Tunisia | Tunisie |
| Türkiye | Turquie |
| Turkmenistan | Turkménistan |
| Turks And Caicos Islands | Îles Turques-et-Caïques |
| Tuvalu | Tuvalu |
| Uganda | Ouganda |
| Ukraine | Ukraine |
| United Arab Emirates | Émirats arabes unis |
| United Kingdom | Royaume-Uni |
| United States | États-Unis |
| United States Minor Outlying Islands | Îles mineures éloignées des États-Unis |
| Uruguay | Uruguay |
| Uzbekistan | Ouzbékistan |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Vatican |
| Venezuela | Venezuela |
| Vietnam | Viêt Nam |
| Virgin Islands (British) | Îles Vierges britanniques |
| Virgin Islands (US) | Îles Vierges américaines |
| Wallis And Futuna Islands | Wallis-et-Futuna |
| Western Sahara | Sahara occidental |
| Yemen | Yémen |
| Zambia | Zambie |
| Zimbabwe | Zimbabwe |
### セクション名
| English | French |
| ------------ | -------------------------- |
| Awards | Récompenses |
| Basics | Informations de base |
| Certificates | Certificats |
| Education | Formation |
| Interests | Centres d'intérêt |
| Languages | Langues |
| Projects | Projets |
| Publications | Publications |
| References | Références |
| Skills | Compétences |
| Volunteer | Bénévolat |
| Work | Expérience professionnelle |
### スキルレベル
| English | French |
| ------------ | ------------- |
| Novice | Novice |
| Beginner | Débutant |
| Intermediate | Intermédiaire |
| Advanced | Avancé |
| Expert | Expert |
| Master | Maître |
### オプションと用語
| English | French |
| -------- | --------- |
| Courses | Cours |
| Keywords | Mots-clés |
| Score | Score |
# ドイツ語
URL: (/ja/docs/locale/german)
ドイツ語(Deutsch)は、主に中央ヨーロッパで話されている[西ゲルマン語](https://ja.wikipedia.org/wiki/%E8%A5%BF%E3%82%B2%E3%83%AB%E3%83%9E%E3%83%B3%E8%AA%9E%E7%BE%A4)です。ドイツ、オーストリア、スイス、イタリアの南チロル、ベルギーのドイツ語共同体、リヒテンシュタインで最も広く話されており、公用語または共同公用語となっています。
## 言語学
### 文字セット
| 機能 | 英語の文字セット | ドイツ語の文字セット |
| ---------------- | ------------ | ------------------------- |
| **アルファベット** | 26文字(`a-z`) | 26文字に加えて、ウムラウト付き文字とエスツェット |
| **ダイアクリティカルマーク** | なし | ウムラウト(`ä`, `ö`, `ü`) |
| **特殊文字** | 基本的なラテン文字に限定 | エスツェット `ß` を含む |
## 慣用句
### 日付
ドイツ語の日付は、日、月、年の形式です。月の名前は大文字で始まります。
| 英語 | ドイツ語 |
| --------- | --------- |
| January | Januar |
| February | Februar |
| March | März |
| April | April |
| May | Mai |
| June | Juni |
| July | Juli |
| August | August |
| September | September |
| October | Oktober |
| November | November |
| December | Dezember |
### 場所
ドイツの住所では、通常、番地が通り名の後に続き、郵便番号が都市名の前に来ます。
ドイツ語での一般的な順序は以下の通りです:
1. **通りと番地**:通り名が最初に来て、その後に番地が続きます(例:"Musterstraße 123")。
2. **郵便番号と都市**:5桁の郵便番号(*Postleitzahl* または PLZ)は、都市名の*前*に来ます(例:"10115 Berlin")。
3. **州**:他のいくつかの国とは異なり、連邦州(*Bundesland*)は標準的な住所では通常省略されます。
4. **国**:国名は最後の行に配置されます。
### 大文字の使用
ドイツ語は主要な言語の中で独特であり、固有名詞か普通名詞かに関わらず、**すべての名詞**の最初の文字を大文字にします(例:*Haus*, *Apfel*, *Freiheit*)。
形容詞や動詞などの他の品詞は、名詞化(名詞として使用)されるか、文頭に現れない限り、通常は小文字です。
さらに、フォーマルな「あなた」(*Sie*)とその所有格(*Ihr*)は、通信や公的な文章では常に大文字で書かれます。
### 組版
#### 句読点
ドイツ語の句読点のルールは、いくつかの分野で英語とは大きく異なります:
* **引用符**:
* 標準的なドイツ語スタイル("Gänsefüßchen")は、低い開始記号と高い終了記号を使用します:`„` (U+201E) と `“` (U+201C)。例:„Zitat“。
* 別のスタイル(しばしば書籍で使用)では、**内側**を向いたギルメを使用します:`»` (U+00BB) と `«` (U+00AB)。例:»Zitat«。(フランス語の `« Zitat »` とは対照的です)。
* **アポストロフィ**:
* 通常、所有格の 's' には使用**されません**(例:"Deutschland**s** Hauptstadt" であり、"Deutschland's" ではありません)。
* 省略された文字を示すために使用されます(例:"Wie geht’s?")。
* **コンマ**:
* コンマは、従属節(*Nebensätze*)を主節から分離するために必須です。
* **数字**:
* **小数点**:ドイツ語ではコンマを使用します(例:`12,34`)。
* **桁区切り**:ドイツ語ではドットまたはスペースを使用します(例:`1.234` または `1 234`)。
## 翻訳
YAMLResumeは、ドイツ語の履歴書で使用されるさまざまなオプションや用語に対して、以下の翻訳を採用しています。
### 学位
| 英語 | ドイツ語 |
| ------------- | ---------------------- |
| Middle School | Mittlere Reife |
| High School | Abitur |
| Diploma | Diplom |
| Associate | Fachhochschulabschluss |
| Bachelor | Bachelor |
| Master | Master |
| Doctor | Doktor |
| Afrikaans | Afrikaans |
### 言語
| 英語 | ドイツ語 |
| ----------- | ----------------- |
| Afrikaans | Afrikaans |
| Albanian | Albanisch |
| Amharic | Amharisch |
| Arabic | Arabisch |
| Azerbaijani | Aserbaidschanisch |
| Belarusian | Belarussisch |
| Bengali | Bengalisch |
| Bhojpuri | Bhojpuri |
| Bulgarian | Bulgarisch |
| Burmese | Birmanisch |
| Cantonese | Kantonesisch |
| Catalan | Katalanisch |
| Chinese | Chinesisch |
| Croatian | Kroatisch |
| Czech | Tschechisch |
| Danish | Dänisch |
| Dutch | Niederländisch |
| 英語 | Englisch |
| Estonian | Estnisch |
| Farsi | Farsi |
| Filipino | Philippinisch |
| Finnish | Finnisch |
| French | Französisch |
| ドイツ語 | Deutsch |
| Greek | Griechisch |
| Gujarati | Gujarati |
| Hausa | Hausa |
| Hebrew | Hebräisch |
| Hindi | Hindi |
| Hungarian | Ungarisch |
| Icelandic | Isländisch |
| Igbo | Igbo |
| Indonesian | Indonesisch |
| Irish | Irisch |
| Italian | Italienisch |
| Japanese | Japanisch |
| Javanese | Javanisch |
| Kazakh | Kasachisch |
| Khmer | Khmer |
| Korean | Koreanisch |
| Lahnda | Lahnda |
| Latvian | Lettisch |
| Lithuanian | Litauisch |
| Malay | Malaiisch |
| Mandarin | Mandarin |
| Marathi | Marathi |
| Nepali | Nepalesisch |
| Norwegian | Norwegisch |
| Oromo | Oromo |
| Pashto | Paschtu |
| Polish | Polnisch |
| Portuguese | Portugiesisch |
| Romanian | Rumänisch |
| Russian | Russisch |
| Serbian | Serbisch |
| Shona | Shona |
| Sinhala | Singhalesisch |
| Slovak | Slowakisch |
| Slovene | Slowenisch |
| Somali | Somalisch |
| Spanish | Spanisch |
| Sundanese | Sundanesisch |
| Swahili | Suaheli |
| Swedish | Schwedisch |
| Tagalog | Tagalog |
| Tamil | Tamil |
| Telugu | Telugu |
| Thai | Thailändisch |
| Turkish | Türkisch |
| Ukrainian | Ukrainisch |
| Urdu | Urdu |
| Uzbek | Usbekisch |
| Vietnamese | Vietnamesisch |
| Yoruba | Yoruba |
| Zulu | Zulu |
### 言語能力
| 英語 | ドイツ語 |
| -------------------------------- | ------------------------------- |
| Elementary Proficiency | Grundkenntnisse |
| Limited Working Proficiency | Gute Kenntnisse |
| Minimum Professional Proficiency | Berufliche Grundkenntnisse |
| Full Professional Proficiency | Verhandlungssichere Kenntnisse |
| Native or Bilingual Proficiency | Muttersprache oder zweisprachig |
### 場所(国と地域)
| 英語 | ドイツ語 |
| --------------------------------- | ----------------------------------------- |
| Afghanistan | Afghanistan |
| Aland Islands | Åland |
| Albania | Albanien |
| Algeria | Algerien |
| American Samoa | Amerikanisch-Samoa |
| Andorra | Andorra |
| Angola | Angola |
| Anguilla | Anguilla |
| Antarctica | Antarktis |
| Antigua And Barbuda | Antigua und Barbuda |
| Argentina | Argentinien |
| Armenia | Armenien |
| Aruba | Aruba |
| Australia | Australien |
| Austria | Österreich |
| Azerbaijan | Aserbaidschan |
| Bahrain | Bahrain |
| Bangladesh | Bangladesch |
| Barbados | Barbados |
| Belarus | Belarus |
| Belgium | Belgien |
| Belize | Belize |
| Benin | Benin |
| Bermuda | Bermuda |
| Bhutan | Bhutan |
| Bolivia | Bolivien |
| Bonaire, Sint Eustatius and Saba | Bonaire, Sint Eustatius und Saba |
| Bosnia and Herzegovina | Bosnien und Herzegowina |
| Botswana | Botswana |
| Bouvet Island | Bouvetinsel |
| Brazil | Brasilien |
| British Indian Ocean Territory | Britisches Territorium im Indischen Ozean |
| Brunei | Brunei |
| Bulgaria | Bulgarien |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Kambodscha |
| Cameroon | Kamerun |
| Canada | Kanada |
| Cape Verde | Kap Verde |
| Cayman Islands | Kaimaninseln |
| Central African Republic | Zentralafrikanische Republik |
| Chad | Tschad |
| Chile | Chile |
| China | China |
| Christmas Island | Weihnachtsinsel |
| Cocos (Keeling) Islands | Kokosinseln |
| Colombia | Kolumbien |
| Comoros | Komoren |
| Congo | Kongo |
| Cook Islands | Cookinseln |
| Costa Rica | Costa Rica |
| Croatia | Kroatien |
| Cuba | Kuba |
| Curaçao | Curaçao |
| Cyprus | Zypern |
| Czech Republic | Tschechien |
| Democratic Republic of the Congo | Demokratische Republik Kongo |
| Denmark | Dänemark |
| Djibouti | Dschibuti |
| Dominica | Dominica |
| Dominican Republic | Dominikanische Republik |
| East Timor | Osttimor |
| Ecuador | Ecuador |
| Egypt | Ägypten |
| El Salvador | El Salvador |
| Equatorial Guinea | Äquatorialguinea |
| Eritrea | Eritrea |
| Estonia | Estland |
| Ethiopia | Äthiopien |
| Falkland Islands | Falklandinseln |
| Faroe Islands | Färöer |
| Fiji Islands | Fidschi |
| Finland | Finnland |
| France | Frankreich |
| French Guiana | Französisch-Guayana |
| French Polynesia | Französisch-Polynesien |
| French Southern Territories | Französische Süd- und Antarktisgebiete |
| Gabon | Gabun |
| Gambia The | Gambia |
| Georgia | Georgien |
| ドイツ語y | Deutschland |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Griechenland |
| Greenland | Grönland |
| Grenada | Grenada |
| Guadeloupe | Guadeloupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernsey und Alderney |
| Guinea | Guinea |
| Guinea-Bissau | Guinea-Bissau |
| Guyana | Guyana |
| Haiti | Haiti |
| Heard Island and McDonald Islands | Heard und McDonaldinseln |
| Honduras | Honduras |
| Hong Kong | Hongkong |
| Hungary | Ungarn |
| Iceland | Island |
| India | Indien |
| Indonesia | Indonesien |
| Iran | Iran |
| Iraq | Irak |
| Ireland | Irland |
| Israel | Israel |
| Italy | Italien |
| Jamaica | Jamaika |
| Japan | Japan |
| Jersey | Jersey |
| Jordan | Jordanien |
| Kazakhstan | Kasachstan |
| Kenya | Kenia |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Kuwait |
| Kyrgyzstan | Kirgisistan |
| Laos | Laos |
| Latvia | Lettland |
| Lebanon | Libanon |
| Lesotho | Lesotho |
| Liberia | Liberia |
| Libya | Libyen |
| Liechtenstein | Liechtenstein |
| Lithuania | Litauen |
| Luxembourg | Luxemburg |
| Macau | Macau |
| Madagascar | Madagaskar |
| Malawi | Malawi |
| Malaysia | Malaysia |
| Maldives | Malediven |
| Mali | Mali |
| Malta | Malta |
| Man (Isle of) | Isle of Man |
| Marshall Islands | Marshallinseln |
| Martinique | Martinique |
| Mauritania | Mauretanien |
| Mauritius | Mauritius |
| Mayotte | Mayotte |
| Mexico | Mexiko |
| Micronesia | Mikronesien |
| Moldova | Moldawien |
| Monaco | Monaco |
| Mongolia | Mongolei |
| Montenegro | Montenegro |
| Montserrat | Montserrat |
| Morocco | Marokko |
| Mozambique | Mosambik |
| Myanmar | Myanmar |
| Namibia | Namibia |
| Nauru | Nauru |
| Nepal | Nepal |
| Netherlands | Niederlande |
| New Caledonia | Neukaledonien |
| New Zealand | Neuseeland |
| Nicaragua | Nicaragua |
| Niger | Niger |
| Nigeria | Nigeria |
| Niue | Niue |
| Norfolk Island | Norfolkinsel |
| North Korea | Nordkorea |
| North Macedonia | Nordmazedonien |
| Northern Mariana Islands | Nördliche Marianen |
| Norway | Norwegen |
| Oman | Oman |
| Pakistan | Pakistan |
| Palau | Palau |
| Palestinian Territory Occupied | Palästinensische Gebiete |
| Panama | Panama |
| Papua new Guinea | Papua-Neuguinea |
| Paraguay | Paraguay |
| Peru | Peru |
| Philippines | Philippinen |
| Pitcairn Island | Pitcairninseln |
| Poland | Polen |
| Portugal | Portugal |
| Puerto Rico | Puerto Rico |
| Qatar | Katar |
| Reunion | Réunion |
| Romania | Rumänien |
| Russia | Russland |
| Rwanda | Ruanda |
| Saint Helena | St. Helena |
| Saint Kitts And Nevis | St. Kitts und Nevis |
| Saint Lucia | St. Lucia |
| Saint Pierre and Miquelon | Saint-Pierre und Miquelon |
| Saint Vincent And The Grenadines | St. Vincent und die Grenadinen |
| Saint-Barthelemy | Saint-Barthélemy |
| Saint-Martin (French part) | Saint-Martin (französischer Teil) |
| Samoa | Samoa |
| San Marino | San Marino |
| Sao Tome and Principe | São Tomé und Príncipe |
| Saudi Arabia | Saudi-Arabien |
| Senegal | Senegal |
| Serbia | Serbien |
| Seychelles | Seychellen |
| Sierra Leone | Sierra Leone |
| Singapore | Singapur |
| Sint Maarten (Dutch part) | Sint Maarten (niederländischer Teil) |
| Slovakia | Slowakei |
| Slovenia | Slowenien |
| Solomon Islands | Salomonen |
| Somalia | Somalia |
| South Africa | Südafrika |
| South Georgia | Südgeorgien |
| South Korea | Südkorea |
| South Sudan | Südsudan |
| Spain | Spanien |
| Sri Lanka | Sri Lanka |
| Sudan | Sudan |
| Suriname | Suriname |
| Svalbard And Jan Mayen Islands | Spitzbergen und Jan Mayen |
| Swaziland | Eswatini |
| Sweden | Schweden |
| Switzerland | Schweiz |
| Syria | Syrien |
| Taiwan | Taiwan |
| Tajikistan | Tadschikistan |
| Tanzania | Tansania |
| Thailand | Thailand |
| The Bahamas | Bahamas |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinidad und Tobago |
| Tunisia | Tunesien |
| Türkiye | Türkei |
| Turkmenistan | Turkmenistan |
| Turks And Caicos Islands | Turks- und Caicosinseln |
| Tuvalu | Tuvalu |
| Uganda | Uganda |
| Ukraine | Ukraine |
| United Arab Emirates | Vereinigte Arabische Emirate |
| United Kingdom | Vereinigtes Königreich |
| United States | Vereinigte Staaten |
| Uruguay | Uruguay |
| Uzbekistan | Usbekistan |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Vatikanstadt (Heiliger Stuhl) |
| Venezuela | Venezuela |
| Vietnam | Vietnam |
| Virgin Islands (British) | Britische Jungferninseln |
| Virgin Islands (US) | Amerikanische Jungferninseln |
| Wallis And Futuna Islands | Wallis und Futuna |
| Western Sahara | Westsahara |
| Yemen | Jemen |
| Zambia | Sambia |
| Zimbabwe | Simbabwe |
### セクション名
| 英語 | ドイツ語 |
| ------------ | ------------------------- |
| awards | Auszeichnungen |
| basics | Basisinformationen |
| certificates | Zertifikate |
| education | Ausbildung |
| interests | Interessen |
| languages | Sprachen |
| location | Ort |
| profiles | Profile |
| projects | Projekte |
| publications | Veröffentlichungen |
| references | Referenzen |
| skills | Fähigkeiten |
| volunteer | Ehrenamtliche Tätigkeiten |
| work | Berufserfahrung |
### スキルレベル
| 英語 | ドイツ語 |
| ------------ | --------------- |
| Novice | Einsteiger |
| Beginner | Anfänger |
| Intermediate | Fortgeschritten |
| Advanced | Erfahren |
| Expert | Experte |
| Master | Spezialist |
### 用語
| 用語 | ドイツ語 |
| -------- | --------------- |
| courses | Kurse |
| keywords | Schlüsselwörter |
| score | Punkte |
# 多言語
URL: (/ja/docs/locale)
各履歴書には特定の言語があります。良いお知らせは、YAMLResume はすぐに使える多言語サポートを提供するように設計されていることです。
技術的には、多言語サポートには 2 つのことが必要です:
* **[国際化](https://phrase.com/blog/posts/internationalization-vs-localization/#what-is-internationalization-i18n)**:
通常「i18n」と略されます(数字 18 は「i」と「n」の間の 18 文字を表します)。基本的に、製品が複数の言語をサポートできるようにする一連の実践で、i18n は主に製品を複数の言語に翻訳し、ユーザーの選択に基づいて動的に言語を切り替えることを含みます
* **[ローカライゼーション](https://phrase.com/blog/posts/internationalization-vs-localization/#what-is-localization-l10n)**:
通常「l10n」と略されます(数字 10 は「l」と「n」の間の文字を表します)。単純な翻訳を超えて、製品を対象言語の文化的特徴に適応させます。
実際には、i18n が常に最初に来て、l10n が続きます。
すべてのサポートされている言語について、設計と実装の観点から以下の側面に焦点を当てています:
* **[言語学](https://en.wikipedia.org/wiki/Linguistics)**:言語の理論的側面、言語の文字セット、文法と構文、歴史などを含みますが、これらに限定されません。
* **慣用句**:言語が通常従う一般的な慣例と慣用句。
* **[タイポグラフィ](https://en.wikipedia.org/wiki/Typesetting)**:斜体、テキスト数字、フォントスタイル、カーニング、リガチャなどの言語が通常従う最適なタイポグラフィ実践。
* **翻訳**:YAMLResume が生成する履歴書で使用される固定用語とオプションの単純な翻訳。
## サポートされている言語
YAMLResume は履歴書がどの言語で書かれているかを知る必要があります。そのために、履歴書でトップレベルの `locale` キーを設定する必要があります:
```yml lineNumbers
---
content:
# ...
locale: # [!code highlight]
language: en # [!code highlight]
layouts:
- engine: markdown
# ...
```
## サポートされている言語
`yamlresume languages list` を使用してすべてのサポートされている言語をリストできます。この記事を書いている時点で、YAMLResume は以下の言語をサポートしています:
```console
$ yamlresume languages list
| locale.language | Language Name | 1:03:48 PM
| --------------- | ------------------------------- |
| en | English |
| zh-hans | Simplified Chinese |
| zh-hant-hk | Traditional Chinese (Hong Kong) |
| zh-hant-tw | Traditional Chinese (Taiwan) |
| es | Spanish |
| fr | French |
| no | Norwegian |
| nl | Dutch |
| ja | Japanese |
| de | German |
```
各言語の詳細については、以下のページをご覧ください:
## 用語
この章全体で以下の用語を使用しています:
* **ラテン文字言語**:[書記体系](https://en.wikipedia.org/wiki/Writing_system) として[ラテン文字](https://en.wikipedia.org/wiki/Latin_script) を使用する言語。ほとんどの[ゲルマン言語](https://en.wikipedia.org/wiki/Germanic_languages)、[ロマンス言語](https://en.wikipedia.org/wiki/Romance_languages)、[インドネシア語](https://en.wikipedia.org/wiki/Indonesian_language) などの他の多くの言語は、主要な書記体系としてラテン文字を使用しています。
* **[CJK](https://en.wikipedia.org/wiki/CJK_characters)**:中国語、日本語、韓国語。
* **[文字セット](https://www.creatopy.com/blog/what-is-a-character-set/)**:特定のフォントまたは書体で利用可能な文字、記号、グリフ、句読点の完全なセット。
* **[グリフ](https://en.wikipedia.org/wiki/Glyph)**:タイポグラフィにおける文字の特定の形状、デザイン、または表現。
* \*\*\[ハイフネーション]\([https://en.wikipedia.org/wiki/](https://en.wikipedia.org/wiki/)
# 日本語
URL: (/ja/docs/locale/japanese)
日本語は、主に日本で話されている東アジアの言語です。日琉語族に属しています。
## 言語学
### 文字セット
日本語の表記体系は、漢字(中国から伝来した文字)、ひらがな、カタカナの3つの文字を組み合わせて使用します。特定の目的にはラテン文字(ローマ字)も使用されます。
### CJKサポート
YAMLResumeは日本語をCJK言語として自動的に検出し、CJKのグリフにより適した「Lining」スタイルの数字を「OldStyle」の代わりに使用するなど、特定のレイアウト調整を適用します。
## 慣用句
### 日付
日本の日付は、特定の助数詞を使用して、年、月、日の順序でフォーマットされます。
| 英語 | 日本語 |
| --------- | --- |
| January | 1月 |
| February | 2月 |
| March | 3月 |
| April | 4月 |
| May | 5月 |
| June | 6月 |
| July | 7月 |
| August | 8月 |
| September | 9月 |
| October | 10月 |
| November | 11月 |
| December | 12月 |
日付の範囲には、区切り文字として全角チルダ(U+FF5E)を使用します(例:2016年10月~2018年1月)。
### 住所
生成される履歴書では、日本の住所は通常、国、地域(都道府県)、市区町村、番地、そして最後に郵便番号の順序に従います。
注:標準的な日本の住所は通常、郵便番号(〒)で始まりますが、YAMLResumeでは現在、生成される構造変数との整合性を保つため、最後に付加しています。
## 組版
### 約物(句読点)
日本語では全角の約物を使用します。
* **読点**: ラテン語のカンマ `,` の代わりに `、` (読点、U+3001) が使用されます。
* **コロン**: ラテン語のコロン `:` の代わりに `:` (全角コロン、U+FF1A) が使用されます。
* **区切り文字**: `、` はリストの区切り文字としても使用されます。
## 翻訳
YAMLResumeは、日本の履歴書で使用されるさまざまなオプションや用語に対して、以下の翻訳を採用しています。
### 学位
| 英語 | 日本語 |
| ------------- | ----------- |
| Middle School | 中学校 |
| High School | 高等学校 |
| Diploma | 短期大学・高等専門学校 |
| Associate | 準学士 |
| Bachelor | 学士 |
| Master | 修士 |
| Doctor | 博士 |
### 言語
| 英語 | 日本語 |
| ----------- | --------- |
| Afrikaans | アフリカーンス語 |
| Albanian | アルバニア語 |
| Amharic | アムハラ語 |
| Arabic | アラビア語 |
| Azerbaijani | アゼルバイジャン語 |
| Belarusian | ベラルーシ語 |
| Bengali | ベンガル語 |
| Bhojpuri | ボージュプリー語 |
| Bulgarian | ブルガリア語 |
| Burmese | ビルマ語 |
| Cantonese | 広東語 |
| Catalan | カタロニア語 |
| Chinese | 中国語 |
| Croatian | クロアチア語 |
| Czech | チェコ語 |
| Danish | デンマーク語 |
| Dutch | オランダ語 |
| English | 英語 |
| Estonian | エストニア語 |
| Farsi | ペルシャ語 |
| Filipino | フィリピン語 |
| Finnish | フィンランド語 |
| French | フランス語 |
| German | ドイツ語 |
| Greek | ギリシャ語 |
| Gujarati | グジャラート語 |
| Hausa | ハウサ語 |
| Hebrew | ヘブライ語 |
| Hindi | ヒンディー語 |
| Hungarian | ハンガリー語 |
| Icelandic | アイスランド語 |
| Igbo | イボ語 |
| Indonesian | インドネシア語 |
| Irish | アイルランド語 |
| Italian | イタリア語 |
| Japanese | 日本語 |
| Javanese | ジャワ語 |
| Kazakh | カザフ語 |
| Khmer | クメール語 |
| Korean | 韓国語 |
| Lahnda | ラーンダー語 |
| Latvian | ラトビア語 |
| Lithuanian | リトアニア語 |
| Malay | マレー語 |
| Mandarin | 標準中国語 |
| Marathi | マラーティー語 |
| Nepali | ネパール語 |
| Norwegian | ノルウェー語 |
| Oromo | オロモ語 |
| Pashto | パシュトー語 |
| Polish | ポーランド語 |
| Portuguese | ポルトガル語 |
| Romanian | ルーマニア語 |
| Russian | ロシア語 |
| Serbian | セルビア語 |
| Shona | ショナ語 |
| Sinhala | シンハラ語 |
| Slovak | スロバキア語 |
| Slovene | スロベニア語 |
| Somali | ソマリ語 |
| Spanish | スペイン語 |
| Sundanese | スンダ語 |
| Swahili | スワヒリ語 |
| Swedish | スウェーデン語 |
| Tagalog | タガログ語 |
| Tamil | タミル語 |
| Telugu | テルグ語 |
| Thai | タイ語 |
| Turkish | トルコ語 |
| Ukrainian | ウクライナ語 |
| Urdu | ウルドゥー語 |
| Uzbek | ウズベク語 |
| Vietnamese | ベトナム語 |
| Yoruba | ヨルバ語 |
| Zulu | ズールー語 |
### 語学力
| 英語 | 日本語 |
| -------------------------------- | ------------ |
| Elementary Proficiency | 初級レベル |
| Limited Working Proficiency | 限定的な実務レベル |
| Minimum Professional Proficiency | 実務レベル |
| Full Professional Proficiency | 完全な実務レベル |
| Native or Bilingual Proficiency | ネイティブ・母国語レベル |
### 場所(国と地域)
| 英語 | 日本語 |
| ------------------------------------ | --------------------- |
| Afghanistan | アフガニスタン |
| Aland Islands | オーランド諸島 |
| Albania | アルバニア |
| Algeria | アルジェリア |
| American Samoa | 米領サモア |
| Andorra | アンドラ |
| Angola | アンゴラ |
| Anguilla | アンギラ |
| Antarctica | 南極 |
| Antigua And Barbuda | アンティグア・バーブーダ |
| Argentina | アルゼンチン |
| Armenia | アルメニア |
| Aruba | アルバ |
| Australia | オーストラリア |
| Austria | オーストリア |
| Azerbaijan | アゼルバイジャン |
| Bahrain | バーレーン |
| Bangladesh | バングラデシュ |
| Barbados | バルバドス |
| Belarus | ベラルーシ |
| Belgium | ベルギー |
| Belize | ベリーズ |
| Benin | ベナン |
| Bermuda | バミューダ |
| Bhutan | ブータン |
| Bolivia | ボリビア |
| Bosnia and Herzegovina | ボスニア・ヘルツェゴビナ |
| Botswana | ボツワナ |
| Bouvet Island | ブーベ島 |
| Brazil | ブラジル |
| British Indian Ocean Territory | 英領インド洋地域 |
| Brunei | ブルネイ |
| Bulgaria | ブルガリア |
| Burkina Faso | ブルキナファソ |
| Burundi | ブルンジ |
| Cambodia | カンボジア |
| Cameroon | カメルーン |
| Canada | カナダ |
| Cape Verde | カーボベルデ |
| Cayman Islands | ケイマン諸島 |
| Central African Republic | 中央アフリカ共和国 |
| Chad | チャド |
| Chile | チリ |
| China | 中国 |
| Christmas Island | クリスマス島 |
| Cocos (Keeling) Islands | ココス諸島 |
| Colombia | コロンビア |
| Comoros | コモロ |
| Congo | コンゴ共和国 |
| Cook Islands | クック諸島 |
| Costa Rica | コスタリカ |
| Croatia | クロアチア |
| Cuba | キューバ |
| Curaçao | キュラソー |
| Cyprus | キプロス |
| Czech Republic | チェコ |
| Democratic Republic of the Congo | コンゴ民主共和国 |
| Denmark | デンマーク |
| Djibouti | ジブチ |
| Dominica | ドミニカ国 |
| Dominican Republic | ドミニカ共和国 |
| East Timor | 東ティモール |
| Ecuador | エクアドル |
| Egypt | エジプト |
| El Salvador | エルサルバドル |
| Equatorial Guinea | 赤道ギニア |
| Eritrea | エリトリア |
| Estonia | エストニア |
| Ethiopia | エチオピア |
| Falkland Islands | フォークランド諸島 |
| Faroe Islands | フェロー諸島 |
| Fiji Islands | フィジー |
| Finland | フィンランド |
| France | フランス |
| French Guiana | 仏領ギアナ |
| French Polynesia | 仏領ポリネシア |
| French Southern Territories | フランス領南方・南極地域 |
| Gabon | ガボン |
| Gambia The | ガンビア |
| Georgia | ジョージア |
| Germany | ドイツ |
| Ghana | ガーナ |
| Gibraltar | ジブラルタル |
| Greece | ギリシャ |
| Greenland | グリーンランド |
| Grenada | グレナダ |
| Guadeloupe | グアドループ |
| Guam | グアム |
| Guatemala | グアテマラ |
| Guernsey and Alderney | ガーンジー |
| Guinea | ギニア |
| Guinea-Bissau | ギニアビサウ |
| Guyana | ガイアナ |
| Haiti | ハイチ |
| Heard Island and McDonald Islands | ハード島とマクドナルド諸島 |
| Honduras | ホンジュラス |
| Hong Kong | 香港 |
| Hungary | ハンガリー |
| Iceland | アイスランド |
| India | インド |
| Indonesia | インドネシア |
| Iran | イラン |
| Iraq | イラク |
| Ireland | アイルランド |
| Israel | イスラエル |
| Italy | イタリア |
| Jamaica | ジャマイカ |
| Japan | 日本 |
| Jersey | ジャージー |
| Jordan | ヨルダン |
| Kazakhstan | カザフスタン |
| Kenya | ケニア |
| Kiribati | キリバス |
| Kosovo | コソボ |
| Kuwait | クウェート |
| Kyrgyzstan | キルギス |
| Laos | ラオス |
| Latvia | ラトビア |
| Lebanon | レバノン |
| Lesotho | レソト |
| Liberia | リベリア |
| Libya | リビア |
| Liechtenstein | リヒテンシュタイン |
| Lithuania | リトアニア |
| Luxembourg | ルクセンブルク |
| Macau | マカオ |
| Madagascar | マダガスカル |
| Malawi | マラウイ |
| Malaysia | マレーシア |
| Maldives | モルディブ |
| Mali | マリ |
| Malta | マルタ |
| Man (Isle of) | マン島 |
| Marshall Islands | マーシャル諸島 |
| Martinique | マルティニーク |
| Mauritania | モーリタニア |
| Mauritius | モーリシャス |
| Mayotte | マヨット |
| Mexico | メキシコ |
| Micronesia | ミクロネシア連邦 |
| Moldova | モルドバ |
| Monaco | モナコ |
| Mongolia | モンゴル |
| Montenegro | モンテネグロ |
| Montserrat | モントセラト |
| Morocco | モロッコ |
| Mozambique | モザンビーク |
| Myanmar | ミャンマー |
| Namibia | ナミビア |
| Nauru | ナウル |
| Nepal | ネパール |
| Netherlands | オランダ |
| New Caledonia | ニューカレドニア |
| New Zealand | ニュージーランド |
| Nicaragua | ニカラグア |
| Niger | ニジェール |
| Nigeria | ナイジェリア |
| Niue | ニウエ |
| Norfolk Island | ノーフォーク島 |
| North Korea | 北朝鮮 |
| North Macedonia | 北マケドニア |
| Northern Mariana Islands | 北マリアナ諸島 |
| Norway | ノルウェー |
| Oman | オマーン |
| Pakistan | パキスタン |
| Palau | パラオ |
| Palestinian Territory Occupied | パレスチナ |
| Panama | パナマ |
| Papua new Guinea | パプアニューギニア |
| Paraguay | パラグアイ |
| Peru | ペルー |
| Philippines | フィリピン |
| Pitcairn Island | ピトケアン諸島 |
| Poland | ポーランド |
| Portugal | ポルトガル |
| Puerto Rico | プエルトリコ |
| Qatar | カタール |
| Reunion | レユニオン |
| Romania | ルーマニア |
| Russia | ロシア |
| Rwanda | ルワンダ |
| Saint Helena | セントヘレナ |
| Saint Kitts And Nevis | セントクリストファー・ネイビス |
| Saint Lucia | セントルシア |
| Saint Pierre and Miquelon | サンピエール島・ミクロン島 |
| Saint Vincent And The Grenadines | セントビンセント・グレナディーン |
| Saint-Barthelemy | サン・バルテルミー |
| Saint-Martin (French part) | サン・マルタン |
| Samoa | サモア |
| San Marino | サンマリノ |
| Sao Tome and Principe | サントメ・プリンシペ |
| Saudi Arabia | サウジアラビア |
| Senegal | セネガル |
| Serbia | セルビア |
| Seychelles | セーシェル |
| Sierra Leone | シエラレオネ |
| Singapore | シンガポール |
| Sint Maarten (Dutch part) | シント・マールテン |
| Slovakia | スロバキア |
| Slovenia | スロベニア |
| Solomon Islands | ソロモン諸島 |
| Somalia | ソマリア |
| South Africa | 南アフリカ |
| South Georgia | サウスジョージア・サウスサンドウィッチ諸島 |
| South Korea | 韓国 |
| South Sudan | 南スーダン |
| Spain | スペイン |
| Sri Lanka | スリランカ |
| Sudan | スーダン |
| Suriname | スリナム |
| Svalbard And Jan Mayen Islands | スヴァールバル諸島およびヤンマイエン島 |
| Swaziland | エスワティニ |
| Sweden | スウェーデン |
| Switzerland | スイス |
| Syria | シリア |
| Taiwan | 台湾 |
| Tajikistan | タジキスタン |
| Tanzania | タンザニア |
| Thailand | タイ |
| The Bahamas | バハマ |
| Togo | トーゴ |
| Tokelau | トケラウ |
| Tonga | トンガ |
| Trinidad And Tobago | トリニダード・トバゴ |
| Tunisia | チュニジア |
| Turkey | トルコ |
| Turkmenistan | トルクメニスタン |
| Turks And Caicos Islands | タークス・カイコス諸島 |
| Tuvalu | ツバル |
| Uganda | ウガンダ |
| Ukraine | ウクライナ |
| United Arab Emirates | アラブ首長国連邦 |
| United Kingdom | イギリス |
| United States Minor Outlying Islands | 合衆国領有小離島 |
| United States | アメリカ合衆国 |
| Uruguay | ウルグアイ |
| Uzbekistan | ウズベキスタン |
| Vanuatu | バヌアツ |
| Vatican City State (Holy See) | バチカン市国 |
| Venezuela | ベネズエラ |
| Vietnam | ベトナム |
| Virgin Islands (British) | 英領ヴァージン諸島 |
| Virgin Islands (US) | 米領ヴァージン諸島 |
| Wallis And Futuna Islands | ウォリス・フツナ |
| Western Sahara | 西サハラ |
| Yemen | イエメン |
| Zambia | ザンビア |
| Zimbabwe | ジンバブエ |
### セクション名
| 英語 | 日本語 |
| ------------ | -------- |
| awards | 受賞・表彰 |
| basics | 基本情報 |
| certificates | 資格・免状 |
| education | 学歴 |
| interests | 興味・関心 |
| languages | 言語 |
| location | 住所 |
| profiles | プロフィール |
| projects | プロジェクト |
| publications | 出版・著作 |
| references | 推薦人 |
| skills | スキル |
| volunteer | ボランティア活動 |
| work | 職歴 |
### スキルレベル
| 英語 | 日本語 |
| ------------ | ------ |
| Novice | 入門 |
| Beginner | 初級 |
| Intermediate | 中級 |
| Advanced | 上級 |
| Expert | エキスパート |
| Master | マスター |
### 用語
| 用語 | 日本語 |
| -------- | ----- |
| courses | コース |
| keywords | キーワード |
| score | 成績 |
# ノルウェー語
URL: (/ja/docs/locale/norwegian)
英語とノルウェー語は両方とも[ゲルマン語族](https://en.wikipedia.org/wiki/Germanic_languages)で、ノルウェー語は北ゲルマン語派の一部です。両言語には共通の基盤がありますが、ノルウェー語には YAMLResume が特別に考慮する必要がある独特の特徴があります。
## 言語学
### 文字セット
英語とノルウェー語の文字セットは類似しています——両言語は主に[ラテン文字](https://en.wikipedia.org/wiki/Latin_alphabet)を使用しますが、ノルウェー語には追加の文字があります。以下に詳細な比較を示します:
| 特徴 | 英語文字セット | ノルウェー語文字セット |
| ----------- | ------------ | --------------------------------------------- |
| **アルファベット** | 26文字 (`a-z`) | 29文字 (`a-z` に `æ`, `ø`, `å` を追加) |
| **変音記号** | なし | 3つの追加母音 (`æ`, `ø`, `å`)、これらは異なる文字であり、変音記号ではない |
| **特殊文字** | 基本ラテン文字のみ | 3つの追加ノルウェー語母音を含み、これらは独立した文字として扱われる |
英語とノルウェー語の書字体系間の主な違い:
* **追加文字**:ノルウェー語アルファベットには3つの追加母音が含まれます:`æ`、`ø`、`å`で、これらは特定の発音を持つ異なる文字です。
* **文字順序**:ノルウェー語の文字順序では、これらの文字は最後に来ます:...x, y, z, æ, ø, å。
* **大文字小文字の変化**:ノルウェー語は大文字と小文字のバージョン(`Æ/æ`、`Ø/ø`、`Å/å`)を使用します。
## 慣用句
### 日付
曜日と月はノルウェー語では大文字になりません(英語とは異なります)。例えば、英語の「Sep 2021」はノルウェー語では「sept. 2021」と翻訳され、月は小文字で、省略形の後にピリオドが付きます。
YAMLResume は月のみを使用するため、翻訳表:
| 英語 | ノルウェー語 |
| --------------- | ----------------- |
| January (Jan) | januar (jan.) |
| February (Feb) | februar (feb.) |
| March (Mar) | mars (mar.) |
| April (Apr) | april (apr.) |
| May (May) | mai (mai) |
| June (Jun) | juni (jun.) |
| July (Jul) | juli (jul.) |
| August (Aug) | august (aug.) |
| September (Sep) | september (sept.) |
| October (Oct) | oktober (okt.) |
| November (Nov) | november (nov.) |
| December (Dec) | desember (des.) |
### 大文字化
英語と比較して、ノルウェー語にはより保守的な大文字化規則があります。通常、固有名詞、文の最初の単語、代名詞「I」(ノルウェー語では「jeg」)のみが大文字になります。
YAMLResume は内部で、すべての履歴書テンプレートに使用する固定のオプションと用語セットを採用しています。例えば、YAMLResume 履歴書テンプレートの言語は[LinkedIn の言語習熟度オプション](https://www.linkedin.com/pulse/language-proficiency-linkedin-duaa-ali/)を採用しています:
* Elementary Proficiency
* Limited Working Proficiency
* Minimum Professional Proficiency
* Full Professional Proficiency
* Native or Bilingual Proficiency
これらはノルウェー語に以下のように翻訳されます:
* Grunnleggende nivå
* Begrenset arbeidskunnskap
* Minimum profesjonelt nivå
* Fullt profesjonelt nivå
* Morsmål eller tospråklig nivå
最初の単語のみが大文字で、ノルウェー語の大文字化規則に従います。
## タイポグラフィ
### 句読点
ノルウェー語は句読点に関して英語といくつかの顕著な違いがあります:
* **引用符**:ノルウェー語は通常、ガイユメ(`«»`)または直引用符(`""`)を使用し、句読点は通常引用符の外に置きます。
* **小数点区切り文字**:ノルウェー語は小数点区切り文字としてコンマを使用します(例:3,14)、英語のようにピリオド(3.14)は使用しません。
* **千の位区切り文字**:ノルウェー語は千の位区切り文字としてスペースまたはピリオドを使用します(例:1 000 または 1.000)、コンマは使用しません。
* **日付形式**:ノルウェー語の日付は DD.MM.YYYY または DD/MM/YYYY パターンに従い、アメリカの MM/DD/YYYY 形式とは異なります。
## 翻訳
YAMLResume はノルウェー語履歴書で使用される様々なオプションと用語に以下の翻訳を採用しています。
### 教育学位
| 英語 | ノルウェー語 |
| ------------- | ------------------ |
| Middle School | Ungdomsskole |
| High School | Videregående skole |
| Diploma | Fagbrev |
| Associate | Associate |
| Bachelor | Bachelor |
| Master | Master |
| Doctor | Doktor |
### 言語
| 英語 | ノルウェー語 |
| ----------- | -------------- |
| Afrikaans | Afrikaans |
| Albanian | Albansk |
| Amharic | Amharisk |
| Arabic | Arabisk |
| Azerbaijani | Aserbajdsjansk |
| Belarusian | Hviterussisk |
| Bengali | Bengali |
| Bhojpuri | Bhojpuri |
| Bulgarian | Bulgarsk |
| Burmese | Burmesisk |
| Cantonese | Kantonesisk |
| Catalan | Katalansk |
| Chinese | Kinesisk |
| Croatian | Kroatisk |
| Czech | Tsjekkisk |
| Danish | Dansk |
| Dutch | Nederlandsk |
| English | Engelsk |
| Estonian | Estisk |
| Farsi | Persisk |
| Filipino | Filippinsk |
| Finnish | Finsk |
| French | Fransk |
| German | Tysk |
| Greek | Gresk |
| Gujarati | Gujarati |
| Hausa | Hausa |
| Hebrew | Hebraisk |
| Hindi | Hindi |
| Hungarian | Ungarsk |
| Icelandic | Islandsk |
| Igbo | Igbo |
| Indonesian | Indonesisk |
| Irish | Irsk |
| Italian | Italiensk |
| Japanese | Japansk |
| Javanese | Javanesisk |
| Kazakh | Kasakhisk |
| Khmer | Khmer |
| Korean | Koreansk |
| Lahnda | Lahnda |
| Latvian | Latvisk |
| Lithuanian | Litauisk |
| Malay | Malaysisk |
| Mandarin | Mandarin |
| Marathi | Marathi |
| Nepali | Nepalsk |
| Norwegian | Norsk |
| Oromo | Oromo |
| Pashto | Pashto |
| Polish | Polsk |
| Portuguese | Portugisisk |
| Romanian | Rumensk |
| Russian | Russisk |
| Serbian | Serbisk |
| Shona | Shona |
| Sinhala | Singalesisk |
| Slovak | Slovakisk |
| Slovene | Slovensk |
| Somali | Somalisk |
| Spanish | Spansk |
| Sundanese | Sundanesisk |
| Swahili | Swahili |
| Swedish | Svensk |
| Tagalog | Tagalog |
| Tamil | Tamil |
| Telugu | Telugu |
| Thai | Thai |
| Turkish | Tyrkisk |
| Ukrainian | Ukrainsk |
| Urdu | Urdu |
| Uzbek | Usbekisk |
| Vietnamese | Vietnamesisk |
| Yoruba | Yoruba |
| Zulu | Zulu |
### 言語習熟度
| 英語 | ノルウェー語 |
| -------------------------------- | ----------------------------- |
| Elementary Proficiency | Grunnleggende nivå |
| Limited Working Proficiency | Begrenset arbeidskunnskap |
| Minimum Professional Proficiency | Minimum profesjonelt nivå |
| Full Professional Proficiency | Fullt profesjonelt nivå |
| Native or Bilingual Proficiency | Morsmål eller tospråklig nivå |
### 位置(国と地域)
| 英語 | ノルウェー語 |
| ------------------------------------ | ------------------------------------- |
| Afghanistan | Afghanistan |
| Aland Islands | Åland |
| Albania | Albania |
| Algeria | Algerie |
| American Samoa | Amerikansk Samoa |
| Andorra | Andorra |
| Angola | Angola |
| Anguilla | Anguilla |
| Antarctica | Antarktis |
| Antigua And Barbuda | Antigua og Barbuda |
| Argentina | Argentina |
| Armenia | Armenia |
| Aruba | Aruba |
| Australia | Australia |
| Austria | Østerrike |
| Azerbaijan | Aserbajdsjan |
| Bahrain | Bahrain |
| Bangladesh | Bangladesh |
| Barbados | Barbados |
| Belarus | Belarus |
| Belgium | Belgia |
| Belize | Belize |
| Benin | Benin |
| Bermuda | Bermuda |
| Bhutan | Bhutan |
| Bolivia | Bolivia |
| Bonaire, Sint Eustatius and Saba | Bonaire, Sint Eustatius og Saba |
| Bosnia and Herzegovina | Bosnia-Hercegovina |
| Botswana | Botswana |
| Bouvet Island | Bouvetøya |
| Brazil | Brasil |
| British Indian Ocean Territory | Det britiske territoriet i Indiahavet |
| Brunei | Brunei |
| Bulgaria | Bulgaria |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Kambodsja |
| Cameroon | Kamerun |
| Canada | Canada |
| Cape Verde | Kapp Verde |
| Cayman Islands | Caymanøyene |
| Central African Republic | Den sentralafrikanske republikk |
| Chad | Tsjad |
| Chile | Chile |
| China | Kina |
| Christmas Island | Christmasøya |
| Cocos (Keeling) Islands | Kokosøyene (Keelingøyene) |
| Colombia | Colombia |
| Comoros | Komorene |
| Congo | Kongo |
| Cook Islands | Cookøyene |
| Costa Rica | Costa Rica |
| Cote D'Ivoire (Ivory Coast) | Elfenbenskysten |
| Croatia | Kroatia |
| Cuba | Cuba |
| Curaçao | Curaçao |
| Cyprus | Kypros |
| Czech Republic | Tsjekkia |
| Democratic Republic of the Congo | Den demokratiske republikken Kongo |
| Denmark | Danmark |
| Djibouti | Djibouti |
| Dominica | Dominica |
| Dominican Republic | Den dominikanske republikk |
| East Timor | Øst-Timor |
| Ecuador | Ecuador |
| Egypt | Egypt |
| El Salvador | El Salvador |
| Equatorial Guinea | Ekvatorial-Guinea |
| Eritrea | Eritrea |
| Estonia | Estland |
| Ethiopia | Etiopia |
| Falkland Islands | Falklandsøyene |
| Faroe Islands | Færøyene |
| Fiji Islands | Fijiøyene |
| Finland | Finland |
| France | Frankrike |
| French Guiana | Fransk Guyana |
| French Polynesia | Fransk Polynesia |
| French Southern Territories | Franske sørlige territorier |
| Gabon | Gabon |
| Gambia The | Gambia |
| Georgia | Georgia |
| Germany | Tyskland |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Hellas |
| Greenland | Grønland |
| Grenada | Grenada |
| Guadeloupe | Guadeloupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernsey og Alderney |
| Guinea | Guinea |
| Guinea-Bissau | Guinea-Bissau |
| Guyana | Guyana |
| Haiti | Haiti |
| Heard Island and McDonald Islands | Heard- og McDonaldøyene |
| Honduras | Honduras |
| Hong Kong S.A.R. | Hong Kong S.A.R. |
| Hungary | Ungarn |
| Iceland | Island |
| India | India |
| Indonesia | Indonesia |
| Iran | Iran |
| Iraq | Irak |
| Ireland | Irland |
| Israel | Israel |
| Italy | Italia |
| Jamaica | Jamaica |
| Japan | Japan |
| Jersey | Jersey |
| Jordan | Jordan |
| Kazakhstan | Kasakhstan |
| Kenya | Kenya |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Kuwait |
| Kyrgyzstan | Kirgisistan |
| Laos | Laos |
| Latvia | Latvia |
| Lebanon | Libanon |
| Lesotho | Lesotho |
| Liberia | Liberia |
| Libya | Libya |
| Liechtenstein | Liechtenstein |
| Lithuania | Litauen |
| Luxembourg | Luxembourg |
| Macau S.A.R. | Macau S.A.R. |
| Madagascar | Madagaskar |
| Malawi | Malawi |
| Malaysia | Malaysia |
| Maldives | Maldivene |
| Mali | Mali |
| Malta | Malta |
| Man (Isle of) | Man (Isle of) |
| Marshall Islands | Marshalløyene |
| Martinique | Martinique |
| Mauritania | Mauritania |
| Mauritius | Mauritius |
| Mayotte | Mayotte |
| Mexico | Mexico |
| Micronesia | Mikronesia |
| Moldova | Moldova |
| Monaco | Monaco |
| Mongolia | Mongolia |
| Montenegro | Montenegro |
| Montserrat | Montserrat |
| Morocco | Marokko |
| Mozambique | Mosambik |
| Myanmar | Myanmar |
| Namibia | Namibia |
| Nauru | Nauru |
| Nepal | Nepal |
| Netherlands | Nederland |
| New Caledonia | Ny-Caledonia |
| New Zealand | New Zealand |
| Nicaragua | Nicaragua |
| Niger | Niger |
| Nigeria | Nigeria |
| Niue | Niue |
| Norfolk Island | Norfolkøya |
| North Korea | Nord-Korea |
| North Macedonia | Nord-Makedonia |
| Northern Mariana Islands | Nord-Marianene |
| Norway | Norge |
| Oman | Oman |
| Pakistan | Pakistan |
| Palau | Palau |
| Palestinian Territory Occupied | Palestinsk okkupert område |
| Panama | Panama |
| Papua new Guinea | Papua Ny-Guinea |
| Paraguay | Paraguay |
| Peru | Peru |
| Philippines | Filippinene |
| Pitcairn Island | Pitcairnøyene |
| Poland | Polen |
| Portugal | Portugal |
| Puerto Rico | Puerto Rico |
| Qatar | Qatar |
| Reunion | Réunion |
| Romania | Romania |
| Russia | Russland |
| Rwanda | Rwanda |
| Saint Helena | Sankt Helena |
| Saint Kitts And Nevis | Saint Kitts og Nevis |
| Saint Lucia | Saint Lucia |
| Saint Pierre and Miquelon | Saint-Pierre og Miquelon |
| Saint Vincent And The Grenadines | Saint Vincent og Grenadinene |
| Saint-Barthelemy | Saint-Barthélemy |
| Saint-Martin (French part) | Saint-Martin (fransk del) |
| Samoa | Samoa |
| San Marino | San Marino |
| Sao Tome and Principe | São Tomé og Príncipe |
| Saudi Arabia | Saudi-Arabia |
| Senegal | Senegal |
| Serbia | Serbia |
| Seychelles | Seychellene |
| Sierra Leone | Sierra Leone |
| Singapore | Singapore |
| Sint Maarten (Dutch part) | Sint Maarten (nederlandsk del) |
| Slovakia | Slovakia |
| Slovenia | Slovenia |
| Solomon Islands | Salomonøyene |
| Somalia | Somalia |
| South Africa | Sør-Afrika |
| South Georgia | Sør-Georgia |
| South Korea | Sør-Korea |
| South Sudan | Sør-Sudan |
| Spain | Spania |
| Sri Lanka | Sri Lanka |
| Sudan | Sudan |
| Suriname | Surinam |
| Svalbard And Jan Mayen Islands | Svalbard og Jan Mayen |
| Swaziland | Swaziland |
| Sweden | Sverige |
| Switzerland | Sveits |
| Syria | Syria |
| Taiwan | Taiwan |
| Tajikistan | Tadsjikistan |
| Tanzania | Tanzania |
| Thailand | Thailand |
| The Bahamas | Bahamas |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinidad og Tobago |
| Tunisia | Tunisia |
| Türkiye | Tyrkia |
| Turkmenistan | Turkmenistan |
| Turks And Caicos Islands | Turks- og Caicosøyene |
| Tuvalu | Tuvalu |
| Uganda | Uganda |
| Ukraine | Ukraina |
| United Arab Emirates | De forente arabiske emirater |
| United Kingdom | Storbritannia |
| United States | USA |
| United States Minor Outlying Islands | USAs ytre småøyer |
| Uruguay | Uruguay |
| Uzbekistan | Usbekistan |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Vatikanstaten (Den hellige stol) |
| Venezuela | Venezuela |
| Vietnam | Vietnam |
| Virgin Islands (British) | Jomfruøyene (britiske) |
| Virgin Islands (US) | Jomfruøyene (USA) |
| Wallis And Futuna Islands | Wallis- og Futunaøyene |
| Western Sahara | Vest-Sahara |
| Yemen | Jemen |
| Zambia | Zambia |
| Zimbabwe | Zimbabwe |
### セクション名
| 英語 | ノルウェー語 |
| ------------ | ------------------------- |
| Awards | Utmerkelser |
| Basics | Grunnleggende informasjon |
| Certificates | Sertifikater |
| Education | Utdanning |
| Interests | Interesser |
| Languages | Språk |
| Projects | Prosjekter |
| Publications | Publikasjoner |
| References | Referanser |
| Skills | Ferdigheter |
| Volunteer | Frivillig arbeid |
| Work | Arbeidserfaring |
### スキルレベル
| 英語 | ノルウェー語 |
| ------------ | ------------ |
| Novice | Nybegynner |
| Beginner | Begynner |
| Intermediate | Viderekommen |
| Advanced | Avansert |
| Expert | Ekspert |
| Master | Mester |
### オプションと用語
| 英語 | ノルウェー語 |
| -------- | --------- |
| Courses | Kurs |
| Keywords | Nøkkelord |
| Score | Poeng |
# スペイン語
URL: (/ja/docs/locale/spanish)
英語とスペイン語は両方とも[インド・ヨーロッパ語族](https://en.wikipedia.org/wiki/Indo-European_languages)で、英語とスペイン語にいくつかの類似点があるのも当然です。そのため、YAMLResume の大部分の共通基盤は英語とスペイン語で再利用できます。
## 言語学
### 文字セット
英語とスペイン語の文字セットは非常に類似しています——両言語は主に26文字からなる[ラテン文字](https://en.wikipedia.org/wiki/Latin_alphabet)を使用します。しかし、スペイン語には独特の音を表す追加の文字 `ñ` があります。以下に簡単な比較を示します:
| 特徴 | 英語文字セット | スペイン語文字セット |
| ----------- | ------------ | ------------------------------------------------------------ |
| **アルファベット** | 26文字 (`a-z`) | 27文字 (`a-z` に `ñ` を追加) |
| **変音記号** | なし | アクセント記号(`á`, `é`, `í`, `ó`, `ú`)、トレマ(`ü`)、特殊句読点(`¿`, `¡`)を含む |
| **特殊文字** | 基本ラテン文字のみ | `ñ` やアクセント母音などの追加文字を含む |
英語とスペイン語の書字体系間の主な違い:
* **追加文字**:スペイン語アルファベットには、英語アルファベットには存在しない文字 `ñ` が含まれます。
* **[変音記号](https://en.wikipedia.org/wiki/Diacritic)**:スペイン語は母音の発音を変えるいくつかの変音記号を使用します。例えば、アクセント記号はアクセントと発音の変化を示します(例:`é` vs. `e`)。
* **句読点**:スペイン語は英語にはない逆句読点(疑問文には `¿`、感嘆文には `¡`)を使用します。
## 慣用句
### 日付
曜日と月は英語では大文字になりますが、スペイン語では大文字になりません。例えば、英語の「Sep 2021」はスペイン語では「sept 2021」と翻訳されます。
YAMLResume は月のみを使用するため、翻訳表:
| 英語 | スペイン語 |
| --------------- | ----------------- |
| January (Jan) | enero (ene) |
| February (Feb) | febrero (feb) |
| March (Mar) | marzo (mar) |
| April (Apr) | abril (abr) |
| May (May) | mayo (may) |
| June (Jun) | junio (jun) |
| July (Jul) | julio (jul) |
| August (Aug) | agosto (ago) |
| September (Sep) | septiembre (sept) |
| October (Oct) | octubre (oct) |
| November (Nov) | noviembre (nov) |
| December (Dec) | diciembre (dic) |
### 大文字化
英語は多くの単語を大文字化する傾向がありますが、スペイン語はより保守的で、より[厳格な規則セット](https://baselang.com/blog/basic-grammar/capitalization-in-spanish/)に従います。
YAMLResume は内部で、すべての履歴書テンプレートに使用する固定のオプションと用語セットを採用しています。例えば、YAMLResume 履歴書テンプレートの言語は[LinkedIn の言語習熟度オプション](https://www.linkedin.com/pulse/language-proficiency-linkedin-duaa-ali/)を採用しています:
* Elementary Proficiency
* Limited Working Proficiency
* Minimum Professional Proficiency
* Full Professional Proficiency
* Native or Bilingual Proficiency
これらはスペイン語に以下のように翻訳されます:
* Competencia elemental
* Competencia limitada de trabajo
* Competencia profesional de trabajo
* Competencia profesional plena
* Competencia nativa o bilingüe
最初の単語のみが大文字です。
## タイポグラフィ
### 句読点
スペイン語は句読点に関して英語といくつかの顕著な違いがあります:
* **引用符**:英語では、ピリオドとコンマは引用符の中に置かれますが、スペイン語では通常外に置かれます。
* **逆符号**:スペイン語は疑問文と感嘆文の開始と終了に逆疑問符 `¿` と感嘆符 `¡` を使用しますが、英語では使用しません。
* **シーケンスコンマ**:英語はリストの「and」の前にシーケンスコンマを頻繁に使用します(例:「apples, oranges, and bananas」)が、スペイン語は「y」の前にコンマを使用しません(例:「manzanas, naranjas y plátanos」)
* **数字形式**:英語は小数点区切り文字としてピリオドを使用します(例:3.14)が、スペイン語はコンマを使用します(例:3,14)。
## 翻訳
YAMLResume はスペイン語履歴書で使用される様々なオプションと用語に以下の翻訳を採用しています
### 教育学位
| 英語 | スペイン語 |
| ------------- | -------------------- |
| Middle School | Escuela secundaria |
| High School | Título de secundaria |
| Diploma | Diploma |
| Associate | Grado de asociado |
| Bachelor | Licenciatura |
| Master | Maestría |
| Doctor | Doctorado |
### 言語
| 英語 | スペイン語 |
| ----------- | ----------- |
| Afrikaans | Afrikáans |
| Albanian | Albanés |
| Amharic | Amárico |
| Arabic | Árabe |
| Azerbaijani | Azerbaiyano |
| Belarusian | Bielorruso |
| Bengali | Bengalí |
| Bhojpuri | Bhojpuri |
| Bulgarian | Búlgaro |
| Burmese | Birmano |
| Cantonese | Cantonés |
| Catalan | Catalán |
| Chinese | Chino |
| Croatian | Croata |
| Czech | Checo |
| Danish | Danés |
| Dutch | Neerlandés |
| English | Inglés |
| Estonian | Estonio |
| Farsi | Persa |
| Filipino | Filipino |
| Finnish | Finés |
| French | Francés |
| German | Alemán |
| Greek | Griego |
| Gujarati | Gujarati |
| Hausa | Hausa |
| Hebrew | Hebreo |
| Hindi | Hindi |
| Hungarian | Húngaro |
| Icelandic | Islandés |
| Igbo | Igbo |
| Indonesian | Indonesio |
| Irish | Irlandés |
| Italian | Italiano |
| Japanese | Japonés |
| Javanese | Javanés |
| Kazakh | Kazajo |
| Khmer | Jemer |
| Korean | Coreano |
| Lahnda | Lahnda |
| Latvian | Letón |
| Lithuanian | Lituano |
| Malay | Malayo |
| Mandarin | Mandarín |
| Marathi | Marathi |
| Nepali | Nepalí |
| Norwegian | Noruego |
| Oromo | Oromo |
| Pashto | Pastún |
| Polish | Polaco |
| Portuguese | Portugués |
| Romanian | Rumano |
| Russian | Ruso |
| Serbian | Serbio |
| Shona | Shona |
| Sinhala | Cingalés |
| Slovak | Eslovaco |
| Slovene | Esloveno |
| Somali | Somalí |
| Spanish | Español |
| Sundanese | Sundanés |
| Swahili | Suajili |
| Swedish | Sueco |
| Tagalog | Tagalo |
| Tamil | Tamil |
| Telugu | Telugu |
| Thai | Tailandés |
| Turkish | Turco |
| Ukrainian | Ucraniano |
| Urdu | Urdu |
| Uzbek | Uzbeko |
| Vietnamese | Vietnamita |
| Yoruba | Yoruba |
| Zulu | Zulú |
### 言語習熟度
| 英語 | スペイン語 |
| -------------------------------- | ---------------------------------- |
| Elementary Proficiency | Competencia elemental |
| Limited Working Proficiency | Competencia limitada de trabajo |
| Minimum Professional Proficiency | Competencia profesional de trabajo |
| Full Professional Proficiency | Competencia profesional plena |
| Native or Bilingual Proficiency | Competencia nativa o bilingüe |
### 位置(国と地域)
| 英語 | スペイン語 |
| ------------------------------------ | -------------------------------------------- |
| Afghanistan | Afganistán |
| Aland Islands | Islas Åland |
| Albania | Albania |
| Algeria | Argelia |
| American Samoa | Samoa Americana |
| Andorra | Andorra |
| Angola | Angola |
| Anguilla | Anguila |
| Antarctica | Antártida |
| Antigua And Barbuda | Antigua y Barbuda |
| Argentina | Argentina |
| Armenia | Armenia |
| Aruba | Aruba |
| Australia | Australia |
| Austria | Austria |
| Azerbaijan | Azerbaiyán |
| Bahrain | Baréin |
| Bangladesh | Bangladés |
| Barbados | Barbados |
| Belarus | Bielorrusia |
| Belgium | Bélgica |
| Belize | Belice |
| Benin | Benín |
| Bermuda | Bermudas |
| Bhutan | Bután |
| Bolivia | Bolivia |
| Bonaire, Sint Eustatius and Saba | Bonaire, San Eustaquio y Saba |
| Bosnia and Herzegovina | Bosnia y Herzegovina |
| Botswana | Botsuana |
| Bouvet Island | Isla Bouvet |
| Brazil | Brasil |
| British Indian Ocean Territory | Territorio Británico del Océano Índico |
| Brunei | Brunéi |
| Bulgaria | Bulgaria |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Camboya |
| Cameroon | Camerún |
| Canada | Canadá |
| Cape Verde | Cabo Verde |
| Cayman Islands | Islas Caimán |
| Central African Republic | República Centroafricana |
| Chad | Chad |
| Chile | Chile |
| China | China |
| Christmas Island | Isla de Navidad |
| Cocos (Keeling) Islands | Islas Cocos |
| Colombia | Colombia |
| Comoros | Comoras |
| Congo | Congo |
| Cook Islands | Islas Cook |
| Costa Rica | Costa Rica |
| Cote D'Ivoire (Ivory Coast) | Costa de Marfil |
| Croatia | Croacia |
| Cuba | Cuba |
| Curaçao | Curazao |
| Cyprus | Chipre |
| Czech Republic | República Checa |
| Democratic Republic of the Congo | República Democrática del Congo |
| Denmark | Dinamarca |
| Djibouti | Yibuti |
| Dominica | Dominica |
| Dominican Republic | República Dominicana |
| East Timor | Timor Oriental |
| Ecuador | Ecuador |
| Egypt | Egipto |
| El Salvador | El Salvador |
| Equatorial Guinea | Guinea Ecuatorial |
| Eritrea | Eritrea |
| Estonia | Estonia |
| Ethiopia | Etiopía |
| Falkland Islands | Islas Malvinas |
| Faroe Islands | Islas Feroe |
| Fiji Islands | Fiyi |
| Finland | Finlandia |
| France | Francia |
| French Guiana | Guayana Francesa |
| French Polynesia | Polinesia Francesa |
| French Southern Territories | Tierras Australes y Antárticas Francesas |
| Gabon | Gabón |
| Gambia The | Gambia |
| Georgia | Georgia |
| Germany | Alemania |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Grecia |
| Greenland | Groenlandia |
| Grenada | Granada |
| Guadeloupe | Guadalupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernsey y Alderney |
| Guinea | Guinea |
| Guinea-Bisáu | Guinea-Bisáu |
| Guyana | Guyana |
| Haiti | Haití |
| Heard Island and McDonald Islands | Islas Heard y McDonald |
| Honduras | Honduras |
| Hong Kong S.A.R. | Hong Kong |
| Hungary | Hungría |
| Iceland | Islandia |
| India | India |
| Indonesia | Indonesia |
| Iran | Irán |
| Iraq | Irak |
| Ireland | Irlanda |
| Israel | Israel |
| Italy | Italia |
| Jamaica | Jamaica |
| Japan | Japón |
| Jersey | Jersey |
| Jordan | Jordania |
| Kazakhstan | Kazajistán |
| Kenya | Kenia |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Kuwait |
| Kyrgyzstan | Kirguistán |
| Laos | Laos |
| Latvia | Letonia |
| Lebanon | Líbano |
| Lesotho | Lesoto |
| Liberia | Liberia |
| Libya | Libia |
| Liechtenstein | Liechtenstein |
| Lithuania | Lituania |
| Luxembourg | Luxemburgo |
| Macau S.A.R. | Macao |
| Madagascar | Madagascar |
| Malawi | Malaui |
| Malaysia | Malasia |
| Maldives | Maldivas |
| Mali | Malí |
| Malta | Malta |
| Man (Isle of) | Isla de Man |
| Marshall Islands | Islas Marshall |
| Martinique | Martinica |
| Mauritania | Mauritania |
| Mauritius | Mauricio |
| Mayotte | Mayotte |
| Mexico | México |
| Micronesia | Micronesia |
| Moldova | Moldavia |
| Monaco | Mónaco |
| Mongolia | Mongolia |
| Montenegro | Montenegro |
| Montserrat | Montserrat |
| Morocco | Marruecos |
| Mozambique | Mozambique |
| Myanmar | Myanmar |
| Namibia | Namibia |
| Nauru | Nauru |
| Nepal | Nepal |
| Netherlands | Países Bajos |
| New Caledonia | Nueva Caledonia |
| New Zealand | Nueva Zelanda |
| Nicaragua | Nicaragua |
| Niger | Níger |
| Nigeria | Nigeria |
| Niue | Niue |
| Norfolk Island | Isla Norfolk |
| North Korea | Corea del Norte |
| North Macedonia | Macedonia del Norte |
| Northern Mariana Islands | Islas Marianas del Norte |
| Norway | Noruega |
| Oman | Omán |
| Pakistan | Pakistán |
| Palau | Palaos |
| Palestinian Territory Occupied | Territorio Palestino Ocupado |
| Panama | Panamá |
| Papua new Guinea | Papúa Nueva Guinea |
| Paraguay | Paraguay |
| Peru | Perú |
| Philippines | Filipinas |
| Pitcairn Island | Islas Pitcairn |
| Poland | Polonia |
| Portugal | Portugal |
| Puerto Rico | Puerto Rico |
| Qatar | Catar |
| Reunion | Reunión |
| Romania | Rumania |
| Russia | Rusia |
| Rwanda | Ruanda |
| Saint Helena | Santa Elena |
| Saint Kitts And Nevis | San Cristóbal y Nieves |
| Saint Lucia | Santa Lucía |
| Saint Pierre and Miquelon | San Pedro y Miquelón |
| Saint Vincent And The Grenadines | San Vicente y las Granadinas |
| Saint-Barthelemy | San Bartolomé |
| Saint-Martin (French part) | San Martín (parte francesa) |
| Samoa | Samoa |
| San Marino | San Marino |
| Sao Tome and Principe | Santo Tomé y Príncipe |
| Saudi Arabia | Arabia Saudita |
| Senegal | Senegal |
| Serbia | Serbia |
| Seychelles | Seychelles |
| Sierra Leone | Sierra Leona |
| Singapore | Singapur |
| Sint Maarten (Dutch part) | San Martín (parte neerlandesa) |
| Slovakia | Eslovaquia |
| Slovenia | Eslovenia |
| Solomon Islands | Islas Salomón |
| Somalia | Somalia |
| South Africa | Sudáfrica |
| South Georgia | Georgia del Sur |
| South Korea | Corea del Sur |
| South Sudan | Sudán del Sur |
| Spain | España |
| Sri Lanka | Sri Lanka |
| Sudan | Sudán |
| Suriname | Surinam |
| Svalbard And Jan Mayen Islands | Svalbard y Jan Mayen |
| Swaziland | Suazilandia |
| Sweden | Suecia |
| Switzerland | Suiza |
| Syria | Siria |
| Taiwan | Taiwán |
| Tajikistan | Tayikistán |
| Tanzania | Tanzania |
| Thailand | Tailandia |
| The Bahamas | Bahamas |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinidad y Tobago |
| Tunisia | Túnez |
| Türkiye | Turquía |
| Turkmenistan | Turkmenistán |
| Turks And Caicos Islands | Islas Turcas y Caicos |
| Tuvalu | Tuvalu |
| Uganda | Uganda |
| Ukraine | Ucrania |
| United Arab Emirates | Emiratos Árabes Unidos |
| United Kingdom | Reino Unido |
| United States | Estados Unidos |
| United States Minor Outlying Islands | Islas Ultramarinas Menores de Estados Unidos |
| Uruguay | Uruguay |
| Uzbekistan | Uzbekistán |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Ciudad del Vaticano |
| Venezuela | Venezuela |
| Vietnam | Vietnam |
| Virgin Islands (British) | Islas Vírgenes Británicas |
| Virgin Islands (US) | Islas Vírgenes de los Estados Unidos |
| Wallis And Futuna Islands | Wallis y Futuna |
| Western Sahara | Sahara Occidental |
| Yemen | Yemen |
| Zambia | Zambia |
| Zimbabwe | Zimbabue |
### セクション名
| 英語 | スペイン語 |
| ------------ | ------------------- |
| Awards | Premios |
| Basics | Información básica |
| Certificates | Certificados |
| Education | Educación |
| Interests | Intereses |
| Languages | Idiomas |
| Location | Ubicación |
| Profiles | Perfiles |
| Projects | Proyectos |
| Publications | Publicaciones |
| References | Referencias |
| Skills | Competencias |
| Volunteer | Voluntariado |
| Work | Experiencia laboral |
### スキルレベル
| 英語 | スペイン語 |
| ------------ | ------------ |
| Novice | Novato |
| Beginner | Principiante |
| Intermediate | Intermedio |
| Advanced | Avanzado |
| Expert | Experto |
| Master | Maestro |
### オプションと用語
| 英語 | スペイン語 |
| -------- | -------------- |
| Courses | Cursos |
| Keywords | Palabras clave |
| Score | Puntuación |
# スキーマ
URL: (/ja/docs/compiler/schema)
## 概要
履歴書の起草は長く、退屈で面倒なプロセスです。人々はしばしば細部に何時間も費やしますが、エラーは依然として発生します。例えば、教育学位にスペルミスがある、メール形式が間違っている、コース名が短すぎるなどです。
[静的タイプ定義](/ja/docs/compiler/types) に加えて、YAMLResume は実行時検証に使用できる組み込みスキーマを提供します。これが YAMLResume を**履歴書コンパイラ**にする核心です—YAMLResume は**clang スタイルの警告/エラーメッセージ**を提供し、履歴書起草の初期段階で潜在的なエラーをキャッチするのに役立ちます。
例えば、以下の履歴書について:
```yml lineNumbers title="invalid-resume.yml"
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
---
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@pp # [!code highlight]
url: https//ppresume.com/gallery # [!code highlight]
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
region: California
city: S # [!code highlight]
country: United States
postalCode: "95814"
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
startDate: Sep 1, 2016
endDate:
courses:
- D # [!code highlight]
- Programming Language Concepts
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
layouts:
- engine: latex
typography:
fontSize: 13pt # [!code highlight]
```
`yamlresume validate` は潜在的なエラーのリストを提供し、明確な位置情報を提供してエラー位置を正確に特定するのに役立ちます。同時に、[yaml-language-server](https://github.com/redhat-developer/yaml-language-server) の助けを借りて、[自動補完](/ja/docs/compiler/schema/json#auto-completion)、[ホバープロパティドキュメント](/ja/docs/compiler/schema/json#property-docs)、[フォーマット検証](/ja/docs/compiler/schema/json#format-validation) などの機能を通じてより良い編集体験を得ることができます。
内部的には、YAMLResume は [Zod](https://zod.dev) を採用して実行時に履歴書データを検証します。Zod は TypeScript ファーストのスキーマ検証ライブラリで、履歴書データのスキーマを定義し、強力な安全網として機能し、履歴書データが信頼性があり、一貫性があり、プロフェッショナルな PDF にレンダリングする準備ができていることを保証します。
スキーマ検証は履歴書データの正確性を確保する非常に強力なツールです。履歴書起草のライフサイクル全体を通じてエラーをキャッチでき、最初から低レベルのエラーを避けるのに非常に役立ちます。
## 詳細情報
# JSON Schema
URL: (/ja/docs/compiler/schema/json)
## 概要
YAMLResume は履歴書データの検証用に公式の [JSON Schema](https://json-schema.org) を提供します。
最新の公式 JSON Schema は以下でホストされています:
[https://yamlresume.com/schema.json](https://yamlresume.com/schema.json)。ただし、IDE/エディター用の軽量版が必要な場合は、GitHub リポジトリの canary バージョン [schema.json](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/schema/schema.json) も使用できます。
同時に、YAMLResume の開発に伴い、公式 JSON Schema は継続的に更新されるため、以下の場所でアーカイブされたバージョンの JSON Schema も提供しています:
`https://yamlresume.com/schemas//schema.json`。
現在、以下のアーカイブバージョンがあります:
* [v0.11.0](/schemas/v0.11.0/schema.json)
* [v0.10.1](/schemas/v0.10.1/schema.json)
* [v0.10.0](/schemas/v0.10.0/schema.json)
* [v0.9.1](/schemas/v0.9.1/schema.json)
* [v0.8.1](/schemas/v0.8.1/schema.json)
* [v0.5.1](/schemas/v0.5.1/schema.json)
* [v0.6.0](/schemas/v0.6.0/schema.json)
* [v0.7.0](/schemas/v0.7.0/schema.json)
## JSON Schema とは?
[JSON Schema](https://json-schema.org) は、JSON データの構造を定義するための JSON ベースの形式です。JSON データを検証し、文書化するための強力なツールです。
JSON Schema を使用すると、JSON データの期待される構造、タイプ、制約を指定できます。JSON Schema を使用して、どのプロパティが必須か、どのような値のタイプが許可されるか(文字列、数値、配列、オブジェクトなど)、値のフォーマットのルール(メールアドレスや URL など)を定義できます。
JSON Schema を使用することで、開発者やツールは JSON データを自動的に検証し、処理前に期待される形式に準拠していることを確認できます。これにより、エラーを早期にキャッチし、データ品質を向上させ、現代のコードエディターで自動補完やインラインドキュメントなどの機能を有効にできます。
JSON Schema は広くサポートされており、設定ファイル、API ペイロード、YAMLResume の場合は履歴書データの一貫性と正確性を確保するための検証に使用できます。
## 利点
履歴書を作成する際に YAMLResume の JSON Schema を IDE/エディターに統合することで、いくつかの利点があります:
* **自動補完**:入力開始時に、IDE/エディターがプロパティとその期待されるタイプを提案し、履歴書の起草をより速く、エラーを減らすのに役立ちます。
* **フォーマット検証**:IDE/エディターが入力時にフォーマットエラー(無効な日付や URL など)をハイライトし、間違った情報を送信することを防ぎます。
* **プロパティドキュメント**:各プロパティのインラインドキュメントを取得し、その用途、許可される値、特別なフォーマット要件を説明します。
### 自動補完
すべての[列挙タイプ](/ja/docs/compiler/types#enum-types) は入力時に自動補完されます。オプションの最初の数文字を入力するだけで、IDE/エディターが有効なオプションのリストを提案し、上下矢印キーを使用して正しいオプションを選択できます。
### フォーマット検証
各キー値ペアは事前定義されたスキーマに基づいてリアルタイムで検証されます。IDE/エディターは正確なエラーメッセージで警告し、間違ったメール形式、無効な学位オプション、言語流暢度レベルのスペルミスなどの低レベルエラーを避けるのに役立ちます。
必須キーが欠落している場合、警告メッセージはデフォルトでその親オブジェクトにエスカレートするため、欠落しているキーを簡単に見つけることができます。
### プロパティドキュメント
最後に、各プロパティのインラインドキュメントを取得し、その用途、許可される値、特別なフォーマット要件を説明できます。プロパティキーまたは値にマウスをホバーしてドキュメントを表示できます。
## JSON Schema の使用方法
履歴書で YAMLResume の JSON スキーマを使用するには、[yaml-language-server](https://github.com/redhat-developer/yaml-language-server) をインストールする必要があります。IDE/エディターによっては、異なる[拡張機能](https://github.com/redhat-developer/yaml-language-server?tab=readme-ov-file#clients) をインストールする必要がある場合があります。
インストール後、履歴書ファイルの上部に以下の行を追加する必要があります:
```
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
```
その後、[自動補完](#auto-completion)、[フォーマット検証](#format-validation)、[プロパティドキュメント](#property-docs) 機能を楽しむことができ、すべてが指先で利用できます。
## エンジニアリング実装
内部的には、YAMLResume の JSON スキーマは [Zod v4](https://zod.dev/json-schema) の助けを借りて生成されており、これは優れた TypeScript ファーストのスキーマ検証ライブラリです。
[schema/resume.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/schema/resume.ts) でスキーマを定義し、その後[テストケース](https://github.com/yamlresume/yamlresume/blob/99de/packages/core/src/schema/resume.test.ts#L272-L277) で JSON スキーマを生成します。
これはとてもクールではありませんか?
# Zod Schema
URL: (/ja/docs/compiler/schema/zod)
YAMLResume は [zod](https://zod.dev) を採用して実行時に履歴書データを検証します。
この文書は、YAMLResume で使用されるすべての zod スキーマの概要を提供します。実装の詳細に興味がある場合は、[ここ](https://github.com/yamlresume/yamlresume/tree/main/packages/core/src/schema) でソースコードを見つけることができます。
## 履歴書スキーマ
全体的な履歴書構造検証を定義し、コンテンツとレイアウト検証を含みます。
| 属性 | タイプ | 必須 |
| ---------- | --------------------------------- | -- |
| `content` | [`ContentSchema`](#contentschema) | ✅ |
| `layouts?` | [`LayoutsSchema`](#layoutsschema) | ⬜ |
| `locale?` | [`LocaleSchema`](#localeschema) | ⬜ |
### ContentSchema
履歴書全体のコンテンツ検証構造を定義します。
| 属性 | タイプ | 必須 |
| --------------- | --------------------------------------------------- | -- |
| `basics` | [`BasicsItemSchema`](#basicsitemschema) | ✅ |
| `education` | [`EducationItemSchema[]`](#educationitemschema) | ✅ |
| `awards?` | [`AwardItemSchema[]`](#awarditemschema) | ⬜ |
| `certificates?` | [`CertificateItemSchema[]`](#certificateitemschema) | ⬜ |
| `interests?` | [`InterestItemSchema[]`](#interestitemschema) | ⬜ |
| `languages?` | [`LanguageItemSchema[]`](#languageitemschema) | ⬜ |
| `location?` | [`LocationItemSchema`](#locationitemschema) | ⬜ |
| `projects?` | [`ProjectItemSchema[]`](#projectitemschema) | ⬜ |
| `profiles?` | [`ProfileItemSchema[]`](#profileitemschema) | ⬜ |
| `publications?` | [`PublicationItemSchema[]`](#publicationitemschema) | ⬜ |
| `references?` | [`ReferenceItemSchema[]`](#referenceitemschema) | ⬜ |
| `skills?` | [`SkillItemSchema[]`](#skillitemschema) | ⬜ |
| `volunteer?` | [`VolunteerItemSchema[]`](#volunteeritemschema) | ⬜ |
| `work?` | [`WorkItemSchema[]`](#workitemschema) | ⬜ |
#### AwardItemSchema
獲得した単一の賞、名誉、または認識を検証します。
| 属性 | タイプ | 必須 | 検証ルール |
| ---------- | -------- | -- | ----------------------------- |
| `awarder` | `string` | ✅ | 2-128 文字 |
| `title` | `string` | ✅ | 2-128 文字 |
| `date?` | `string` | ⬜ | [日付スキーマ](#date-schema) を参照 |
| `summary?` | `string` | ⬜ | [要約スキーマ](#summary-schema) を参照 |
#### BasicsItemSchema
コア個人情報と連絡先情報を検証します。
| 属性 | タイプ | 必須 | 検証ルール |
| ----------- | -------- | -- | ----------------------------- |
| `name` | `string` | ✅ | 2-128 文字 |
| `email?` | `string` | ⬜ | [メールスキーマ](#email-schema) を参照 |
| `headline?` | `string` | ⬜ | 2-128 文字 |
| `phone?` | `string` | ⬜ | [電話スキーマ](#phone-schema) を参照 |
| `summary?` | `string` | ⬜ | [要約スキーマ](#summary-schema) を参照 |
| `url?` | `string` | ⬜ | [URL スキーマ](#url-schema) を参照 |
#### CertificateItemSchema
単一の認証、証明書、または専門資格を検証します。
| 属性 | タイプ | 必須 | 検証ルール |
| -------- | -------- | -- | --------------------------- |
| `issuer` | `string` | ✅ | 2-128 文字 |
| `name` | `string` | ✅ | 2-128 文字 |
| `date?` | `string` | ⬜ | [日付スキーマ](#date-schema) を参照 |
| `url?` | `string` | ⬜ | [URL スキーマ](#url-schema) を参照 |
#### EducationItemSchema
単一の教育経験または学位プログラムを検証します。
| 属性 | タイプ | 必須 | 検証ルール |
| ------------- | ------------------- | -- | -------------------------------------- |
| `area` | `string` | ✅ | 2-64 文字 |
| `degree` | [`Degree`](#degree) | ✅ | 事前定義された[学位オプション](#degree) からである必要があります |
| `institution` | `string` | ✅ | 2-128 文字 |
| `startDate` | `string` | ✅ | [日付スキーマ](#date-schema) を参照 |
| `courses?` | `string[]` | ⬜ | 各項目 2-128 文字 |
| `endDate?` | `string` | ⬜ | [日付スキーマ](#date-schema) を参照 |
| `summary?` | `string` | ⬜ | [要約スキーマ](#summary-schema) を参照 |
| `score?` | `string` | ⬜ | 2-32 文字 |
| `url?` | `string` | ⬜ | [URL スキーマ](#url-schema) を参照 |
#### InterestItemSchema
単一の興味、趣味、または個人的な活動を検証します。
| 属性 | タイプ | 必須 | 検証ルール |
| ----------- | ---------- | -- | --------------------------------- |
| `name` | `string` | ✅ | 2-128 文字 |
| `keywords?` | `string[]` | ⬜ | [キーワードスキーマ](#keywords-schema) を参照 |
#### LanguageItemSchema
単一の言語能力項目を検証します。
| 属性 | タイプ | 必須 | 検証ルール |
| ----------- | ----------------------- | -- | ---------------------------------------- |
| `fluency` | [`Fluency`](#fluency) | ✅ | 事前定義された[流暢度オプション](#fluency) からである必要があります |
| `language` | [`Language`](#language) | ✅ | 事前定義された[言語オプション](#language) からである必要があります |
| `keywords?` | `string[]` | ⬜ | 各項目 1-32 文字 |
#### LocationItemSchema
位置と住所情報を検証します。
| 属性 | タイプ | 必須 | 検証ルール |
| ------------- | --------------------- | -- | -------------------------------------- |
| `city` | `string` | ✅ | 2-128 文字 |
| `address?` | `string` | ⬜ | 2-128 文字 |
| `country?` | [`Country`](#country) | ⬜ | 事前定義された[国オプション](#country) からである必要があります |
| `postalCode?` | `string` | ⬜ | 2-128 文字 |
| `region?` | `string` | ⬜ | 2-128 文字 |
#### ProfileItemSchema
単一のオンラインプロフィールまたはソーシャルメディアの存在を検証します。
| 属性 | タイプ | 必須 | 検証ルール |
| ---------- | --------------------- | -- | ------------------------------------------- |
| `network` | [`Network`](#network) | ✅ | 事前定義された[ネットワークオプション](#network) からである必要があります |
| `username` | `string` | ✅ | 2-128 文字 |
| `url?` | `string` | ⬜ | 有効な URL、最大 256 文字 |
#### ProjectItemSchema
単一のプロジェクト、ポートフォリオ作品、または技術的な作業を検証します。
| 属性 | タイプ | 必須 | 検証ルール |
| -------------- | ---------- | -- | ----------------------------- |
| `name` | `string` | ✅ | 2-128 文字 |
| `startDate` | `string` | ✅ | [日付スキーマ](#date-schema) を参照 |
| `summary` | `string` | ✅ | [要約スキーマ](#summary-schema) を参照 |
| `description?` | `string` | ⬜ | 4-128 文字 |
| `endDate?` | `string` | ⬜ | [日付スキーマ](#date-schema) を参照 |
| `keywords?` | `string[]` | ⬜ | 各項目 1-32 文字 |
| `url?` | `string` | ⬜ | 有効な URL、最大 256 文字 |
#### PublicationItemSchema
単一の出版物、研究作業、または学術論文を検証します。
| 属性 | タイプ | 必須 | 検証ルール |
| -------------- | -------- | -- | ----------------------------- |
| `name` | `string` | ✅ | 2-128 文字 |
| `publisher` | `string` | ✅ | 2-128 文字 |
| `releaseDate?` | `string` | ⬜ | [日付スキーマ](#date-schema) を参照 |
| `summary?` | `string` | ⬜ | [要約スキーマ](#summary-schema) を参照 |
| `url?` | `string` | ⬜ | 有効な URL、最大 256 文字 |
#### ReferenceItemSchema
単一の専門推薦人または推薦を検証します。
| 属性 | タイプ | 必須 | 検証ルール |
| --------------- | -------- | -- | ----------------------------- |
| `name` | `string` | ✅ | 2-128 文字 |
| `summary` | `string` | ✅ | [要約スキーマ](#summary-schema) を参照 |
| `email?` | `string` | ⬜ | [メールスキーマ](#email-schema) を参照 |
| `phone?` | `string` | ⬜ | 有効な電話フォーマット |
| `relationship?` | `string` | ⬜ | 2-128 文字 |
#### SkillItemSchema
単一のスキル、能力、または技術的能力を検証します。
| 属性 | タイプ | 必須 | 検証ルール |
| ----------- | ----------------- | -- | -------------------------------------- |
| `level` | [`Level`](#level) | ✅ | 事前定義された[レベルオプション](#level) からである必要があります |
| `name` | `string` | ✅ | 2-128 文字 |
| `keywords?` | `string[]` | ⬜ | 各項目 1-32 文字 |
#### VolunteerItemSchema
単一のボランティア経験またはコミュニティサービスを検証します。
| 属性 | タイプ | 必須 | 検証ルール |
| -------------- | -------- | -- | ----------------------------- |
| `organization` | `string` | ✅ | 2-128 文字 |
| `position` | `string` | ✅ | 2-128 文字 |
| `startDate` | `string` | ✅ | [日付スキーマ](#date-schema) を参照 |
| `summary` | `string` | ✅ | [要約スキーマ](#summary-schema) を参照 |
| `endDate?` | `string` | ⬜ | [日付スキーマ](#date-schema) を参照 |
| `url?` | `string` | ⬜ | 有効な URL、最大 256 文字 |
#### WorkItemSchema
単一の職歴または雇用職位を検証します。
| 属性 | タイプ | 必須 | 検証ルール |
| ----------- | ---------- | -- | ----------------------------- |
| `name` | `string` | ✅ | 2-128 文字 |
| `position` | `string` | ✅ | 2-128 文字 |
| `startDate` | `string` | ✅ | [日付スキーマ](#date-schema) を参照 |
| `summary` | `string` | ✅ | [要約スキーマ](#summary-schema) を参照 |
| `endDate?` | `string` | ⬜ | [日付スキーマ](#date-schema) を参照 |
| `keywords?` | `string[]` | ⬜ | 各項目 1-32 文字 |
| `url?` | `string` | ⬜ | 有効な URL、最大 256 文字 |
### LocaleSchema
国際化とローカライゼーションのロケール設定を検証します。
| 属性 | タイプ | 必須 | 検証ルール |
| ----------- | ----------------------------------- | -- | --------------------------------------------------- |
| `language?` | [`LocaleLanguage`](#localelanguage) | ⬜ | 事前定義された[ロケール言語オプション](#locale-language) からである必要があります |
### LayoutsSchema
全体的なレイアウト検証設定を定義します。
| 属性 | タイプ | 必須 | 検証ルール |
| ----------- | --------------------------------------------------------------------------------------------------------------------------------------- | -- | ----------- |
| `layouts[]` | [`HtmlLayoutSchema`](#htmllayoutschema) \| [`LatexLayoutSchema`](#latexlayoutschema) \| [`MarkdownLayoutSchema`](#markdownlayoutschema) | ⬜ | レイアウト設定の配列。 |
#### 一般的なレイアウトスキーマ
##### MarginsSchema
文書レイアウトのマージン設定を検証します。
| 属性 | タイプ | 必須 | 検証ルール |
| --------- | -------- | -- | -------------------------------------- |
| `top?` | `string` | ⬜ | [マージンサイズスキーマ](#margin-size-schema) を参照 |
| `bottom?` | `string` | ⬜ | [マージンサイズスキーマ](#margin-size-schema) を参照 |
| `left?` | `string` | ⬜ | [マージンサイズスキーマ](#margin-size-schema) を参照 |
| `right?` | `string` | ⬜ | [マージンサイズスキーマ](#margin-size-schema) を参照 |
##### SectionsSchema
セクションのカスタマイズ設定を検証します。
| 属性 | タイプ | 必須 | 検証ルール |
| ---------- | --------------------------- | -- | -------------------------------------- |
| `aliases?` | `Record` | ⬜ | キーは有効なセクションID、値は文字列(2-128文字)でなければなりません |
| `order?` | `OrderableSectionID[]` | ⬜ | 有効な順序付け可能なセクションIDの配列 |
#### HtmlLayoutSchema
HTML レイアウト設定を検証します。
| 属性 | タイプ | 必須 |
| ------------- | ----------------------------------------------- | -- |
| `engine` | `'html'` | ✅ |
| `advanced?` | [`HtmlAdvancedSchema`](#htmladvancedschema) | ⬜ |
| `sections?` | [`SectionsSchema`](#sectionsschema) | ⬜ |
| `template?` | [`HtmlTemplateSchema`](#htmltemplateschema) | ⬜ |
| `typography?` | [`HtmlTypographySchema`](#htmltypographyschema) | ⬜ |
##### HtmlAdvancedSchema
高度な HTML レイアウト設定を検証します。
| 属性 | タイプ | 必須 | 検証ルール |
| -------------- | --------- | -- | ---------- |
| `showIcons?` | `boolean` | ⬜ | true/false |
| `title?` | `string` | ⬜ | - |
| `footer?` | `string` | ⬜ | - |
| `description?` | `string` | ⬜ | - |
| `keywords?` | `string` | ⬜ | - |
##### HtmlTemplateSchema
HTML テンプレート設定を検証します。
| 属性 | タイプ | 必須 | 検証ルール |
| ---------- | ------------------------------- | -- | ------------------------------------------------ |
| `template` | [`HtmlTemplate`](#htmltemplate) | ⬜ | 事前定義された[テンプレートオプション](#htmltemplate) からである必要があります |
##### HtmlTypographySchema
HTML タイポグラフィ設定を検証します。
| 属性 | タイプ | 必須 | 検証ルール |
| ------------- | ------------------------------- | -- | ------------------------------------------------- |
| `fontFamily?` | `string` | ⬜ | フォントファミリーのカンマ区切りリスト。 |
| `fontSize?` | [`HtmlFontSize`](#htmlfontsize) | ⬜ | 事前定義された[フォントサイズオプション](#htmlfontsize) からである必要があります |
#### LatexLayoutSchema
LaTeX 固有の設定オプションを検証します。
| 属性 | タイプ | 必須 | 検証ルール |
| ------------- | ------------------------------------------------- | -- | -------------------------------------------- |
| `advanced?` | [`LatexAdvancedSchema`](#latexadvancedschema) | ⬜ | [高度なスキーマ](#latexadvancedschema) を参照 |
| `engine` | `'latex'` | ✅ | "latex" でなければなりません |
| `page?` | [`LatexPageSchema`](#latexpageschema) | ⬜ | [ページスキーマ](#latexpageschema) を参照 |
| `sections?` | [`SectionsSchema`](#sectionsschema) | ⬜ | [セクションスキーマ](#sectionsschema) を参照 |
| `template?` | [`LatexTemplate`](#latextemplate) | ⬜ | 事前定義された[テンプレートオプション](#template) からである必要があります |
| `typography?` | [`LatexTypographySchema`](#latextypographyschema) | ⬜ | [タイポグラフィスキーマ](#latextypographyschema) を参照 |
##### LatexAdvancedSchema
LaTeX の高度な設定オプションを検証します。
| 属性 | タイプ | 必須 | 検証ルール |
| ------------ | ------------------------------------ | -- | -------------------------------------------------------- |
| `fontspec?` | `{ numbers?: LatexFontspecNumbers }` | ⬜ | 事前定義された[fontspec 数字オプション](#fontspecnumbers) からである必要があります |
| `showIcons?` | `boolean` | ⬜ | true/false |
##### LatexPageSchema
文書プレゼンテーションのページレベル設定を検証します。
| 属性 | タイプ | 必須 | 検証ルール |
| ------------------ | --------------------------------- | -- | -------------------------------------------- |
| `margins?` | [`MarginsSchema`](#marginsschema) | ⬜ | [マージンスキーマ](#marginsschema) を参照 |
| `paperSize?` | [`PaperSize`](#papersize) | ⬜ | 事前定義された[用紙サイズオプション](#papersize) からである必要があります |
| `showPageNumbers?` | `boolean` | ⬜ | true/false |
##### LatexTypographySchema
文書フォーマットのタイポグラフィ設定を検証します。
| 属性 | タイプ | 必須 | 検証ルール |
| ------------- | ------------------------- | -- | --------------------------------------------- |
| `fontSize?` | `string` | ⬜ | 事前定義された[フォントサイズオプション](#fontsize) からである必要があります |
| `fontFamily?` | `string` | ⬜ | フォントファミリーのカンマ区切りリスト。 |
| `links?` | `{ underline?: boolean }` | ⬜ | true/false |
#### MarkdownLayoutSchema
Markdown レイアウト設定を検証します。
| 属性 | タイプ | 必須 | 検証ルール |
| ----------- | ----------------------------------- | -- | -------------------------------- |
| `engine` | `'markdown'` | ✅ | "markdown" でなければなりません |
| `sections?` | [`SectionsSchema`](#sectionsschema) | ⬜ | [セクションスキーマ](#sectionsschema) を参照 |
## プリミティブ検証スキーマ
### メールスキーマ
厳格なフォーマット要件を使用してメールアドレスを検証します。
**検証ルール:**
* 有効なメール形式である必要があります
* パターン:`^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$`
* 例:`hi@ppresume.com`、`first.last@company.org`、`test+tag@domain.co.uk`
### 電話スキーマ
柔軟なフォーマットサポートを使用して電話番号を検証します。
**検証ルール:**
* パターン:`^[+]?[(]?[0-9\\s-]{1,15}[)]?[0-9\\s-]{1,15}$`
* 国コード、括弧、スペース、ハイフンを含む場合があります
* 例:`555-123-4567`、`+44 20 7946 0958`、`(555) 123-4567`
### 要約スキーマ
長さ制約を使用して要約テキストを検証します。
**検証ルール:**
* 16 から 1024 文字の間である必要があります
* 例:
* "5 年以上のフルスタック開発経験を持つソフトウェアエンジニア。"
* "ユーザーエクスペリエンスとモダンデザイン原則に情熱を持つクリエイティブデザイナー。"
* "時間と予算内で複雑なプロジェクトを配信する良好な記録を持つプロジェクトマネージャー。"
### URL スキーマ
長さ制約を使用して URL を検証します。
**検証ルール:**
* 有効な URL 形式である必要があります
* 最大長 256 文字
* 例:`https://yamlresume.dev`、`https://ppresume.com`、`https://github.com/yamlresume/yamlresume`
### キーワードスキーマ
単一項目制約を使用してキーワード配列を検証します。
**検証ルール:**
* 文字列配列
* 各キーワードは 1 から 32 文字の間である必要があります
* 例:`["Javascript", "React", "Typescript"]`、`["Design", "UI", "UX"]`
### 日付スキーマ
フォーマット要件を使用して日付文字列を検証します。
**検証ルール:**
* 4 から 32 文字の間である必要があります
* `Date.parse()` で解析可能である必要があります
* 例:`2025-01-01`、`Jul 2025`、`July 3, 2025`、`2025-02-02T00:00:03.123Z`
### マージンサイズスキーマ
単位要件を使用してマージンサイズ文字列を検証します。
**検証ルール:**
* 2 から 32 文字の間である必要があります
* パターン:`^\\d+(\\.\\d+)?(cm|pt|in)$`
* 有効な単位(cm、pt、in)が続く正数である必要があります
* 例:`2.5cm`、`1in`、`72pt`、`0.5cm`、`12pt`
## 列挙検証スキーマ
### 国
世界のすべての可能な国と地域のユニオンタイプ。
**検証ルール:**
* 事前定義された国オプションの 1 つである必要があります
* 例:`United States`、`China`、`United Kingdom`、`Germany`
### 学位
すべての可能な学位のユニオンタイプ。
**検証ルール:**
* 以下のいずれかである必要があります:`Associate`、`Bachelor`、`Diploma`、`Doctor`、`High School`、`Master`、`Middle School`
### 流暢度
すべての可能な言語流暢度のユニオンタイプ。
**検証ルール:**
* 以下のいずれかである必要があります:
* `Elementary Proficiency`
* `Full Professional Proficiency`
* `Limited Working Proficiency`
* `Minimum Professional Proficiency`
* `Native or Bilingual Proficiency`
### 言語
すべてのサポートされている言語のユニオンタイプ。
**検証ルール:**
* 事前定義された言語オプションの 1 つである必要があります
* 例:`English`、`Chinese`、`Spanish`、`French`、`German`
### レベル
すべての可能なスキル習熟度のユニオンタイプ。
**検証ルール:**
* 以下のいずれかである必要があります:`Advanced`、`Beginner`、`Expert`、`Intermediate`、`Master`、`Novice`
### ネットワーク
すべての可能なソーシャルネットワークオプションのユニオンタイプ。
**検証ルール:**
* 事前定義されたネットワークオプションの 1 つである必要があります
* 例:`GitHub`、`LinkedIn`、`Twitter`、`Facebook`、`Instagram`
### LatexTemplate
すべての可能なテンプレートオプションのユニオンタイプ。
**検証ルール:**
* 以下のいずれかである必要があります:`moderncv-banking`、`moderncv-casual`、`moderncv-classic`
* 以下のいずれかである必要があります:`moderncv-banking`、`moderncv-casual`、`moderncv-classic`
* 参照:[テンプレート](/ja/docs/layouts/latex/templates)
### HtmlFontSize
すべての可能な HTML フォントサイズオプションのユニオンタイプ。
**検証ルール:**
* 以下のいずれかである必要があります:`10px`、`11px`、`12px`、`13px`、`14px`、`15px`、`16px`、`17px`、`18px`、`19px`、`20px`、`21px`、`22px`、`23px`、`24px`
* HTML エンジンは 10px から 24px のフォントサイズをサポートします
* `16px` がデフォルトフォントサイズです
### HtmlTemplate
すべての可能な HTML テンプレートオプションのユニオンタイプ。
**検証ルール:**
* 以下のいずれかである必要があります:`calm`
* 参照:[テンプレート](/ja/docs/layouts/html/templates)
### LocaleLanguage
すべての可能なロケール言語のユニオンタイプ。
**検証ルール:**
* 以下のいずれかである必要があります:`en`、`es`、`zh-hans`、`zh-hant-hk`、`zh-hant-tw`
* 参照:[多言語](/ja/docs/locale)
### LatexFontspecNumbers
すべての可能な latex fontspec 数字オプションのユニオンタイプ。
**検証ルール:**
* 以下のいずれかである必要があります:
* `Auto` - 選択された `LocaleLanguage` に基づいてスタイルを自動決定することを許可(デフォルト)
* `Lining` - 標準のライニング数字(CJK 言語のデフォルト)
* `OldStyle` - 異なる高さのオールドスタイル数字(ラテン言語のデフォルト)
### LatexFontSize
すべての可能なフォントサイズオプションのユニオンタイプ。
**検証ルール:**
* 以下のいずれかである必要があります:`10pt`、`11pt`、`12pt`
* `10pt` がデフォルトフォントサイズです
### PaperSize
すべての可能な LaTeX 用紙サイズオプションのユニオンタイプ。
**検証ルール:**
* 以下のいずれかである必要があります:`a4`、`letter`
# HTML エンジン
URL: (/ja/docs/layouts/html)
HTML エンジンは、履歴書のクリーンでウェブ対応の HTML バージョンを生成します。これは
ウェブサイトに履歴書を埋め込んだり、オンラインで共有したり、
ウェブベースのポートフォリオを作成するのに特に便利です。
## 設定
HTML エンジンを使用するには、レイアウト設定で `engine: html` を指定してください。
```yaml
layouts:
- engine: html
template: calm
# ... その他のオプション
```
## セクション
`sections` オプションにより、セクションタイトルとその
順序をカスタマイズできます。詳細については [セクション文書](./sections) をご覧ください。
```yml lineNumbers
layouts:
- engine: html
sections:
aliases:
work: "Professional Experience"
education: "Education"
skills: "Skills"
order:
- basics
- work
- education
```
## テンプレート
`template` オプションにより、様々なテンプレートから選択できます。各
テンプレートには独特なデザインとレイアウトがあります。利用可能な
テンプレートのリストは [テンプレート文書](./html/templates) で確認できます。
```yml lineNumbers
layouts:
- engine: html
template: calm
```
## タイポグラフィ
`typography` オプションを使用すると、履歴書で使用されるフォントスタイルをカスタマイズできます。
### フォントサイズ
`fontSize` オプションを使用すると、ドキュメントの基本フォントサイズを設定できます。
HTML エンジンは `14px` から `20px` までのフォントサイズをサポートしています。
### フォントファミリー
`fontFamily` オプションを使用すると、フォントファミリー名や総称ファミリー名の優先順位付きリストを指定できます。
これは CSS の `font-family` プロパティとまったく同じように動作します。
```yaml
layouts:
- engine: html
typography:
fontSize: 16px
fontFamily: "Merriweather, serif"
```
## 高度な設定
`advanced` オプションにより、HTML エンジンの高度な設定を行うことができます。
```yml lineNumbers
layouts:
- engine: html
advanced:
showIcons: true
# HTML ドキュメントのカスタムタイトル。
title: "私のカスタム履歴書タイトル"
# HTML ドキュメントのカスタムフッター。
footer: "Generated by YAMLResume"
# HTML ドキュメントのメタ記述。
description: "SEO 用の履歴書の短い説明。"
# HTML ドキュメントのメタキーワード。
keywords: "履歴書, CV, yamlresume"
```
# LaTeX エンジン
URL: (/ja/docs/layouts/latex)
LaTeX エンジンは YAMLResume のコアエンジンであり、LaTeX テンプレートを使用して高品質でプロフェッショナルな外観の PDF 履歴書を作成するように設計されています。
## 設定
LaTeX エンジンを使用するには、レイアウト設定で `engine: latex` を指定してください。
```yaml
layouts:
- engine: latex
template: moderncv-banking
# ... その他のオプション
```
## ページ
`page` オプションにより、用紙サイズ、マージン、およびページ番号の表示など、ページ設定をカスタマイズできます。
```yml lineNumbers
layouts:
- engine: latex
page:
showPageNumbers: true
# a4 または letter
paperSize: a4
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
```
## セクション
`sections` オプションにより、セクションタイトルとその順序をカスタマイズできます。詳細については [セクション文書](./sections) をご覧ください。
```yml lineNumbers
layouts:
- engine: latex
sections:
aliases:
work: "Professional Experience"
education: "Education"
skills: "Skills"
order:
- basics
- work
- education
```
## テンプレート
`template` オプションにより、様々なテンプレートから選択できます。各テンプレートには独特なデザインとレイアウトがあります。利用可能なテンプレートのリストは [テンプレート文書](./latex/templates) で確認できます。
```yml lineNumbers
layouts:
- engine: latex
template: moderncv-banking
```
## タイポグラフィ
`typography` オプションを使用すると、履歴書で使用されるフォントスタイルをカスタマイズできます。
### フォントサイズ
`fontSize` オプションを使用すると、ドキュメントの基本フォントサイズを設定できます。
LaTeX エンジンは `10pt`、`11pt`、`12pt` のみをサポートしています。
### フォントファミリー
`fontFamily` オプションを使用すると、フォントファミリー名の優先順位付きリストを指定できます。
これは CSS の `font-family` プロパティと同様に機能します。
```yaml
layouts:
- engine: latex
typography:
fontSize: 11pt
fontFamily: "Merriweather, serif"
```
## 高度な設定
`advanced` オプションにより、LaTeX エンジンの高度な設定を行うことができます。
```yml lineNumbers
layouts:
- engine: latex
advanced:
showIcons: true
fontspec:
numbers: Lining
```
# Markdown エンジン
URL: (/ja/docs/layouts/markdown)
Markdown エンジンは、履歴書のプレーンな Markdown バージョンを生成します。これは、ATS(Applicant Tracking System)や PDF アップロードをサポートしていないフォームに履歴書の内容をコピー&ペーストする必要がある場合に特に便利です。
## 設定
Markdown エンジンを使用するには、レイアウト設定で `engine: markdown` を指定してください。
```yml
layouts:
- engine: markdown
```
Markdown 出力は、(LaTeX レイアウトも設定されている場合)PDF と一緒に生成されるか、またはスタンドアロンファイルとして生成されます。
[LaTeX レイアウト](./latex)とは異なり、Markdown レイアウトは[セクションエイリアス](/docs/layouts/sections/aliases)と[セクション並び替え](/docs/layouts/sections/reorder)以外の追加設定がないシンプルなレイアウトです。
```yml lineNumbers title="resume.yml"
---
content:
# ...
locale:
language: en
layouts:
- engine: markdown
sections:
aliases:
work: Professional Experience
education: Academic Background
skills: Technical Skills
order:
- basics
- work
- education
- skills
```
セクションの `aliases` と `order` は最終的な Markdown 出力に反映されます。
# エイリアス
URL: (/ja/docs/layouts/sections/aliases)
YAMLResume は[`location` と `profiles` を除く](#aliasable-sections)すべての履歴書セクションにデフォルトタイトルを提供し、これらのタイトルは選択された[ロケール言語](/zh-cn/docs/layouts#locale)に基づいて自動的に[翻訳](docs/locale)されます。しかし、プロフィールや業界により適したタイトルにカスタマイズしたい場合があります。`section aliases` 機能により、デフォルトのセクションタイトルを独自のカスタム名で上書きできます。
例えば、`work` セクションで「Work」ではなく「Professional Experience」を使用したり、`skills` セクションで「Skills」ではなく「Technical Proficiencies」を使用することを好むかもしれません。
## 使用方法
`resume.yml` ファイルの `layouts.[].sections` 設定でセクションエイリアスを定義できます。レイアウトに `sections` オブジェクトを追加し、その中に `aliases` マッピングを追加します。
`aliases` マッピングのキーは標準セクション ID で、値は使用したいカスタムタイトルです。
## 例
`work`、`education`、`skills` セクションのタイトルを変更する方法:
```yml lineNumbers title="resume.yml"
---
content:
# ...
layouts:
- engine: latex
sections:
aliases:
work: Professional Experience
education: Academic Background
skills: Technical Skills
```
この設定を使用して履歴書をビルドすると、生成される PDF は「Professional Experience」、「Academic Background」、「Technical Skills」をこれらのセクションのタイトルとして使用し、デフォルトまたはロケール固有の名前を上書きします。
セクションにエイリアスが提供されていない場合、YAMLResume は設定されたロケールのデフォルトタイトルにフォールバックします。
## エイリアス可能なセクション
以下のセクションにエイリアスを提供できます:
* `basics`
* `education`
* `work`
* `volunteer`
* `awards`
* `certificates`
* `publications`
* `skills`
* `languages`
* `interests`
* `references`
* `projects`
## 規則と制約
* エイリアスの長さは2文字から128文字の間でなければなりません。
# セクション
URL: (/ja/docs/layouts/sections)
YAMLResume は履歴書のセクションをカスタマイズするための柔軟なオプションを提供します。任意のセクションのタイトルを変更し、プロフェッショナルプロフィールに最も適したセクションを再配置できます。これらのカスタマイズは `resume.yml` ファイルの `layouts.[].sections` 設定で処理されます。
```yml lineNumbers title="resume.yml"
---
content:
# ...
layouts:
- engine: latex
sections:
aliases:
work: "Professional Experience"
education: "Academic Background"
skills: "Technical Skills"
order:
- work
- education
- awards
- volunteer
```
## 詳細情報
# 再配置
URL: (/ja/docs/layouts/sections/reorder)
デフォルトでは、YAMLResume は標準的な順序でセクションを配置します。しかし、カスタム `order` リストを提供することで、この設定を簡単に変更できます。これにより、最も重要な情報を最初に強調できます。
## 使用方法
例えば、「Skills」と「Projects」セクションを「Work」経験の前に配置したい場合、以下のように順序を定義できます:
```yml lineNumbers title="resume.yml"
---
content:
# ...
layouts:
- engine: latex
sections:
order:
- skills
- projects
- work
```
`order` リストに含まれるセクションは、指定した順序で最初に表示されます。リストに含まれていないセクションは、後でデフォルトの順序に従って追加されます。
## 例
### 仕事経験を優先
```yml lineNumbers
layouts:
- engine: latex
sections:
order:
- work
- education
```
結果:仕事経験が最初に表示され、次に教育、その後すべての他のセクションがデフォルトの順序で続きます。
### スキルと言語を強調
```yml lineNumbers
layouts:
- engine: latex
sections:
order:
- skills
- languages
- work
```
結果:スキルと言語が上部で強調表示され、次に仕事経験、その後残りのセクションが続きます。
### 学術重視
```yml lineNumbers
layouts:
- engine: latex
sections:
order:
- education
- publications
- awards
- certificates
```
結果:学術セクションが最初に表示され、その後他のセクションがデフォルトの順序で続きます。
## デフォルトセクション順序
カスタム順序が指定されていない場合、セクションは以下のデフォルト順序でレンダリングされます:
1. `basics`(デフォルトで履歴書の上部に要約セクションとしてレンダリング)
2. `education`
3. `work`
4. `languages`
5. `skills`
6. `awards`
7. `certificates`
8. `publications`
9. `references`
10. `projects`
11. `interests`
12. `volunteer`
## 実装詳細
* **優先順位**:`order` で指定されたセクションは指定されたシーケンスで最初に表示
* **フォールバック**:残りのセクションはデフォルトの順序で続く
* **重複除去**:順序配列内の重複セクションは除去される(最初の出現を保持)
* **空セクション**:コンテンツのないセクションは自動的にフィルタリングされる
* **柔軟性**:ユーザーは任意のソート可能セクションのサブセットを指定可能
## ソート可能なセクション
以下のセクションを再配置できます:
* `basics`
* `education`
* `work`
* `volunteer`
* `awards`
* `certificates`
* `publications`
* `skills`
* `languages`
* `interests`
* `references`
* `projects`
# Calm
URL: (/ja/docs/layouts/html/templates/calm)
## 実装
Calm は、moderncv LaTeX テンプレートに着想を得たクリーンでモダンな HTML テンプレートです。
セクションが明確に分離されたミニマリストなデザインと、
ウェブ閲覧用に最適化されたエレガントなレイアウトを特徴としています。
内部的には、テンプレートは以下を使用しています:
* **CSS リセット**:ブラウザ間で一貫したレンダリングのためのカスタムリセットスタイルシート
* **タイポグラフィ**:14px から 20px までカスタマイズ可能なフォントサイズ
* **レスポンシブデザイン**:異なる画面サイズに適応するクリーンなレイアウト
* **セマンティック HTML**:アクセシビリティと SEO を向上させる適切な HTML5 構造
## 設定
```yml lineNumbers title="resume.yml"
content:
# ...
layouts:
- engine: html
template: calm # [!code highlight]
typography:
fontSize: 16px
```
## 機能
* **クリーンなデザイン**:コンテンツの可読性に焦点を当てたミニマリストなレイアウト
* **モダンなタイポグラフィ**:カスタマイズ可能なサイズを持つプロフェッショナルなフォント
* **ウェブ対応**:ウェブサイトに直接埋め込むか、URL 経由で共有できます
* **印刷に適した**:ウェブブラウザから PDF への印刷用に最適化
* **カスタマイズ可能なセクション**:柔軟なセクションの順序と命名
## プレビュー
Calm テンプレートは、様々な
業界や経験レベルに適したプロフェッショナルな外観を提供します。そのクリーンなデザインにより、コンテンツが
視覚的魅力を維持しながら中心となることを保証します。
# テンプレート
URL: (/ja/docs/layouts/html/templates)
YAMLResume は HTML テンプレートをすぐに使えるように提供しており、`yamlresume templates list` コマンドで
すべてのテンプレートをリストできます。
```console
$ yamlresume templates list
| layouts.[].template | Engine | Template Name | Description |
| ------------------- | ------ | ---------------- | ------------------------------------------------- |
| moderncv-banking | latex | ModernCV Banking | ModernCV template with banking style |
| moderncv-casual | latex | ModernCV Casual | ModernCV template with casual style |
| moderncv-classic | latex | ModernCV Classic | ModernCV template with classic style |
| calm | html | Calm | Clean and minimalist design suitable for all professionals. |
| vscode | html | VS Code | Dark theme inspired by Visual Studio Code, tailored for developers. |
```
デフォルトでは、YAMLResume は HTML 出力に [calm](./templates/calm) テンプレートを使用します。
YAML 履歴書で `layouts.[].template` を設定することでテンプレートを変更できます。
```yml lineNumbers title="resume.yml"
content:
# ...
layouts:
- engine: html
# ...
template: calm # [!code highlight]
# ...
```
詳細については、以下のテンプレートをご覧ください:
# VS Code
URL: (/ja/docs/layouts/html/templates/vscode)
## 実装
VS Codeは、Visual Studio Codeの「Dark+」カラースキームにインスパイアされたダークテーマです。開発者、ソフトウェアエンジニア、および技術専門家が、自分の履歴書にコーディング環境を反映させるために特別に調整されています。
このテンプレートは「コードとしての履歴書(Resume as Code)」の美学を採用しており、プロフィールのさまざまな部分をコード要素として扱います:
* **氏名**: `class`として装飾(例:`class JohnDoe {`)
* **見出し**: コードコメントとしてレンダリング(例:`// Full Stack Engineer`)
* **セクション**: 関数呼び出しとして表現(例:`experience()`)
* **スキル/言語**: オブジェクトのプロパティキーとしてスタイル設定(例:`JavaScript: Expert`)
内部的には、以下の仕組みを使用しています:
* **タイポグラフィ**: 本物のIDEの感触を出すために、等幅フォントスタック(`Consolas`, `Monaco`, `Courier New`, `monospace`)を使用
* **構文ハイライト**: キーワード、文字列、クラス、関数にVS Code Dark+の公式カラーパレットを使用
* **レイアウトのインデント**: 各セクションのスコープを視覚的に表現するために、垂直方向のインデントガイド(border-left)を導入
## 設定
```yml lineNumbers title="resume.yml"
content:
# ...
layouts:
- engine: html
template: vscode # [!code highlight]
typography:
fontSize: 16px
```
## 特徴
* **開発者中心**: 技術的な習熟度とコーディングへの情熱を伝えるのに最適
* **デフォルトでダークモード**: コントラストが高く、目に優しいダークテーマ
* **コードのような構造**: 技術的な履歴書を際立たせるユニークな視覚的メタファー
* **レスポンシブ**: デスクトップとモバイルの両方のブラウジングに完全に適応し、一貫したコードセマンティクスを維持
* **構文スタイリング**: 使い慣れたIDEのカラーを使用して、役割、日付、説明を区別
## プレビュー
VS Codeテンプレートは、技術系リクルーターや採用担当者の目に留まる、独特でモダンな外観を提供します。あなたのキャリアの歴史を、クリーンで読みやすく、視覚的に馴染みのある「ソースファイル」へと変換します。
# テンプレート
URL: (/ja/docs/layouts/latex/templates)
YAMLResume は、すぐに使えるいくつかのテンプレートを提供しており、`yamlresume templates list` コマンドですべてのテンプレートをリストできます。
```console
$ yamlresume templates list
| `layouts.[].template` | `Engine` | `Template Name` | `Description` |
| --------------------- | -------- | ------------------ | -------------------------------------- |
| `moderncv-banking` | `latex` | `ModernCV Banking` | `ModernCV template with banking style` |
| `moderncv-casual` | `latex` | `ModernCV Casual` | `ModernCV template with casual style` |
| `moderncv-classic` | `latex` | `ModernCV Classic` | `ModernCV template with classic style` |
```
デフォルトでは、YAMLResume は [moderncv-banking](./moderncv-banking) テンプレートを使用します。YAML 履歴書で `layouts.[].template` を設定することで、テンプレートを変更できます。
```yml lineNumbers title="resume.yml"
content:
# ...
layouts:
- engine: latex
# ...
template: moderncv-classic # [!code highlight]
# ...
```
詳細は以下のテンプレートをご覧ください:
# Moderncv Banking
URL: (/ja/docs/layouts/latex/templates/moderncv-banking)
## 実装
Moderncv banking は [xdanaux/moderncv](https://github.com/xdanaux/moderncv) ベースの現代的で簡潔な履歴書テンプレートです。
基盤では、以下のコードを LaTeX プリアンブルとして使用しています:
```latex lineNumbers
\documentclass[a4paper, serif, 11pt]{moderncv}
%% moderncv
% style and color
\moderncvstyle{banking}
\moderncvcolor{black}
% needed by moderncv for showing icons
\usepackage{fontawesome5}
```
moderncv banking スタイルでは、CJK との連携のために特別な句読点処理も採用しています。
技術的には、英語と中国語には異なるコロンがあります。英語のコロンは `:` で Unicode は `U+003A`、中国語のコロンは `:` で Unicode は `U+FF1A` です。そのため、履歴書の言語が中国語の場合、いくつかの魔法の LaTeX マクロをオーバーライドして moderncv に中国語コロンを採用します:
```latex lineNumbers
% renew moderncv command to adapt for CJK colon
\renewcommand*{\cvitem}[3][.25em]{%
\ifstrempty{#2}{}{\hintstyle{#2}<= &templateTranslations.punctuations.Colon =>}{#3}%
\par\addvspace{#1}}
\renewcommand*{\cvitemwithcomment}[4][.25em]{%
\savebox{\cvitemwithcommentmainbox}{\ifstrempty{#2}{}{\hintstyle{#2}<= &templateTranslations.punctuations.Colon =>}#3}%
\setlength{\cvitemwithcommentmainlength}{\widthof{\usebox{\cvitemwithcommentmainbox}}}%
\setlength{\cvitemwithcommentcommentlength}{\maincolumnwidth-\separatorcolumnwidth-\cvitemwithcommentmainlength}%
\begin{minipage}[t]{\cvitemwithcommentmainlength}\usebox{\cvitemwithcommentmainbox}\end{minipage}%
\hfill% fill of \separatorcolumnwidth
\begin{minipage}[t]{\cvitemwithcommentcommentlength}\raggedleft\small\itshape#4\end{minipage}%
\par\addvspace{#1}}
```
詳細については、私たちのブログ[記事](https://blog.ppresume.com/posts/multi-languagues-support#colon)をご覧ください。
## プレビュー
# Moderncv Casual
URL: (/ja/docs/layouts/latex/templates/moderncv-casual)
## 実装
Moderncv casual は [xdanaux/moderncv](https://github.com/xdanaux/moderncv) ベースの現代的でカジュアルな履歴書テンプレートです。
基盤では、以下のコードを LaTeX プリアンブルとして使用しています:
```latex lineNumbers
\documentclass[a4paper, serif, 11pt]{moderncv}
%% moderncv
% style and color
\moderncvstyle{casual}
\moderncvcolor{black}
% needed by moderncv for showing icons
\usepackage{fontawesome5}
```
## プレビュー
# Moderncv Classic
URL: (/ja/docs/layouts/latex/templates/moderncv-classic)
## 実装
Moderncv classic は [xdanaux/moderncv](https://github.com/xdanaux/moderncv) ベースの現代的でクラシックな履歴書テンプレートです。
基盤では、以下のコードを LaTeX プリアンブルとして使用しています:
```latex lineNumbers
\documentclass[a4paper, serif, 11pt]{moderncv}
%% moderncv
% style and color
\moderncvstyle{classic}
\moderncvcolor{black}
% needed by moderncv for showing icons
\usepackage{fontawesome5}
```
## プレビュー
# CLI
URL: (/es/docs/cli)
YAMLResume proporciona una herramienta CLI para ayudarte a gestionar tu
currículum. Puedes seguir la [guía de instalación](/docs/installation) para
instalarla.
Ten en cuenta que tenemos una [imagen de docker](/docs/installation#docker-users)
para ti, que tiene el CLI de `yamlresume` instalado con todas las
dependencias necesarias.
Para cada subcomando en esta guía, puedes ejecutarlo en docker agregando el
subcomando después de `yamlresume/yamlresume`.
Por ejemplo, para crear un nuevo currículum en el CLI de yamlresume:
```sh
yamlresume new my-resume.yml
```
También puedes ejecutarlo en docker mediante:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
```
## Help
Mostrar ayuda del CLI y todos los comandos disponibles:
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build a resume on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
Mostrar versión del CLI de YAMLResume:
```console
$ yamlresume -V
0.5.0
```
## New
Crear un nuevo currículum. El nombre de archivo predeterminado del currículum es
`resume.yml`, pero puedes especificar un nombre de archivo personalizado:
```console
$ yamlresume new --help
Usage: yamlresume new [options] [filename]
create a new resume
Arguments:
filename output filename (default: "resume.yml")
Options:
-h, --help display help for command
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
## Build
Construir un currículum de YAML a PDF. Generará el código latex y el PDF al
mismo tiempo, con algunos archivos intermedios `.aux`, `.log`, etc., si usas
[XeTeX](/docs/installation#xetex) como motor de composición.
```console
$ yamlresume build --help
Usage: yamlresume build [options]
build a resume to LaTeX and PDF
Arguments:
resume-path the resume file path
Options:
--no-pdf only generate TeX file without PDF
--no-validate skip resume schema validation
-h, --help display help for command
$ yamlresume build my-resume.yml
◐ Generating resume PDF file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume PDF file successfully.
```
### `--no-pdf`
Si solo quieres generar el archivo LaTeX sin PDF, puedes usar la opción
`--no-pdf`.
```console
$ yamlresume build --no-pdf my-resume.yml
```
### `--no-validate`
Si quieres omitir la validación del esquema del currículum, puedes usar la
opción `--no-validate`.
```console
$ yamlresume build --no-validate my-resume.yml
```
## Dev
Construir un currículum de YAML a PDF en cambios de archivo. Acepta las mismas
opciones que [`build`](#build) sin embargo reconstruirá automáticamente el
currículum cuando el archivo YAML cambie (es decir, modo vigilancia). Esto sería
muy conveniente para que puedas previsualizar los cambios de tu currículum en
tiempo real.
```console
$ yamlresume dev --help
Usage: yamlresume dev [options]
build a resume on file changes (watch mode)
Arguments:
resume-path the resume file path
Options:
--no-pdf only generate TeX file without PDF
--no-validate skip resume schema validation
-h, --help display help for command
```
## Validate
Validar un currículum contra el [esquema](/docs/compiler/schema) de YAMLResume.
```console
$ yamlresume validate --help
Usage: yamlresume validate [options]
validate a resume against the YAMLResume schema
Arguments:
resume-path the resume file path
Options:
-h, --help display help for command
```
Por ejemplo, para el siguiente currículum:
```yml lineNumbers
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
---
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@pp
url: https://ppresume.com/gallery
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
region: California
city: S
country: United States
postalCode: "95814"
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
startDate: Sep 1, 2016
endDate:
courses:
- D
- Programming Language Concepts
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
layouts:
- engine: latex
typography:
fontSize: 13pt
```
`yamlresume validate` te dará una lista de errores potenciales, con información
posicional clara
```console
$ yamlresume validate my-resume.yml
invalid-resume.yml:9:12: warning: email is invalid.
email: hi@pp
^
invalid-resume.yml:19:11: warning: city should be 2 characters or more.
city: S
^
invalid-resume.yml:31:11: warning: courses should be 2 characters or more.
- D
^
invalid-resume.yml:41:17: warning: font size option is invalid, it must be one of the following: ["10pt", "11pt", "12pt"]
fontSize: 13pt
^
✖ Resume validation failed.
```
## Languages
Listar todos los idiomas disponibles. El código de idioma sigue la
especificación en [ISO 639
specification](https://www.iso.org/iso-639-language-code). Puedes especificar el
código de idioma en `locale.language` para cambiar el idioma de tu
currículum. Cambiar el idioma de tu currículum traducirá automáticamente todos
los términos fijos. Puedes verificar más detalles en nuestra sección [content ->
multi languages](/docs/locale).
```console
$ yamlresume languages list
| locale.language | Language Name | 1:03:48 PM
| --------------- | ------------------------------- |
| en | English |
| zh-hans | Simplified Chinese |
| zh-hant-hk | Traditional Chinese (Hong Kong) |
| zh-hant-tw | Traditional Chinese (Taiwan) |
| es | Spanish |
| fr | French |
| no | Norwegian |
| nl | Dutch |
| ja | Japanese |
| de | German |
```
## Templates
Listar todas las plantillas disponibles. Puedes cambiar la plantilla del
currículum configurando `layouts.[].template` en tu currículum YAML. [PPResume
Templates](https://docs.ppresume.com/typesetting/templates) para más detalles.
```console
$ yamlresume templates list
| `layouts.[].template` | `Engine` | `Template Name` | `Description` |
| --------------------- | -------- | ------------------ | -------------------------------------- |
| `moderncv-banking` | `latex` | `ModernCV Banking` | `ModernCV template with banking style` |
| `moderncv-casual` | `latex` | `ModernCV Casual` | `ModernCV template with casual style` |
| `moderncv-classic` | `latex` | `ModernCV Classic` | `ModernCV template with classic style` |
```
# Comparaciones
URL: (/es/docs/comparisons)
## JSON Resume
[JSON Resume](https://jsonresume.org) es un pionero en la construcción de un
estándar abierto para un formato de datos estructurados para currículums. Su
primer [lanzamiento oficial](https://jsonresume.org/blog/first-official-release)
fue el 31 de julio de 2014, hace más de 10 años.
De su sitio web oficial:
````markdown
## Orígenes y Conceptualización
JSON Resume fue concebido como una solución al panorama fragmentado e
inconsistente de formatos de currículum. Los currículums tradicionales,
típicamente creados en formatos como Microsoft Word o PDF, a menudo sufren de
problemas de compatibilidad cuando son analizados por diferentes sistemas.
Reconociendo este problema, Thomas Davis y Roland Sharp iniciaron JSON Resume
como un proyecto de código abierto para crear un formato universal y legible por
máquina para currículums.
## Hitos de Desarrollo
El proyecto comenzó a ganar impulso a principios de la década de 2010, con hitos
significativos como la creación del esquema JSON Resume, el desarrollo de las
primeras herramientas CLI, y el establecimiento del registro JSON Resume. Estos
hitos fueron impulsados por contribuciones de la comunidad y el creciente
reconocimiento de la necesidad de un formato de currículum estandarizado en la
industria tecnológica. ```
JSON Resume hizo un excelente trabajo en la construcción de un estándar abierto
para un formato de datos estructurados para currículums. Sin embargo, carece de
algunas características que YAMLResume tiene.
YAMLResume está altamente inspirado por [JSON Resume](https://jsonresume.org/),
y es más opinado en algunos aspectos. Por ejemplo, JSON Resume no dice nada
sobre cómo convertir los datos legibles por máquina en un currículum hermoso y
legible por humanos.
Aquí hay algunas diferencias notables:
| Característica | YAMLResume | JSON Resume |
| ------------------------- | ------------------------ | ------------------------ |
| Formato de Datos | YAML | JSON |
| Estructura de Datos | Todos objetos nivel raíz | Algunos objetos anidados |
| Motor de Composición | LaTeX | Ninguno |
| Especificación Diseño | Integrada | No especificada |
| Soporte Texto Enriquecido | Sí | No |
Vamos a ofrecer una herramienta para importar JSON Resume a YAMLResume en el
futuro.
````
# Inicio Rápido
URL: (/es/docs)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
import { Step, Steps } from "fumadocs-ui/components/steps";
## Introducción
Crear un currículum puede no ser difícil, pero definitivamente es un proceso
aburrido, largo y tedioso.
Con YAMLResume, puedes crear y controlar versiones de tus currículums con YAML y
crear PDFs perfectos a nivel de píxel con diseño y composición profesional en un
instante.
YAMLResume es el motor central de [PPResume](https://ppresume.com), un
constructor basado en LaTeX. Ha ayudado a [miles de
personas](https://blog.ppresume.com/posts/2024-recap) alrededor del mundo a
crear currículums perfectos a nivel de píxel y de aspecto profesional y
conseguir sus trabajos soñados. Aquí decidimos hacer de código abierto el motor,
para dar a las personas el derecho y la libertad de decir [no al bloqueo de
proveedor](https://blog.ppresume.com/posts/no-vendor-lock-in)
## Empezando
### Usuarios de Docker
Si eres un usuario de docker, estás de suerte, tenemos una [imagen de
docker](https://hub.docker.com/r/yamlresume/yamlresume) para ti, que tiene
[yamlresume cli](https://www.npmjs.com/package/yamlresume) instalado con todas
sus dependencias, como [XeTeX](https://www.tug.org/xetex/) y algunas [fuentes
recomendadas](/docs/installation#font).
Puedes simplemente crear un nuevo currículum con el siguiente comando:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
```
Edita \`my-resume.yml\` en consecuencia y luego construye el currículum de yaml
a pdf:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
```
### Usuarios de macOS
Asumamos que estás usando macOS con [Homebrew](https://brew.sh/) como gestor de
paquetes. Si no es así, por favor consulta la guía de
[Instalación](/docs/installation) para instrucciones detalladas para tu sistema
operativo.
#### Instalar Node.js
Necesitas [instalar
Node.js](https://nodejs.org/en/download/package-manager/all#macos) 20.x o
más reciente.
```sh
brew install node
```
#### Instalar Motor de Composición
YAMLResume necesita un [motor de
composición](/docs/installation#typesetting-engine) para generar PDF.
Actualmente soporta dos motores de composición:
* [XeTeX](/docs/installation#xetex)
* [Tectonic](/docs/installation#tectonic)
<>
```sh
brew install mactex
```
```sh
brew install tectonic
```
>
#### Instalar YAMLResume
Instalar \`yamlresume\` es muy fácil. Puedes instalarlo usando tu gestor de
paquetes Node.js favorito:
<>
```sh
npm install -g yamlresume
```
```sh
pnpm add -g yamlresume
```
```sh
yarn global add yamlresume
```
```sh
bun add -g yamlresume
```
>
También puedes instalar [`yamlresume` vía
Homebrew](http://formulae.brew.sh/formula/yamlresume):
```sh
brew install yamlresume
```
Verifica que \`yamlresume\` se instaló exitosamente:
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build a resume on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
#### \[Opcional] Instalar Fuentes
##### Fuente Linux Libertine
También recomendamos instalar la [fuente Linux
Libertine](/docs/installation#linux-libertine) para la mejor salida PDF de
aspecto, pero esto es opcional.
```sh
brew install font-linux-libertine
```
##### Fuentes Noto
Si necesitas crear un currículum CJK (Chino, Japonés, Coreano), recomendamos que
instales la [fuente Noto](https://fonts.google.com/noto):
```sh
brew install font-noto-sans-cjk font-noto-serif-cjk
```
#### Crea Tu Primer Currículum YAML
OK, tenemos todo listo, ahora podemos crear un currículum yaml con
`yamlresume new`:
```console
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
Edita `resume.yml` en consecuencia, luego puedes generar un PDF con `yamlresume
build`:
```console
$ yamlresume build my-resume.yml
◐ Generating resume PDF file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resumep PDF file successfully.
```
También puedes usar `yamlresume dev` para construir el currículum ante cambios en el archivo:
```console
$ yamlresume dev my-resume.yml
◐ Generating resume PDF file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume PDF file successfully.
◐ Watching file changes: my-resume.yml...
```
Aquí está el código YAML completo para un currículum de muestra de dos páginas, adaptado para un
[ingeniero de software](https://github.com/yamlresume/yamlresume/blob/main/packages/cli/resources/resume.yml):
```yml lineNumbers
---
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@ppresume.com
url: https://ppresume.com/gallery
# All summary fields supports a limited rich text capabilities in markdown
# syntax:
#
# - bold, (e.g, `**bold**`)
# - italic, (e.g, `*italic*`)
# - ordered list, unordored list and nested sub list
# - links (e.g. `[link](https://ppresume.com)`)
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
city: Sacramento
region: California
country: United States
postalCode: "95814"
profiles:
- network: Line
url: https://line.com/PPResumeX
username: PPResumeX
- network: Twitter
url: https://twitter.com/PPResumeX
username: PPResumeX
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
# Valid degree options:
#
# - 'Middle School'
# - 'High School'
# - 'Diploma'
# - 'Associate'
# - 'Bachelor'
# - 'Master'
# - 'Doctor'
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
# Should be a valid date string that can be parsed by `new Date(dateStr)`
# in JavaScript, eg. '2020-01', '2020-02-03', 'Jul 1, 2023' etc.
#
# The date part would be removed in the final output as most of the time
# people won't really care about the exact date for your working
# experience or education background, etc.
# ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/Date
startDate: Sep 1, 2016
# Leave endDate blank to indicate "Present"
endDate: Jul 1, 2020
courses:
- Discrete Methods in Computer Science
- Programming Language Concepts
- Data Structures and Object-Oriented Design
- Operating Systems
- Computer Architecture
- Database Systems
- Computer Networking
- Introduction to the Theory of Computing
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
work:
- name: PPResume
url: https://ppresume.com
startDate: Dec 1, 2022
endDate: ""
position: Senior Software Engineer
summary: |
- Developed and implemented efficient and scalable code, ensuring high-quality and maintainable web applications
- Collaborated with cross-functional teams to gather project requirements and translate them into technical solutions
- Conducted thorough testing and debugging to identify and resolve any issues or bugs in the software
- Actively participated in code reviews, providing valuable feedback to improve code quality and adherence to best practices
- Mentored and guided junior developers, fostering a collaborative and growth-oriented team environment
keywords:
- Scalibility
- Growth
- Quality
- Mentorship
- name: PPResume
url: https://ppresume.com
startDate: Sep 1, 2020
endDate: Dec 1, 2022
position: Software Engineer
summary: |
- Created reusable React components to ensure code efficiency and maintainability
- Integrated with RESTful APIs to fetch and display dynamic data on the frontend
- Implemented client-side routing using React Router for smooth navigation between pages
- Actively participated in Agile development methodologies, attending daily stand-up meetings and sprint planning sessions
keywords:
- RESTful
- React
- Agile
languages:
# Valid language fluency options:
#
# - 'Elementary Proficiency'
# - 'Limited Working Proficiency'
# - 'Minimum Professional Proficiency'
# - 'Full Professional Proficiency'
# - 'Native or Bilingual Proficiency'
- language: English
fluency: Native or Bilingual Proficiency
keywords:
- TOEFL 110
- IELTS 7.5
- language: Chinese
fluency: Elementary Proficiency
keywords: []
skills:
# Valid skill level options:
#
# - 'Novice'
# - 'Beginner'
# - 'Intermediate'
# - 'Advanced'
# - 'Expert'
# - 'Master'
- name: Web Development
level: Expert
keywords:
- Python
- Ruby
- CSS
- React
- JavaScript
- name: DevOps
level: Intermediate
keywords:
- Python
- Kubernetes
- Docker
- Shell
- Ansible
- name: Design
level: Intermediate
keywords:
- Sketch
- Figma
- Photoshop
awards:
- title: Dean's List
awarder: University of Southern California
date: Oct 2016
summary: |
Awarded to students who achieve a high academic standing by maintaining a specified grade point average (GPA) during a semester.
certificates:
- name: AWS Certified Developer - Associate
url: https://aws.amazon.com/certification/
issuer: AWS
date: Mar 2021
publications:
- publisher: ACM Transactions on Interactive Intelligent Systems
url: https://dl.acm.org/journal/tiis
name: Enhancing Human-Computer Interaction through Augmented Reality
releaseDate: Dec 2017
summary: |
- Explores the potential of augmented reality (AR) in improving interaction between humans and computers
- Highlights benefits of AR in various areas such as gaming, education, healthcare, and design
- Discusses challenges and future directions of AR technology in enhancing user experience
references:
- name: Dr. Amanda Reynolds
phone: "(555) 123-4567"
relationship: Computer Science Professor
email: amanda.reynolds@usc.edu
summary: |
Andy Dufresne shows exceptional problem-solving skills and a solid understanding of programming concepts, he would bring immense value to any team or organization he becomes a part of.
projects:
- name: EduWeb
url: https://www.eduweb.xyz/
description: A web-based educational platform for interactive learning
startDate: Sep 2016
endDate: Dec 2016
summary: |
- Designed to enhance online learning experiences
- Facilitates students' engagement and collaboration through interactive features and user-friendly interface
- Offers a wide range of courses across various subjects
- Aims to improve the way students learn through the power of the web
keywords:
- Education
- Online Learning
- HCI
interests:
- name: Sports
keywords:
- Soccer
- Swimming
- Bicycling
- Hiking
- name: Music
keywords:
- Piano
- Guitar
volunteer:
- organization: USC Computer Science and Engineering Society
url: https://www.usccsesociety.org/
position: Tech Mentor
startDate: Sep 2015
endDate: Jul 2023
summary: |
- Volunteered as a Tech Mentor at USC Computer Science and Engineering Society
- Provided guidance and assistance to fellow students in their technical projects and coursework
- Assisted in organizing workshops, coding competitions, and networking events for the society members
- Contributed to fostering a collaborative and supportive environment within the student community
locale:
# Use `yamlresume languages list` to get the list of supported languages
language: en
layouts:
- engine: latex
page:
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
showPageNumbers: true
# Use `yamlresume templates list` to get the list of available templates
template: moderncv-banking
typography:
# LaTeX engine only supports 10pt, 11pt, and 12pt
fontSize: 11pt
- engine: markdown
```
Aquí están las capturas de pantalla del [PDF
generado](https://github.com/yamlresume/yamlresume/blob/main/packages/cli/resources/resume.pdf):
Puedes consultar [Galería de PPResume](https://ppresume.com/gallery) para más
ejemplos, con soporte para diferentes
[plantillas](https://ppresume.com/gallery/templates) y [múltiples
idiomas](https://ppresume.com/gallery/languages).
## Aprende Más
# Instalación
URL: (/es/docs/installation)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
YAMLResume es una herramienta de Node.js, bajo el capó, transforma tus currículums del formato YAML a código LaTeX y luego llama a un motor de composición tipográfica LaTeX para compilar el código LaTeX generado a PDF. Además, para obtener una salida PDF óptima, también sugerimos instalar algunas fuentes. En resumen, necesitas instalar lo siguiente para comenzar con YAMLResume:
* Node.js
* [paquete yamlresume](https://www.npmjs.com/package/yamlresume)
* un motor de composición tipográfica
* \[opcional] algunas fuentes
Esto suena un poco complicado, pero no te preocupes, te cubrimos.
## Usuarios de Docker
Si eres usuario de docker, estás de suerte, tenemos una [imagen de docker](https://hub.docker.com/r/yamlresume/yamlresume) para ti. Esta imagen tiene todo pre-empaquetado, incluyendo:
* [Node.js](/docs/installation#nodejs)
* [CLI de yamlresume](/docs/installation#yamlresume)
* [XeTeX](/docs/installation#xetex)
* [algunas fuentes recomendadas](/docs/installation#font)
Puedes crear un nuevo currículum instantáneamente con el siguiente comando:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
```
Este comando creará un nuevo currículum llamado `my-resume.yml` en tu directorio actual. Pasos:
1. `docker run ... yamlresume/yamlresume` - ejecuta un nuevo contenedor desde la imagen `yamlresume/yamlresume`, si esta imagen no existe en tu máquina local, la descargará desde [Docker Hub](https://hub.docker.com/r/yamlresume/yamlresume).
2. `--rm` - elimina automáticamente el contenedor cuando sale
3. `-v $(pwd):/home/yamlresume` - monta el directorio actual (`$(pwd)`) en el contenedor en `/home/yamlresume`, permitiendo al contenedor acceder a archivos locales
4. `new my-resume.yml` - ejecuta el subcomando [new](/docs/cli#new) del CLI de yamlresume para crear un nuevo currículum con el nombre de archivo `my-resume.yml`
Edita `my-resume.yml` en consecuencia y luego construye el currículum de yaml a pdf:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
```
Básicamente, puedes llamar a todos los [subcomandos del CLI](/cli) de `yamlresume` de esta manera—simplemente agrega el subcomando después de `yamlresume/yamlresume` y luego sigue la guía de uso correspondiente.
La bandera `-v` aquí es bastante importante porque monta el directorio actual (`$(pwd)`) en el contenedor en `/home/yamlresume`, permitiendo una sincronización de archivos bidireccional entre el directorio local y el contenedor.
Si tienes problemas para descargar la imagen `yamlresume/yamlresume` desde [Docker Hub](https://hub.docker.com/r/yamlresume/yamlresume), no te preocupes, tenemos un [espejo de github](https://github.com/yamlresume/yamlresume/pkgs/container/yamlresume) para ti.
Puedes obtener la [imagen ghcr](https://github.com/yamlresume/yamlresume/pkgs/container/yamlresume) mediante:
```sh
docker pull ghcr.io/yamlresume/yamlresume
```
### Problemas de Permisos
A veces puedes encontrar [problemas de permisos](https://github.com/yamlresume/yamlresume/issues/24) al ejecutar el contenedor Docker porque la imagen `yamlresume/yamlresume` está construida con una instrucción `USER yamlresume`, que por defecto se ejecuta con menos privilegios.
Hay dos formas de resolver este problema:
1. Usa tu nombre de usuario/ID de grupo del host para ejecutar el contenedor:
```sh
docker run --rm -v $(pwd):/home/yamlresume -u $(id -u):$(id -g) yamlresume/yamlresume new my-resume.yml
```
Esta es la forma recomendada de ejecutar el contenedor. Siempre que tu usuario host tenga acceso al directorio actual, puedes ejecutar el contenedor con tu nombre de usuario/ID de grupo del host.
2. Usa `-u root` para ejecutar el contenedor con acceso root:
```sh
docker run --rm -v $(pwd):/home/yamlresume -u root yamlresume/yamlresume new my-resume.yml
```
Esta es la forma menos recomendada de ejecutar el contenedor. No se recomienda porque puede causar problemas de seguridad, por lo que solo debes hacer esto si estás seguro de lo que estás haciendo.
Por último, pero no menos importante, si estás ejecutando el contenedor Docker `yamlresume` en GitHub Actions, entonces el acceso root puede ser requerido según la [documentación de GitHub](https://docs.github.com/en/actions/reference/runners/github-hosted-runners#docker-container-filesystem):
> Nota: GitHub Actions debe ser ejecutado por el usuario Docker predeterminado (root). Asegúrate de que tu Dockerfile no establezca la instrucción USER, de lo contrario no podrás acceder a GITHUB\_WORKSPACE.
Ref: [Entendiendo la Instrucción USER de Docker](https://www.docker.com/blog/understanding-the-docker-user-instruction/)
## Usuarios No-Docker
Si no eres un usuario de docker, sigue las instrucciones apropiadas a continuación para instalar el CLI de yamlresume y todas las dependencias necesarias según tu sistema operativo. Al momento de escribir esto, nuestra guía cubre macOS, Windows y algunas distribuciones de Linux (Ubuntu y distribuciones basadas en RHEL).
### Node.js
Se requiere Node.js 20.x o posterior.
Teóricamente `yamlresume` debería funcionar con Node.js 18, sin embargo, se recomienda encarecidamente usar Node.js 20 o posterior porque Node.js 18 LTS está programado para llegar al final de su vida útil el [30 de abril de 2025](https://nodejs.org/en/blog/release/v18.20.8).
Puede haber más de 100 métodos para instalar Node.js en diferentes sistemas operativos, puedes consultar la [Descarga oficial de Node.js](https://nodejs.org/en/download) para comenzar.
Recomendamos usar un [gestor de paquetes](https://nodejs.org/en/download/package-manager/all) para instalar Node.js.
Para usuarios de [Homebrew](https://brew.sh/):
```sh
brew install node
```
Para usuarios de [Chocolatey](https://chocolatey.org/):
```sh
choco install nodejs.install
```
Para Ubuntu 24.10 o posterior:
```sh
sudo apt install nodejs
```
Para Ubuntu 24.04 o anterior, por favor echa un vistazo a
[NodeSource](https://downloads.nodesource.com/#debian) para obtener Node.js 20 o
posterior.
Para linux basado en RHEL como Fedora, AlmaLinux, Rocky Linux, etc.:
```sh
sudo dnf install nodejs
```
### CLI de YAMLResume
Instalar `yamlresume` es muy fácil. Puedes instalarlo usando tu gestor de paquetes de Node.js favorito:
<>
```console
npm install -g yamlresume
```
```console
pnpm add -g yamlresume
```
```console
yarn global add yamlresume
```
```console
bun add -g yamlresume
```
>
Si eres usuario de macOS y usas [Homebrew](https://brew.sh/), también puedes instalar [yamlresume vía Homebrew](http://formulae.brew.sh/formula/yamlresume):
```sh
brew install yamlresume
```
Verifica que `yamlresume` se haya instalado correctamente:
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build a resume on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
Si solo quieres probar `yamlresume` sin instalarlo, puedes usar `npx`, `pnpx` u otras herramientas similares:
<>
```console
npx yamlresume help
```
```console
yarn dlx yamlresume help
```
```console
pnpx yamlresume help
```
```console
bun exec yamlresume help
```
>
### Motor de Composición Tipográfica
Bajo el capó, `yamlresume` hace el trabajo de un compilador, analizando un currículum YAML a un
[AST](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/compiler/ast.ts)
y luego [transformando el AST a código LaTeX](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/compiler/codegen/latex.ts).
Como un mini-compilador, `yamlresume` depende de un motor de composición tipográfica para compilar el código LaTeX generado a PDFs. Por lo tanto, primero debes instalar un motor de composición tipográfica antes de poder usar `yamlresume` para generar PDFs de currículum.
YAMLResume actualmente soporta dos motores de composición tipográfica: [XeTeX](#xetex) y [Tectonic](#tectonic).
Al momento de escribir esto, [LaTeX](https://www.latex-project.org/) sigue siendo la
mejor opción de motor de composición tipográfica para producir PDFs de aspecto profesional.
[Typst](https://typst.app/) es una gran alternativa, pero aún está en su
etapa temprana y su soporte CJK no es maduro ni está listo para producción todavía.
Anteriormente escribí una publicación [Sobre Motores de Composición Tipográfica](https://blog.ppresume.com/posts/on-typesetting-engines) explicando
las razones por las que elegí LaTeX sobre otros motores de composición tipográfica cuando fundé
[PPResume](https://ppresume.com).
#### XeTeX
[XeTeX](https://tug.org/xetex/) es un motor de composición tipográfica [TeX](https://en.wikipedia.org/wiki/TeX) que usa [Unicode](https://en.wikipedia.org/wiki/Unicode) y soporta tecnologías de fuentes modernas como [OpenType](https://en.wikipedia.org/wiki/OpenType), [Graphite](https://fonts.adobe.com/fonts/graphite) y [Apple Advanced Typography (AAT)](https://en.wikipedia.org/wiki/Apple_Advanced_Typography).
Es un motor de composición tipográfica muy maduro y estable que es ampliamente utilizado por muchas personas académicas y científicas.
La forma más fácil es instalar la distribución **MacTeX**.
Incluye XeTeX junto con muchos otros programas y paquetes relacionados con TeX. Puedes descargarlo desde el [sitio web de MacTeX](https://www.tug.org/mactex/) o instalarlo vía homebrew:
```sh
# install the full mactex
brew install mactex
# or if you want to save some disk space
brew install mactex-no-gui
```
[La distribución MiKTeX](https://miktex.org) es una opción popular para Windows e incluye XeTeX. Puedes descargarla desde el [sitio web de MiKTeX](https://miktex.org/download).
Alternativamente, puedes instalar **TeX Live** para Windows, que también incluye XeTeX. Descárgalo desde el [sitio web de TeX Live](https://www.tug.org/texlive/acquire-netinstall.html).
La mayoría de las distribuciones de Linux ofrecen TeX Live a través de sus gestores de paquetes. XeTeX está típicamente incluido en el paquete `texlive-xetex` o un meta-paquete `texlive-full` más grande.
Para Ubuntu, si tu red es buena y tienes alrededor de 10GB de espacio en disco, puedes instalar la distribución completa de texlive:
```sh
sudo apt install texlive-full
```
De lo contrario, puedes instalar los paquetes mínimos requeridos:
```sh
sudo apt install texlive-xetex texlive-fonts-extra texlive-lang-all
```
Para linux basado en RHEL como Fedora, AlmaLinux, Rocky Linux, puedes instalar la distribución completa de TeX Live si tienes suficiente espacio en disco y buena red:
```sh
sudo dnf install texlive-scheme-full
```
De lo contrario, puedes instalar los paquetes mínimos requeridos:
```sh
sudo dnf install \
texlive-scheme-medium \
texlive-moderncv \
texlive-ctex \
texlive-academicons
```
Alternativamente, siempre puedes instalar TeX Live directamente desde el [sitio web de TeX Live](https://www.tug.org/texlive/acquire-netinstall.html) usando su instalador, que funciona en diferentes distribuciones de Linux.
Verifica que XeTeX se haya instalado correctamente:
```console
$ xetex -v
XeTeX 3.141592653-2.6-0.999994 (TeX Live 2022)
kpathsea version 6.3.4
Copyright 2022 SIL International, Jonathan Kew and Khaled Hosny.
There is NO warranty. Redistribution of this software is
covered by the terms of both the XeTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the XeTeX source.
Primary author of XeTeX: Jonathan Kew.
Compiled with ICU version 70.1; using 70.1
Compiled with zlib version 1.2.11; using 1.2.11
Compiled with FreeType2 version 2.11.1; using 2.11.1
Compiled with Graphite2 version 1.3.14; using 1.3.14
Compiled with HarfBuzz version 3.4.0; using 3.4.0
Compiled with libpng version 1.6.37; using 1.6.37
Compiled with pplib version v2.05 less toxic i hope
Using Mac OS X Core Text and Cocoa frameworks
```
#### Tectonic
[Tectonic](https://tectonic-typesetting.github.io) es un motor moderno, completo y auto-contenido de [TeX](https://en.wikipedia.org/wiki/TeX)/[LaTeX](https://www.latex-project.org/), impulsado por [XeTeX](https://tug.org/xetex/) y [TeXLive](https://www.tug.org/texlive/).
Una distribución completa de TeX Live típicamente ocupa varios GB de espacio en disco, mientras que la instalación inicial de tectonic ocupa solo 10+ MB. Descarga automáticamente los archivos de soporte, por lo que no tienes que instalar una distribución completa de LaTeX. Cuando comienzas a usar un nuevo paquete de LaTeX, Tectonic simplemente descarga los archivos que necesita y continúa procesando.
Tectonic proporciona una [guía de instalación](https://tectonic-typesetting.github.io/en-US/install.html) oficial, pero esto simplemente pondría tectonic en el directorio donde ejecutaste el comando de instalación, `yamlresume` necesita un comando `tectonic` global en tu `$PATH`, así que necesitas resolver eso con algunos trucos de shell por tu cuenta.
Si eres usuario de macOS, estás de suerte porque Homebrew proporciona un paquete preconstruido:
```sh
brew install tectonic
```
En mi experiencia, tectonic todavía tiene algunos problemas menores de compatibilidad con el XeTeX oficial, así que si no te importa el largo tiempo de descarga de una distribución completa de TeX Live, XeTeX sigue siendo la opción recomendada aquí.
### Fuente
#### Linux Libertine
YAMLResume adopta [Linux Libertine](https://www.dafont.com/linux-libertine.font) como la fuente predeterminada para caracteres latinos. Se recomienda encarecidamente instalarla para obtener una salida PDF óptima.
Para usuarios de Homebrew:
```sh
brew install font-linux-libertine
```
De lo contrario, puedes descargar la última versión de [Linux Libertine](https://www.dafont.com/linux-libertine.font) desde el sitio web e instalar la fuente con el [Catálogo Tipográfico](https://support.apple.com/en-gb/guide/font-book/fntbk1000/mac) de macOS.
Descarga la última versión de [Linux Libertine](https://www.dafont.com/linux-libertine.font) desde el sitio web, extrae el archivo e instala la fuente.
Para usuarios de Ubuntu, la fuente Linux Libertine ya está incluida en el paquete `texlive-fonts-extra`, sin embargo, si quieres instalarla manualmente, puedes hacerlo mediante:
```sh
sudo apt install fonts-linuxlibertine
```
Para linux basado en RHEL como Fedora, AlmaLinux, Rocky Linux, puedes instalar la fuente Linux Libertine mediante:
```sh
sudo dnf install linux-libertine-fonts
```
#### Google Noto
Si necesitas currículums en CJK, también necesitarás instalar [fuentes Google Noto](https://fonts.google.com/noto/) para [mejor cobertura unicode](https://github.com/ppresume/community/issues/63).
Para usuarios de Homebrew:
```sh
brew install font-noto-sans-cjk font-noto-serif-cjk
```
Descarga fuentes Noto y sigue la [guía oficial](https://fonts.google.com/noto/use#use-noto-fonts) para instalar en Windows.
Para usuarios de Ubuntu:
```sh
sudo apt install fonts-noto-cjk fonts-noto-cjk-extra
```
Para linux basado en RHEL como Fedora, AlmaLinux, Rocky Linux, puedes instalar las fuentes Noto mediante:
```sh
sudo dnf install google-noto-sans-cjk-fonts google-noto-serif-cjk-fonts
```
## Solución de Problemas
Puedes [abrir un problema](https://github.com/yamlresume/yamlresume/issues/new) si tienes problemas para instalar `yamlresume` o sus dependencias.
Puedes habilitar el registro detallado pasando una bandera `--verbose` a `yamlresume` o sus subcomandos.
### ¿Cansado?
Si te estás cansando del proceso de instalación, puedes probar [PPResume](https://ppresume.com), que es una solución de construcción de currículums comercial y alojada que hizo de código abierto a YAMLResume.
# Arquitectura
URL: (/es/docs/compiler/architecture)
Como cualquier compilador, YAMLResume también contiene una tubería que
transforma los datos del currículum desde la entrada hasta la salida con
múltiples fases.
* **Fase de Entrada**: acepta archivos de currículum YAML y JSON como entrada.
* **Fase de Análisis**: analiza y valida el contenido y diseño del currículum
desde los archivos de entrada.
* **Fase de Transformación**: transforma los datos de contenido y diseño del
currículum con una tubería.
* **Fase de Generación de Código**: renderiza los datos de contenido y diseño
del currículum usando plantillas LaTeX.
* **Fase de Salida**: genera el documento PDF final.
Aquí hay un diagrama de arquitectura de alto nivel de YAMLResume desde 30000
pies:
## Tubería de Procesamiento de Datos
La tubería de transformación es responsable de procesar los datos crudos del
currículum desde archivos YAML y prepararlos para el renderizado LaTeX. Opera en
dos fases principales: transformación de contenido y transformación de diseño:
* La fase de transformación de contenido procesa todos los datos textuales,
aplica reglas de localización, escapa caracteres especiales de LaTeX, y computa
valores derivados.
* La fase de transformación de diseño fusiona la configuración de diseño
proporcionada por el usuario con valores predeterminados y aplica reglas de
tipografía específicas del idioma local.
Para una tubería de procesamiento de datos larga como esta, el código habla más
que las palabras, puedes consultar
[transform.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/preprocess/transform.ts)
para detalles si estás interesado en la implementación.
# Compilador
URL: (/es/docs/compiler)
## Descripción General
YAMLResume es un compilador de currículums que permite a los usuarios crear
currículums usando YAML, luego generar documentos PDF profesionales con
tipografía precisa.
YAMLResume adopta [Separación de
Preocupaciones](https://en.wikipedia.org/wiki/Separation_of_concerns) como el
principio de diseño central, lo que permite a los usuarios enfocarse en el
contenido del currículum, sin preocuparse demasiado por el estilo/diseño,
intercambiar plantillas sin cambiar el contenido, y mantener consistencia entre
diferentes formatos de salida.
Dicho esto, los usuarios podrían y deberían enfocarse solo en el contenido del
currículum, y YAMLResume se encargará del resto como composición, diseño,
localización, generación de PDF, etc.
Capacidades clave:
* Define un [formato YAML estructurado estándar](/docs/compiler/types) que cubre
tanto [contenido](/docs/compiler/types#resumecontent) como
[diseño](/docs/compiler/types#resumecontent)
* Valida el contenido del currículum con [zod](https://zod.dev) o [JSON
Schema](https://json-schema.org)
* Transforma los datos del contenido del currículum con una
[tubería](/docs/compiler/architecture#data-processing-pipeline)
* Renderiza el contenido usando [plantillas LaTeX](/docs/layouts/latex/templates)
* Genera PDFs vía motores de compilación [XeTeX](/docs/installation#xetex) o
[Tectonic](/docs/installation#tectonic)
* Soporta [múltiples idiomas](/docs/locale) y localización
* Proporciona comandos [CLI](/docs/cli) para gestión de proyectos y
automatización de construcción
Consulta la siguiente demostración en vivo para ver por qué llamo a YAMLResume
un **compilador de currículums**:
[](https://asciinema.org/a/728098)
## Aprende Más
# Tipos
URL: (/es/docs/compiler/types)
Este documento describe los tipos de TypeScript que definen la estructura de un
currículum en YAMLResume. Como proyecto TypeScript, YAMLResume emplea tipado
estático para garantizar consistencia de datos. Aquí se presenta una visión
general de las estructuras núcleo para representar la información del
currículum, incluyendo datos personales, educación, experiencia, habilidades y
más.
Puedes consultar
[types/index.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/models/types/index.ts)
para la fuente de verdad.
Entender estos tipos es esencial para contribuir o extender la funcionalidad de
YAMLResume.
Este documento sirve como referencia definitiva para crear un YAMLResume válido,
aclarando la diferencia entre campos opcionales y obligatorios. Para compilar
con éxito, un currículum mínimo debe incluir:
* `content.basics.name`
* `education[number].area`
* `education[number].degree`
* `education[number].institution`
* `education[number].startDate`
Ejemplo mínimo viable:
```yml lineNumbers
content:
basics:
name: Xiao Hanyu
education:
- area: Computer Science and Technology
degree: Bachelor
institution: Zhejiang University
startDate: Sep, 2007
```
## Resume
Define la estructura global del currículum (contenido y layout).
| Prop | Tipo | Requerido | Descripción |
| ---------- | --------------------- | --------- | ------------------------------------------------- |
| `content` | [`Content`](#content) | ✅ | Estructura del contenido completo del currículum. |
| `layouts?` | [`Layouts`](#layouts) | ⬜️ | Configuración general del layout. |
| `locale?` | [`Locale`](#locale) | ⬜️ | Configuración general de localización. |
Diagrama de alto nivel:
### Content
Estructura del contenido completo del currículum.
| Prop | Tipo | Requerido | Descripción |
| --------------- | --------------------------------------- | --------- | --------------------------------------------- |
| `basics` | [`BasicsItem`](#basicsitem) | ✅ | Información personal y de contacto principal. |
| `education` | [`EducationItem[]`](#educationitem) | ✅ | Conjunto de experiencias educativas. |
| `awards?` | [`AwardItem[]`](#awarditem) | ⬜️ | Conjunto de premios y reconocimientos. |
| `certificates?` | [`CertificateItem[]`](#certificateitem) | ⬜️ | Conjunto de certificaciones y credenciales. |
| `interests?` | [`InterestItem[]`](#interestitem) | ⬜️ | Intereses, hobbies o actividades personales. |
| `languages?` | [`LanguageItem[]`](#languageitem) | ⬜️ | Competencias lingüísticas. |
| `location?` | [`LocationItem`](#locationitem) | ⬜️ | Información de localización. |
| `projects?` | [`ProjectItem[]`](#projectitem) | ⬜️ | Proyectos. |
| `profiles?` | [`ProfileItem[]`](#profileitem) | ⬜️ | Perfiles online. |
| `publications?` | [`PublicationItem[]`](#publicationitem) | ⬜️ | Publicaciones. |
| `references?` | [`ReferenceItem[]`](#referenceitem) | ⬜️ | Referencias. |
| `skills?` | [`SkillItem[]`](#skillitem) | ⬜️ | Habilidades. |
| `volunteer?` | [`VolunteerItem[]`](#volunteeritem) | ⬜️ | Experiencias de voluntariado. |
| `work?` | [`WorkItem[]`](#workitem) | ⬜️ | Experiencias laborales e historial de empleo. |
#### AwardItem
Representa un premio u honor recibido.
| Prop | Tipo | Req. | Descripción |
| ---------- | -------- | ---- | ----------------------------------- |
| `awarder` | `string` | ✅ | Organización que otorga el premio. |
| `title` | `string` | ✅ | Nombre del premio. |
| `date?` | `string` | ⬜️ | Fecha (p. ej., "2020", "Oct 2020"). |
| `summary?` | `string` | ⬜️ | Breve descripción. |
#### BasicsItem
Información personal principal.
| Prop | Tipo | Req. | Descripción |
| ----------- | -------- | ---- | -------------------------------------------------- |
| `name` | `string` | ✅ | Nombre completo. |
| `email?` | `string` | ⬜️ | Email. |
| `headline?` | `string` | ⬜️ | Titular profesional (p. ej., "Software Engineer"). |
| `phone?` | `string` | ⬜️ | Teléfono. |
| `summary?` | `string` | ⬜️ | Resumen profesional. |
| `url?` | `string` | ⬜️ | Sitio o portafolio. |
#### CertificateItem
| Prop | Tipo | Req. | Descripción |
| -------- | -------- | ---- | ------------------------------ |
| `issuer` | `string` | ✅ | Entidad emisora. |
| `name` | `string` | ✅ | Nombre del certificado. |
| `date?` | `string` | ⬜️ | Fecha obtenida. |
| `url?` | `string` | ⬜️ | Enlace de verificación u otro. |
#### EducationItem
| Prop | Tipo | Req. | Descripción |
| ------------- | ------------------- | ---- | -------------------------------------- |
| `area` | `string` | ✅ | Área de estudio. |
| `degree` | [`Degree`](#degree) | ✅ | Tipo de grado. |
| `institution` | `string` | ✅ | Institución. |
| `startDate` | `string` | ✅ | Fecha de inicio. |
| `courses?` | `string[]` | ⬜️ | Cursos. |
| `endDate?` | `string` | ⬜️ | Fecha de fin (vacío implica "Actual"). |
| `summary?` | `string` | ⬜️ | Descripción/logros. |
| `score?` | `string` | ⬜️ | Calificación/GPA. |
| `url?` | `string` | ⬜️ | Enlace relacionado. |
#### InterestItem
| Prop | Tipo | Req. | Descripción |
| ----------- | ---------- | ---- | ---------------------------- |
| `name` | `string` | ✅ | Nombre del interés. |
| `keywords?` | `string[]` | ⬜️ | Palabras clave relacionadas. |
#### LanguageItem
| Prop | Tipo | Req. | Descripción |
| ----------- | ----------------------- | ---- | ---------------------------- |
| `fluency` | [`Fluency`](#fluency) | ✅ | Nivel de competencia. |
| `language` | [`Language`](#language) | ✅ | Idioma. |
| `keywords?` | `string[]` | ⬜️ | Palabras clave relacionadas. |
#### LocationItem
| Prop | Tipo | Req. | Descripción |
| ------------- | --------------------- | ---- | ------------------------ |
| `city` | `string` | ✅ | Ciudad. |
| `address?` | `string` | ⬜️ | Dirección. |
| `country?` | [`Country`](#country) | ⬜️ | País. |
| `postalCode?` | `string` | ⬜️ | Código postal. |
| `region?` | `string` | ⬜️ | Región/provincia/estado. |
#### ProfileItem
| Prop | Tipo | Req. | Descripción |
| ---------- | --------------------- | ---- | ----------------- |
| `network` | [`Network`](#network) | ✅ | Red o plataforma. |
| `username` | `string` | ✅ | Usuario. |
| `url?` | `string` | ⬜️ | URL del perfil. |
#### ProjectItem
| Prop | Tipo | Req. | Descripción |
| -------------- | ---------- | ---- | --------------------- |
| `name` | `string` | ✅ | Nombre. |
| `startDate` | `string` | ✅ | Inicio. |
| `summary` | `string` | ✅ | Logros/detalles. |
| `description?` | `string` | ⬜️ | Descripción. |
| `endDate?` | `string` | ⬜️ | Fin. |
| `keywords?` | `string[]` | ⬜️ | Tecnologías/keywords. |
| `url?` | `string` | ⬜️ | Enlace (repo/demo). |
#### PublicationItem
| Prop | Tipo | Req. | Descripción |
| -------------- | -------- | ---- | ------------------------- |
| `name` | `string` | ✅ | Título de la publicación. |
| `publisher` | `string` | ✅ | Editorial. |
| `releaseDate?` | `string` | ⬜️ | Fecha de publicación. |
| `summary?` | `string` | ⬜️ | Resumen/abstract. |
| `url?` | `string` | ⬜️ | Enlace (DOI/u otro). |
#### ReferenceItem
| Prop | Tipo | Req. | Descripción |
| --------------- | -------- | ---- | ----------------------------- |
| `name` | `string` | ✅ | Nombre de la referencia. |
| `summary` | `string` | ✅ | Nota breve. |
| `email?` | `string` | ⬜️ | Email. |
| `phone?` | `string` | ⬜️ | Teléfono. |
| `relationship?` | `string` | ⬜️ | Relación (p. ej., "Manager"). |
#### SkillItem
| Prop | Tipo | Req. | Descripción |
| ----------- | ----------------- | ---- | ---------------------------- |
| `level` | [`Level`](#level) | ✅ | Nivel de la habilidad. |
| `name` | `string` | ✅ | Nombre de la habilidad. |
| `keywords?` | `string[]` | ⬜️ | Palabras clave relacionadas. |
#### VolunteerItem
| Prop | Tipo | Req. | Descripción |
| -------------- | -------- | ---- | ------------------------- |
| `organization` | `string` | ✅ | Organización. |
| `position` | `string` | ✅ | Rol/posición. |
| `startDate` | `string` | ✅ | Inicio. |
| `summary` | `string` | ✅ | Responsabilidades/logros. |
| `endDate?` | `string` | ⬜️ | Fin. |
| `url?` | `string` | ⬜️ | Enlace relacionado. |
#### WorkItem
| Prop | Tipo | Req. | Descripción |
| ----------- | ---------- | ---- | ------------------------------------ |
| `name` | `string` | ✅ | Empresa. |
| `position` | `string` | ✅ | Puesto. |
| `startDate` | `string` | ✅ | Inicio. |
| `summary` | `string` | ✅ | Resumen de responsabilidades/logros. |
| `endDate?` | `string` | ⬜️ | Fin. |
| `keywords?` | `string[]` | ⬜️ | Palabras clave/tecnologías. |
| `url?` | `string` | ⬜️ | Enlace relacionado. |
### Locale
Define la configuración de localización para internacionalización.
| Prop | Tipo | Requerido | Descripción |
| ----------- | ----------------------------------- | --------- | ---------------------- |
| `language?` | [`LocaleLanguage`](#localelanguage) | ⬜️ | Idioma del currículum. |
### Layouts
Array de configuraciones de layout soportando múltiples formatos de salida.
| Prop | Tipo | Requerido | Descripción |
| ----------- | -------------------------------------------------------------------- | --------- | -------------------------- |
| `layouts[]` | [`LatexLayout`](#latexlayout) \| [`MarkdownLayout`](#markdownlayout) | ⬜️ | Configuraciones de layout. |
#### Tipos de Layout Comunes
##### Margins
Define los márgenes de página para el documento.
| Prop | Tipo | Requerido | Descripción |
| --------- | -------- | --------- | ----------------- |
| `top?` | `string` | ⬜️ | Margen superior. |
| `bottom?` | `string` | ⬜️ | Margen inferior. |
| `left?` | `string` | ⬜️ | Margen izquierdo. |
| `right?` | `string` | ⬜️ | Margen derecho. |
##### Sections
Define alias de secciones para personalizar nombres.
| Prop | Tipo | Requerido | Descripción |
| ---------- | --------------------------- | --------- | ------------------------------------------------------ |
| `aliases?` | `Record` | ⬜️ | Alias personalizados para nombres de secciones. |
| `order?` | `OrderableSectionID[]` | ⬜️ | Orden personalizado para secciones en la salida final. |
#### HtmlLayout
Configuración de layout HTML.
| Prop | Tipo | Requerido | Descripción |
| ------------- | ----------------------------------- | --------- | ---------------------------------- |
| `engine` | `'html'` | ✅ | Motor para generar el currículum. |
| `advanced?` | [`HtmlAdvanced`](#htmladvanced) | ⬜️ | Configuración avanzada del layout. |
| `sections?` | [`Sections`](#sections) | ⬜️ | Configuración de secciones. |
| `template?` | [`HtmlTemplate`](#htmltemplate) | ⬜️ | Plantilla seleccionada. |
| `typography?` | [`HtmlTypography`](#htmltypography) | ⬜️ | Configuración tipográfica. |
##### HtmlAdvanced
Define opciones de configuración avanzada para HTML.
| Prop | Tipo | Requerido | Descripción |
| -------------- | --------- | --------- | ---------------------------------------------------------- |
| `showIcons?` | `boolean` | ⬜️ | Indica si se deben mostrar iconos para enlaces y perfiles. |
| `title?` | `string` | ⬜️ | Título personalizado para el documento HTML. |
| `footer?` | `string` | ⬜️ | Pie de página personalizado para el document HTML. |
| `description?` | `string` | ⬜️ | Meta descripción para el documento HTML. |
| `keywords?` | `string` | ⬜️ | Meta palabras clave para el documento HTML. |
##### HtmlTypography
Define opciones tipográficas para formato de documento HTML.
| Prop | Tipo | Requerido | Descripción |
| ------------- | ------------------------------- | --------- | ---------------------------------------------------- |
| `fontFamily?` | `string` | ⬜️ | Una lista de familias de fuentes separada por comas. |
| `fontSize?` | [`HtmlFontSize`](#htmlfontsize) | ⬜️ | Tamaño base de fuente para el doc. |
#### LatexLayout
Configuración de layout LaTeX.
| Prop | Tipo | Requerido | Descripción |
| ------------- | ------------------------------------- | --------- | --------------------------------- |
| `advanced?` | [`LatexAdvanced`](#latexadvanced) | ⬜️ | Configuración avanzada. |
| `engine` | `'latex'` | ✅ | Motor para generar el currículum. |
| `page?` | [`LatexPage`](#latexpage) | ⬜️ | Configuración a nivel de página. |
| `sections?` | [`Sections`](#sections) | ⬜️ | Configuración de secciones. |
| `template?` | [`LatexTemplate`](#latextemplate) | ⬜️ | Plantilla seleccionada. |
| `typography?` | [`LatexTypography`](#latextypography) | ⬜️ | Configuración tipográfica. |
##### LatexAdvanced
Define opciones de configuración avanzada para LaTeX.
| Prop | Tipo | Requerido | Descripción |
| ------------ | ------------------------------------ | --------- | ---------------------------------------------------------- |
| `fontspec?` | `{ numbers?: LatexFontspecNumbers }` | ⬜️ | Configuración de paquete fontspec. |
| `showIcons?` | `boolean` | ⬜️ | Indica si se deben mostrar iconos para enlaces y perfiles. |
##### LatexPage
Define opciones a nivel de página para LaTeX.
| Prop | Tipo | Requerido | Descripción |
| ------------------ | ------------------------- | --------- | -------------------------- |
| `margins?` | [`Margins`](#margins) | ⬜️ | Márgenes de página. |
| `paperSize?` | [`PaperSize`](#papersize) | ⬜️ | Define el tamaño de papel. |
| `showPageNumbers?` | `boolean` | ⬜️ | Mostrar números de página. |
##### LatexTypography
Define opciones tipográficas para LaTeX.
| Prop | Tipo | Requerido | Descripción |
| ------------- | --------------------------------- | --------- | ---------------------------------------------------- |
| `fontSize?` | [`LatexFontSize`](#latexfontsize) | ⬜️ | Tamaño base de fuente. |
| `fontFamily?` | `string` | ⬜️ | Una lista de familias de fuentes separada por comas. |
| `links?` | `{ underline?: boolean }` | ⬜️ | Estilo de enlaces. |
#### MarkdownLayout
Configuración de layout Markdown.
| Prop | Tipo | Requerido | Descripción |
| ----------- | ----------------------- | --------- | --------------------------------- |
| `engine` | `'markdown'` | ✅ | Motor para generar el currículum. |
| `sections?` | [`Sections`](#sections) | ⬜️ | Configuración de secciones. |
## Tipos de enumeración
### Enums de Contenido
#### Country
Tipo unión que incluye todos los posibles países y regiones del mundo.
#### Degree
Tipo unión que incluye todos los posibles grados académicos.
* `Associate`
* `Bachelor`
* `Diploma`
* `Doctor`
* `High School`
* `Master`
* `Middle School`
#### Fluency
Tipo unión que incluye todos los posibles niveles de competencia lingüística.
* `Elementary Proficiency`
* `Full Professional Proficiency`
* `Limited Working Proficiency`
* `Minimum Professional Proficiency`
* `Native or Bilingual Proficiency`
#### Language
Tipo unión que incluye todos los idiomas soportados.
#### Level
Tipo unión que incluye todos los posibles niveles de dominio de habilidades.
* `Advanced`
* `Beginner`
* `Expert`
* `Intermediate`
* `Master`
* `Novice`
#### Network
Tipo unión que incluye todas las posibles opciones de redes sociales.
### Enums de Layout
#### HtmlFontSize
Tipo unión opciones de tamaño de fuente HTML.
El motor HTML soporta tamaños de 14px a 20px:
* `14px`, `15px`, `16px` (por defecto), `17px`, `18px`, `19px`, `20px`
#### HtmlTemplate
Tipo unión opciones de plantilla HTML.
Ver también: [templates](/es/docs/layouts/html/templates)
* `calm`
#### LatexFontSize
Tipo unión que incluye todas las posibles opciones de tamaño de fuente LaTeX.
Por ahora solo se admiten 3 opciones:
* `10pt` - tamaño de fuente de 10pt (por defecto)
* `11pt` - tamaño de fuente de 11pt
* `12pt` - tamaño de fuente de 12pt
#### LatexFontspecNumbers
Tipo unión que incluye todas las posibles opciones de números de fontspec de LaTeX.
* `Auto` - permite que el estilo se determine automáticamente según el
`LocaleLanguage` seleccionado (por defecto)
* `Lining` - cifras lining estándar (por defecto para idiomas CJK)
* `OldStyle` - cifras old style con alturas variables (por defecto para idiomas
latinos)
#### LatexTemplate
Tipo unión que incluye todas las posibles opciones de plantilla LaTeX.
Ver también: [templates](/es/docs/layouts/latex/templates)
* `moderncv-banking`
* `moderncv-casual`
* `moderncv-classic`
#### PaperSize
Tipo unión que incluye todas las posibles opciones de tamaño de papel LaTeX.
* `a4` (por defecto)
* `letter`
### Enums de Localización
#### LocaleLanguage
Tipo unión que incluye todos los posibles códigos de lenguaje local.
Ver también: [multi-languages](/es/docs/locale)
* `en`
* `es`
* `zh-hans`
* `zh-hant-hk`
* `zh-hant-tw`
# Contenido
URL: (/es/docs/content)
Este capítulo profundiza en el corazón de tu currículum: el contenido.
El contenido es el núcleo de tu currículum. Es lo que hace que tu currículum se
destaque del resto, siendo [diseño](/docs/layouts) y presentación la guinda del
pastel.
Cubriremos dos aspectos clave de la creación de contenido en YAMLResume:
* **Texto Enriquecido**: Cómo usar Markdown para agregar formato como negrita,
cursiva, enlaces y listas a tus descripciones.
* **Soporte Multi-Idioma**: Cómo crear currículums en diferentes idiomas,
teniendo en cuenta los matices lingüísticos y culturales.
Explora las guías a continuación para dominar el contenido de tu currículum.
# Texto Enriquecido
URL: (/es/docs/content/rich-text)
En YAMLResume, no estás limitado a texto plano. Los campos `summary` en
diferentes secciones (como `work`, `education`, `projects`, etc.), soportan un
conjunto limitado de sintaxis de
[Markdown](https://en.wikipedia.org/wiki/Markdown) para permitir formato de
texto enriquecido. Esto te permite crear contenido de currículum más expresivo y
legible.
## Sintaxis Soportada
Aquí hay un resumen rápido de las características de Markdown que puedes usar:
### Negrita y Cursiva
Puedes enfatizar texto usando estilo negrita o cursiva.
* **Negrita:** `**tu texto en negrita**`
* **Cursiva:** `*tu texto en cursiva*`
* **Ambos:** `***tu texto en negrita y cursiva***`
### Enlaces
Puedes incrustar hipervínculos dentro de tu texto.
* **Sintaxis:** `[texto del enlace](https://example.com)`
### Listas
Se soportan tanto listas ordenadas como desordenadas, incluyendo anidación.
El carácter `|` (pipe) en YAML se usa para crear un "escalar de bloque
literal," que es una forma de escribir [cadenas de múltiples
líneas](https://stackoverflow.com/a/21699210/2310396) mientras se preservan
los saltos de línea. Esto es particularmente útil para campos como `summary`
donde podrías querer incluir listas o párrafos. Todo lo que esté indentado
bajo el `|` será tratado como una sola cadena, con saltos de línea mantenidos.
#### Listas Desordenadas
Usa un guion (`-`) o un asterisco (`*`) para cada elemento de la lista.
```yml lineNumbers
summary: |
- Primer elemento
- Segundo elemento
- Tercer elemento
```
#### Listas Ordenadas
Usa números seguidos de un punto para listas ordenadas.
```yml lineNumbers
summary: |
1. Primer elemento
2. Segundo elemento
3. Tercer elemento
```
#### Listas Anidadas
Puedes indentar listas para crear estructuras anidadas.
```yml lineNumbers
summary: |
- Jugador de equipo con mentalidad orientada a detalles.
- Experimentado en bases de datos (SQL, NoSQL).
- Competente en PostgreSQL y MongoDB.
- Familiarizado con Redis para caché.
- Fundamento sólido en estructuras de datos y algoritmos.
```
## Un Ejemplo Completo
Aquí hay un campo `summary` de una entrada `work` que combina varias de las
características de sintaxis soportadas:
```yml lineNumbers
---
content:
basics:
# ...
summary: |
This is a sample YAML resume that support limited set of markdown rich text syntax (bold, italics, links, lists):
- Computer Science major with **strong foundation** in data structures, *algorithms*, and software development
1. Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
2. Experiened in databases (SQL, NoSQL), familiar with server-side technologies ([Node.js](https://nodejs.org/en), Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
```
Aquí está el PDF generado:
## ¿Qué No Está Soportado?
YAMLResume solo soporta la sintaxis listada arriba. Otras características
comunes de Markdown como encabezados, citas en bloque, imágenes, reglas
horizontales y tablas **no están soportadas y serán ignoradas durante el
procesamiento**.
# CLI
URL: (/es/docs/contributing/cli)
YAMLResume adopta una estructura de mono-repo, lo que significa que todos los
paquetes están contenidos dentro de un solo repositorio. Gracias al [workspace
de pnpm](https://pnpm.io/workspaces), este enfoque simplifica la gestión de
dependencias y el versionado entre paquetes.
Al momento de escribir, el repositorio de YAMLResume tiene dos paquetes:
* [yamlresume/cli](https://github.com/yamlresume/yamlresume/tree/main/packages/cli):
la interfaz CLI para YAMLResume.
* [yamlresume/core](https://github.com/yamlresume/yamlresume/tree/main/packages/core):
contiene el motor central para YAMLResume. Maneja el análisis, validación y
renderizado de currículums basado en el [esquema](/docs/compiler/schema)
oficial.
## yamlresume/core build
`yamlresume/cli` depende de `yamlresume/core` para funcionar correctamente. Así
que cuando quieras probar `yamlresume/cli`, necesitas asegurarte de que
`yamlresume/core` también esté construido y disponible.
Puedes hacer esto con los siguientes comandos:
```bash
# construir para propósito de desarrollo
pnpm core build
# construir para producción, lo cual minificará la salida y generará archivos
# DTS de TypeScript `.d.ts`
pnpm core build:prod
# vigilar cambios de archivo y construir automáticamente
pnpm core build:watch
```
## yamlresume/cli build
Una vez que `yamlresume/core` está construido, puedes ejecutar los comandos CLI
de dos formas:
1. construir `yamlresume/cli` localmente y ejecutar node.js con `dist/cli.js`:
```bash
pnpm cli build
node packages/cli/dist/cli.js [opciones]
```
2. ejecutar `yamlresume/cli` directamente con la ayuda de [tsx](https://tsx.is/):
```bash
pnpm cli dev [opciones]
# este comando se traducirá a
# tsx src/cli.ts
```
## Demo
`yamlresume/core` build:
```console
$ pnpm core build
> @yamlresume/yamlresume@0.7.1 core /Users/hanyu/work/yamlresume/yamlresume
> pnpm --filter @yamlresume/core build
> @yamlresume/core@0.7.1 build /Users/hanyu/work/yamlresume/yamlresume/packages/core
> tsup
CLI Building entry: src/index.ts
CLI Using tsconfig: tsconfig.json
CLI tsup v8.4.0
CLI Using tsup config: /Users/hanyu/work/yamlresume/yamlresume/packages/core/tsup.config.ts
CLI Target: esnext
CLI Cleaning output folder
ESM Build start
ESM dist/index.js 160.91 KB
ESM ⚡️ Build success in 111ms
```
`yamlresume/cli` build:
```console
$ pnpm cli build
> @yamlresume/yamlresume@0.7.1 cli /Users/hanyu/work/yamlresume/yamlresume
> pnpm --filter yamlresume build
> yamlresume@0.7.1 build /Users/hanyu/work/yamlresume/yamlresume/packages/cli
> tsup
CLI Building entry: src/cli.ts
CLI Using tsconfig: tsconfig.json
CLI tsup v8.4.0
CLI Using tsup config: /Users/hanyu/work/yamlresume/yamlresume/packages/cli/tsup.config.ts
CLI Target: esnext
CLI Cleaning output folder
ESM Build start
ESM dist/cli.js 11.36 KB
ESM ⚡️ Build success in 42ms
```
Probar `yamlresume/cli` con tsx mediante `pnpm cli dev`:
```console
$ pnpm cli dev help
> @yamlresume/yamlresume@0.7.1 cli /Users/hanyu/work/yamlresume/yamlresume
> pnpm --filter yamlresume dev help
> yamlresume@0.7.1 dev /Users/hanyu/work/yamlresume/yamlresume/packages/cli
> tsx src/cli.ts help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
Probar `yamlresume/cli` con Node.js:
```console
$ node packages/cli/dist/cli.js -V
0.7.1
```
# Docker
URL: (/es/docs/contributing/docker)
Además del [paquete CLI](https://www.npmjs.com/package/yamlresume), YAMLResume
también proporciona una [imagen de
docker](https://hub.docker.com/r/yamlresume/yamlresume) para facilitar la
incorporación.
Como hemos [documentado](/docs/installation#docker-users), puedes ejecutar el
contenedor docker de yamlresume con el siguiente comando:
```bash
docker run --rm -v $(pwd):/app -w /app yamlresume/yamlresume
```
Sin embargo, si estás interesado, puedes personalizar la imagen Docker para
adaptarla a tus necesidades.
## Construir Imagen Docker
La imagen Docker de YAMLResume está definida y generada en dos fases:
### Dockerfile.base
[Dockerfile.base](https://github.com/yamlresume/yamlresume/blob/main/Dockerfile.base)
contiene el entorno base para ejecutar YAMLResume, incluyendo todas las
dependencias necesarias como [XeTeX](/docs/installation#xetex) de [TeX
Live](https://www.tug.org/texlive/) y [Google Noto
Font](/docs/installation#google-noto).
Esta es una imagen base mayormente usada para acelerar el proceso de
construcción en Github Actions—instalar texlive con `apt install texlive-xetex`
toma alrededor de [30
minutos](https://github.com/yamlresume/yamlresume/actions/runs/15438395862), lo
cual es demasiado largo para ejecutar en cada construcción de docker, así que
decidimos construir y [publicar esta imagen base una
vez](https://hub.docker.com/r/yamlresume/yamlresume-base) y reutilizarla para
cada construcción posterior.
Generalmente no necesitas construir esta imagen tú mismo, puedes simplemente
reutilizar la imagen publicada en dockerhub.
### Dockerfile
[Dockerfile](https://github.com/yamlresume/yamlresume/blob/main/Dockerfile)
define cómo se construye la imagen `yamlresume/yamlresume`, es muy simple y
directa, solo instala `yamlresume` desde npmjs con `npm install -g
yamlresume@latest` y crea usuarios y grupos necesarios según las [mejores
prácticas de
seguridad](https://www.docker.com/blog/understanding-the-docker-user-instruction/)
de Docker.
Construir la imagen yamlresume localmente es una tarea trivial. Solo necesitas
ejecutar
```bash
docker build -t yamlresume/yamlresume .
```
Puede que necesites echar un vistazo a [construcción multi-plataforma de
docker](https://docs.docker.com/build/building/multi-platform/) si, por ejemplo,
tienes problemas construyendo imágenes docker para diferentes arquitecturas.
Escribí [algunos consejos en
X](https://x.com/xiaohanyu1988/status/1931178628785778722), puedes echarles un
vistazo si estás interesado.
# Contribuir
URL: (/es/docs/contributing)
Antes que nada, ¡gracias por considerar contribuir a YAMLResume! Son personas
como tú las que hacen que el código abierto sea genial. Damos la bienvenida a
cualquier tipo de contribución, no solo código. Puedes ayudar con:
* Reportar un error
* Discutir el estado actual del código
* Enviar una corrección
* Proponer nuevas características
* Mejorar la documentación
Aquí hay algunos atajos para algunos trabajos específicos:
## Empezando
### Prerequisitos
* [Node.js](https://nodejs.org/) (versión >= 20, verifica `.nvmrc` o
campo engines de `package.json`)
* [pnpm](https://pnpm.io/) (versión >= 10, verifica campo packageManager de `package.json`)
* Git
### Configuración
1. **Hacer fork del repositorio:** Haz clic en el botón "Fork" en la [página de
GitHub de YAMLResume](https://github.com/yamlresume/yamlresume). Esto crea tu
propia copia del proyecto.
2. **Clonar tu fork:**
```bash
git clone https://github.com//yamlresume.git
cd yamlresume
```
3. **Instalar dependencias:**
```bash
pnpm install
```
Este comando instala todas las dependencias necesarias para todo el workspace.
## Flujo de Trabajo de Desarrollo
### Construir Paquetes
* Construir todos los paquetes una vez:
```bash
pnpm build
```
* Construir todos los paquetes y vigilar cambios:
```bash
pnpm build:watch
```
* Construir para producción (incluyendo definiciones de tipos, minificación):
```bash
pnpm build:prod
```
### Ejecutar Pruebas
* Ejecutar pruebas para todos los paquetes:
```bash
pnpm test
```
* Ejecutar pruebas en modo vigilancia:
```bash
pnpm test:watch
```
* Ejecutar pruebas con reporte de cobertura:
```bash
pnpm test:cov
```
Consulta [Test](./contributing/test) para más detalles y casos de uso.
### Formato de Código y Linting
Usamos [Biome](https://biomejs.dev/) para formato de código y linting. Asegúrate
de que tu código se adhiere a las guías de estilo del proyecto antes de hacer
commit.
* Verificar y corregir automáticamente problemas:
```bash
pnpm check
```
* Ejecutar verificaciones sin aplicar correcciones (útil para CI):
```bash
pnpm check:ci
```
También usamos [addlicense](https://github.com/google/addlicense) para asegurar
que los archivos fuente tengan el encabezado de licencia correcto. Necesitas
instalarlo para ejecutar los siguientes comandos.
* Agregar encabezados de licencia faltantes:
```bash
pnpm license:add
```
* Verificar encabezados de licencia faltantes:
```bash
pnpm license:check
```
## Enviando Contribuciones
### Reportar Problemas
Si encuentras un error o tienes una solicitud de característica, por favor [abre
un issue](https://github.com/yamlresume/yamlresume/issues) en GitHub.
Proporciona tanto detalle como sea posible, incluyendo:
* Un título claro y descriptivo.
* Pasos para reproducir el error (si aplica).
* Comportamiento esperado y comportamiento real.
* Capturas de pantalla o fragmentos de código (si es útil).
* Detalles de tu entorno (SO, versión de Node, versión de pnpm).
### Pull Requests (PRs)
¡Nos encantan los pull requests! Aquí hay una guía rápida:
1. **Crear una rama:** Comienza desde la rama `main` y crea un nombre de rama
descriptivo (ej., `fix/login-bug`, `feat/new-template-option`).
```bash
git checkout main
git pull origin main
git checkout -b your-branch-name
```
2. **Hacer tus cambios:** Escribe tu código o mejoras en la documentación.
3. **Probar tus cambios:** Asegúrate de que todas las pruebas pasen:
```bash
pnpm test
```
4. **Verificar calidad de código:** Asegúrate de que las verificaciones de
formato y linting pasen:
```bash
pnpm check
```
5. **Hacer commit de tus cambios:** Usamos [Conventional
Commits](https://www.conventionalcommits.org/) para mensajes de commit,
reforzado por `commitlint`. Esto ayuda a automatizar changelogs y versionado.
Un mensaje de commit típico se ve como `feat: add new command` o
`fix: resolve issue with parsing`. Puedes usar `pnpm commitlint` para
ayudar a formatear tu mensaje si es necesario, o usar herramientas como [git
cz](https://github.com/commitizen/cz-cli) si lo tienes instalado.
```bash
git add .
git commit -m "feat: your descriptive commit message"
```
6. **Push de tu rama:**
```bash
git push origin your-branch-name
```
7. **Abrir un Pull Request:** Ve al repositorio de YAMLResume en GitHub y haz
clic en el botón "New pull request". Compara tu rama con la rama `main`.
8. **Describir tu PR:** Proporciona una descripción clara de los cambios que has
hecho. Enlaza cualquier issue relevante (ej., "Closes #123").
9. **Revisión:** Un mantenedor revisará tu PR. Atiende cualquier
retroalimentación o cambios solicitados.
10. **Merge:** Una vez aprobado, tu PR será fusionado. ¡Gracias por tu
contribución!
## Licencia
Al contribuir a YAMLResume, aceptas que tus contribuciones serán licenciadas
bajo su [Licencia MIT](LICENSE).
# Nuevo Idioma
URL: (/es/docs/contributing/new-language)
import { Step, Steps } from "fumadocs-ui/components/steps";
YAMLResume está diseñado para soportar [múltiples
idiomas](/docs/locale) desde la base, permitiendo a los
usuarios crear currículums en su idioma preferido.
Al momento de escribir, YAMLResume soporta los siguientes idiomas:
* [Inglés](/docs/locale/english)
* [Chino](/docs/locale/chinese)
* [Noruego](/docs/locale/norwegian)
* [Español](/docs/locale/spanish)
Si tu idioma preferido no está listado, puedes contribuir siguiendo los
pasos a continuación para agregar soporte para un nuevo idioma.
## Registra Tu Idioma
Para agregar una nueva opción `locale.language` a YAMLResume, primero
registra tu idioma en
[models/resume.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/models/resume.ts)
agregando una nueva entrada a `LOCALE_LANGUAGE_OPTIONS`.
**Lista de verificación:**
* [ ] Agrega tu idioma a `LOCALE_LANGUAGE_OPTIONS`.
* [ ] [Construye y prueba el nuevo CLI](/docs/contributing/cli#yamlresumecli-build)
con `pnpm cli dev languages list`, asegurándote de que tu idioma aparezca en
la lista.
## Agrega Traducciones
Proporciona traducciones para todas las
[opciones](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/translations/options.ts),
[puntuaciones y
términos](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/translations/template.ts)
relevantes usados en YAMLResume. Esto asegura que los usuarios puedan generar
currículums en el nuevo idioma con etiquetas precisas, traducciones de opciones,
términos y nombres de secciones. Aquí hay un
[PR](https://github.com/yamlresume/yamlresume/pull/44) de referencia para
agregar traducciones para el idioma noruego.
**Lista de verificación:**
* [ ] Agrega traducciones a [nombres de
países](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/models/country.ts)
* [ ] Agrega traducciones de opciones para `degrees`, `fluency`, `languages`, `sections`,
y `skills`
* [ ] Agrega traducciones de puntuación para `comma`, `colon`, y `separator`
* [ ] Agrega traducciones de términos para `courses`, `keywords`, y `score`
## Actualiza la Configuración de Babel
YAMLResume usa LaTeX para generación de PDF, y para obtener los mejores
resultados de composición, necesitamos establecer la [configuración del paquete
babel](https://latex3.github.io/babel/) adecuada. Aquí hay un
[commit](https://github.com/yamlresume/yamlresume/commit/b72a4441ad2542873f449bc35a265e7208eafbe7)
de referencia para el idioma noruego.
**Lista de verificación:**
* [ ] Actualiza la función `renderBabelConfig()` en
[preamble.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/renderer/preamble.ts)
para incluir el paquete babel para tu nuevo idioma.
## Prueba con el Nuevo Idioma
[Construye](/docs/contributing/cli#yamlresumecore-build) los paquetes
`yamlresume/core` y `yamlresume/cli`, luego:
* [ ] Crea un nuevo currículum `pnpm cli dev new my-resume.yml`
* [ ] Establece `locale.language` al nuevo idioma que acabas de agregar
* [ ] Prueba tus cambios generando un currículum en el nuevo idioma
con `pnpm cli dev build my-resume.yml`
* [ ] Asegúrate de que ambas salidas PDF funcionen como se espera.
## Enviando Tu PR
Una vez que hayas completado los pasos anteriores, envía tu pull request con una
descripción clara de los cambios y el idioma que estás agregando. Los
mantenedores revisarán tu PR y pueden solicitar cambios o aclaraciones.
¡Gracias por ayudar a hacer YAMLResume accesible para más personas alrededor del
mundo!
# Pruebas
URL: (/es/docs/contributing/test)
Para tener una experiencia de desarrollo fluida, es importante tener una
estrategia de pruebas sólida en su lugar. Esto incluye pruebas unitarias,
pruebas de integración, y pruebas de extremo a extremo para asegurar que todos
los aspectos de la aplicación están funcionando como se espera.
## Prueba Unitaria
Puedes ejecutar pruebas unitarias usando el siguiente comando:
```bash
# ejecutar pruebas para el paquete yamlresume/cli
pnpm cli test
# ejecutar pruebas para el paquete yamlresume/core
pnpm core test
# ejecutar pruebas para todos los paquetes
pnpm test
```
Si estás trabajando en una nueva característica, puedes ejecutar pruebas en
cambios de archivo:
```bash
# vigilar y probar cambios en el paquete yamlresume/cli
pnpm cli test:watch
# vigilar y probar cambios en el paquete yamlresume/core
pnpm core test:watch
# vigilar y probar cambios en todos los paquetes
pnpm test:watch
```
No olvides [construir](./contributing/cli#yamlresumecore-build) el paquete
`yamlresume/core` si estás trabajando en una característica CLI que depende
del paquete `yamlresume/core`.
## Cobertura de Pruebas
YAMLResume mantiene una **[cobertura de pruebas unitarias del
100%](https://app.codecov.io/gh/yamlresume/yamlresume)** para perseguir alta
calidad de código y prevenir regresiones. Puedes verificar el informe de
cobertura de pruebas ejecutando:
```bash
# verificar cobertura de pruebas para el paquete yamlresume/cli
pnpm cli test:cov
# verificar cobertura de pruebas para el paquete yamlresume/core
pnpm core test:cov
# verificar cobertura de pruebas para todos los paquetes
pnpm test:cov
```
# create-yamlresume
URL: (/es/docs/ecosystem/create-yamlresume)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
[create-yamlresume](https://yamlresume.dev/docs/ecosystem/create-yamlresume)
te ayuda a crear un nuevo proyecto [YAMLResume](https://yamlresume.dev) con un
comando de una sola línea.
## Uso
<>
```console
npx create-yamlresume my-resume
# o
npm init yamlresume my-resume
```
```console
pnpm create yamlresume my-resume
```
```console
yarn create yamlresume my-resume
```
```console
bun create yamlresume my-resume
```
>
## Qué hace
Esta herramienta hará:
1. Crear un nuevo directorio con el nombre de tu proyecto
2. Crear una estructura básica de proyecto Node.js con:
* `package.json` con dependencia de YAMLResume y scripts útiles
* archivo `.gitignore` con exclusiones apropiadas
* `README.md` con instrucciones básicas de uso
3. Instalar todas las dependencias necesarias
4. Crear un nuevo archivo de currículum de muestra usando `yamlresume new`
5. Mostrar comandos disponibles y próximos pasos
## Sesión de Ejemplo
```
$ pnpm create yamlresume
✔ What is your project name? … yamlresume
ℹ Using pnpm.
✔ What should your resume file be called? (without .yml extension) … resume
◐ Creating YAMLResume project in /private/tmp/yamlresume...
◐ Installing dependencies with pnpm...
Packages: +59
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 59, reused 59, downloaded 0, added 59, done
dependencies:
+ yamlresume 0.7.5
Done in 4s using pnpm v10.6.3
✔ Dependencies installed successfully!
◐ Creating resume file resume.yml...
✔ Created resume.yml successfully.
◐ Initializing git repository...
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m
Initialized empty Git repository in /tmp/yamlresume/.git/
✔ Git repository initialized!
[master (root-commit) 53c6210] init a new YAMLResume project
4 files changed, 421 insertions(+)
create mode 100644 .gitignore
create mode 100644 README.md
create mode 100644 package.json
create mode 100644 resume.yml
✔ Initial commit created!
ℹ
✨ Project created successfully!
ℹ
Next steps:
ℹ 1. cd yamlresume
ℹ 2. Edit your resume: resume.yml
ℹ 3. Build your resume: pnpm run build
ℹ 4. Watch for changes: pnpm run dev
ℹ 5. Show all commands: pnpm run yamlresume help
ℹ
Learn more:
ℹ 🏠 Homepage: https://yamlresume.dev
ℹ 📖 Documentation: https://yamlresume.dev/docs/
ℹ 🎨 Templates: https://yamlresume.dev/docs/layouts/latex/templates
ℹ 📝 Schema: https://yamlresume.dev/docs/compiler/schema
```
## Estructura del Proyecto
El proyecto generado se ve así:
```
my-resume/
├── package.json # Configuración del proyecto con dependencia yamlresume
├── .gitignore # Reglas de ignore de Git
├── README.md # Documentación del proyecto
└── resume.yml # Tu currículum YAML (nombre de archivo que elijas)
```
## Comandos Disponibles
En el proyecto generado, puedes ejecutar:
* `npm run build` - Construir tu currículum a PDF
* `npm run dev` - Vigilar cambios y reconstruir automáticamente
* `npm run validate` - Validar tu currículum contra el esquema
* `npm run yamlresume` - Ejecutar el CLI de YAMLResume
# Ecosistema
URL: (/es/docs/ecosystem)
YAMLResume proporciona un conjunto de herramientas para ayudarte a crear,
convertir y gestionar tus currículums de manera más eficiente. Aquí hay algunas
de las utilidades clave disponibles:
## create-yamlresume
[create-yamlresume](./ecosystem/create-yamlresume) facilita iniciar un nuevo
proyecto de YAMLResume con un comando de una sola línea. Estructurará el
directorio de tu proyecto, instalará las dependencias necesarias y generará un
archivo de currículum de muestra para que puedas comenzar de inmediato.
* Estructura un nuevo proyecto con `npx create-yamlresume my-resume` o comandos
similares para `npm`, `yarn`, o `pnpm`.
* Incluye una estructura de proyecto lista para usar, scripts para construir y
validar currículums, y un archivo de currículum YAML de muestra.
## json2yamlresume
[json2yamlresume](./ecosystem/json2yamlresume) es una herramienta CLI para
convertir archivos de [JSON Resume](https://jsonresume.org/) al formato
YAMLResume.
* Convierte archivos JSON Resume a YAMLResume, transformando campos y estructura
según sea necesario.
* Asegura que tus datos sean validados contra el esquema de YAMLResume.
Estas herramientas te ayudan a migrar desde otros formatos, automatizar la
configuración del proyecto y optimizar tu flujo de trabajo con YAMLResume.
## Aprende Más
# json2yamlresume
URL: (/es/docs/ecosystem/json2yamlresume)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
[json2yamlresume](https://yamlresume.dev/docs/ecosystem/json2yamlresume) es una
[herramienta de línea de comandos](https://npmjs.com/package/json2yamlresume)
para convertir [JSON Resume](https://jsonresume.org/) al formato
[YAMLResume](https://yamlresume.dev/).
## Características
* **Conversión de Formato**: convierte sin problemas JSON Resume al formato
YAMLResume
* **[Transformación de Estructura](#reglas-de-conversión)**
* **Interfaz CLI**: interfaz de línea de comandos simple para conversión fácil
* **Validación**: construido sobre la robusta [validación de
esquema](/docs/compiler/schema) de YAMLResume
## Instalación
<>
```console
npm install -g json2yamlresume
```
```console
pnpm add -g json2yamlresume
```
```console
yarn global add json2yamlresume
```
```console
bun add -g json2yamlresume
```
>
## Uso
### Convertir un JSON Resume a YAMLResume
```bash
$ json2yamlresume input.json output.yaml
# o llama al comando sin la ruta de salida opcional, en cuyo caso la
# salida se escribirá en el mismo directorio que el archivo de entrada con el mismo
# nombre pero con extensión .yml
$ json2yamlresume input.json
```
### Mostrar ayuda
```bash
$ json2yamlresume --help
Usage: json2yamlresume [options] [output-file]
Convert JSON Resume to YAMLResume format
Arguments:
input-file Input JSON Resume file path
output-file Output YAMLResume file path
Options:
-V, --version output the version number
-h, --help display help for command
```
### Mostrar versión
```bash
$ json2yamlresume --version
0.7.4
```
## Ejemplo
Aquí hay un ejemplo de currículum en formato JSON Resume:
```json lineNumbers title="json-resume.json"
{
"basics": {
"name": "John Doe",
"label": "Software Engineer",
"email": "john@example.com",
"location": {
"city": "San Francisco",
"countryCode": "US"
},
"profiles": [
{
"network": "GitHub",
"username": "johndoe",
"url": "https://github.com/johndoe"
}
]
},
"work": [
{
"name": "Tech Corp",
"position": "Senior Developer",
"startDate": "2020-01",
"summary": "Led development of web applications.",
"highlights": [
"Increased performance by 40%",
"Mentored 5 junior developers"
]
}
],
"education": [
{
"institution": "University of California",
"area": "Computer Science",
"studyType": "Bachelor of Science",
"startDate": "2018"
}
]
}
```
Puedes llamar al siguiente comando para convertir el JSON Resume a YAMLResume:
```bash
$ json2yamlresume json-resume.json yamlresume.yml
```
Aquí está la salida en formato YAMLResume:
```yaml lineNumbers title="yamlresume.yml"
---
content:
basics:
name: John Doe
headline: Software Engineer
email: john@example.com
education:
- institution: University of California
area: Computer Science
degree: Bachelor of Science
startDate: "2018"
location:
city: San Francisco
country: US
profiles:
- network: GitHub
username: johndoe
url: https://github.com/johndoe
work:
- name: Tech Corp
position: Senior Developer
startDate: 2020-01
summary: |-
- Increased performance by 40%
- Mentored 5 junior developers
```
## Reglas de Conversión
### 1. Movimiento de Ubicación y Perfiles
* `basics.location` → `location` de nivel superior
* `basics.profiles` → `profiles` de nivel superior
* `basics.label` → `basics.headline`
### 2. Mapeo de Campos de Educación
* `education[].studyType` → `education[].degree`
### 3. Integración de Highlights
El convertidor fusiona arreglos `highlights` en campos `summary` como listas
desordenadas de markdown para estas secciones:
* `work[]`
* `volunteer[]`
* `projects[]`
Ejemplo:
```json
{
"summary": "Led development team.",
"highlights": ["Increased performance", "Mentored developers"]
}
```
Se convierte en:
```yaml
summary: |-
Led development team.
- Increased performance
- Mentored developers
```
¡Recuerda que el campo summary de YAMLResume soporta [texto
enriquecido](/docs/content/rich-text)!
### 4. Referencias
* `references[].reference` → `references[].summary`
## Secciones de JSON Resume Soportadas
El convertidor soporta todas las secciones estándar de JSON Resume:
* ✅ `basics`
* ✅ `work`
* ✅ `volunteer`
* ✅ `education`
* ✅ `awards`
* ✅ `certificates`
* ✅ `publications`
* ✅ `skills`
* ✅ `languages`
* ✅ `interests`
* ✅ `references`
* ✅ `projects`
# Fuente
URL: (/es/docs/guide/font)
Si el texto es el vehículo para la transmisión de información, entonces las
características visuales del texto en sí—es decir, la fuente—influyen en la
calidad del mensaje.
En principio, la composición de un currículum debe ser concisa y clara. En
cuanto a fuente, primero nunca debes usar fuentes que sean demasiado elaboradas,
segundo los tipos de fuentes no deben ser demasiados—mejor limitadas a tres.
Aquí discutiremos algunos conceptos básicos de fuentes y puntos principales en
la composición.
## Clasificación de fuentes
### Serif vs. sans-serif
En términos de serifas, las fuentes para alfabeto latino se dividen en dos
familias: serif y sans-serif[^1].
Una serifa es una línea diminuta adjunta al final de un trazo en una letra. Una
fuente con serifas se llama fuente serif, o fuente con serifas. En contraste,
una fuente sin serifas se llama fuente sans-serif, donde *sans* es la palabra
francesa para "sin".
### Proporcional vs. monoespaciada
Según si los anchos de las letras son iguales o no, las fuentes pueden dividirse
en monoespaciadas y proporcionales. Como su nombre sugiere, todas las letras en
una fuente monoespaciada ocupan la misma cantidad de espacio horizontal,
mientras que en una fuente proporcional no lo hacen.
En impresión tradicional, las fuentes proporcionales pueden mejorar la
legibilidad de las palabras. Debido a limitaciones técnicas, las primeras
computadoras y máquinas de escribir no podían ajustar los anchos de las letras.
Así que todos los caracteres se hicieron del mismo ancho, así las fuentes
monoespaciadas llegaron a existir. Con la mejora de la tecnología informática,
la GUI (Interfaz Gráfica de Usuario) se ha convertido en la corriente principal
y se ha estado desarrollando continuamente, las limitaciones técnicas ya no
existen, por lo que las fuentes proporcionales se han vuelto bastante populares,
ya que son más naturalmente legibles para los humanos.
### Fuente CJK
Los estilos de fuente en [CJK](https://en.wikipedia.org/wiki/CJK_characters) son
un poco complicados. Generalmente hablando, también hay fuentes serif y
sans-serif en idiomas CJK.
#### Song
**[Song](https://en.wikipedia.org/wiki/Ming_typefaces)**: conocido como 宋体/明体 en
Chino Simplificado, 宋體/明體 en Chino Tradicional, みんちょうたい/明朝体 en Japonés, 명조체/明朝體
en Coreano, es la fuente serif en CJK.
Song se usa usualmente para texto del cuerpo, encabezados y notas. Cuando se usa
para encabezados, el peso de los caracteres a menudo se aumenta para
diferenciarlos del texto del cuerpo. Actualmente es la fuente más comúnmente
usada en impresión.
#### Negrita
**[Negrita](https://en.wikipedia.org/wiki/Sans-serif)**, conocida como 黑体 en
\*Chino Simplificado,
黑體 en Chino Tradicional, es la fuente sans-serif en CJK.
Negrita se usa a menudo para titulares, introducciones, logotipos, etc. Negrita
también se usa en texto del cuerpo para enfatizar palabras específicas. Debido
al gran número de trazos en caracteres chinos y la pobre claridad de negrita en
caracteres pequeños, la impresión tradicional rara vez usa negrita como texto
del cuerpo; sin embargo, con el refinamiento de tecnología de creación de
caracteres, junto con el desarrollo de Internet y publicación digital, muchas
fuentes negritas han sido desarrolladas para texto del cuerpo, y un pequeño
número de libros ha comenzado a usar negrita como fuente de texto del cuerpo.
Además de Song y Negrita, *el chino también tiene dos estilos de fuente
adicionales que son ampliamente usados*.
#### Regular
**[Regular](https://en.wikipedia.org/wiki/Regular_script)**: conocido como 楷体 en
Chino Simplificado, 楷體 en Chino Tradicional, es el estilo más común usado en
escrituras chinas modernas.
Regular se usan principalmente para encabezados, introducciones, diálogos,
resúmenes y otros párrafos que son diferentes del texto principal. Sin embargo,
regular se usan con menos frecuencia para énfasis debido a su proximidad a Song.
#### Fangsong
**[Fangsong](https://en.wikipedia.org/wiki/Fangsong)**, conocido como 仿宋体 en
Chino Simplificado, 仿宋體 en Chino Tradicional, es un tipo de tipo de letra de
escritura regular. Se usa principalmente en la introducción, resumen y otros
párrafos que son diferentes del texto principal. Mientras tanto, también es la
fuente estándar usada en documentos oficiales producidos por el gobierno chino.
## Diseño y uso de fuentes
La publicación digital se ha estado desarrollando durante muchos años, y los
idiomas occidentales tienen un conjunto de caracteres muy pequeño, por lo que
hay muchos tipos de fuentes diseñadas por diferentes personas con varias
demandas.
Para una fuente monoespaciada, el enfoque principal está en el diseño de cada
letra individual, aparte de eso, en una fuente proporcional, el espacio entre
letras también debe ser seriamente considerado.
### Composición de letras
Las letras en cada fuente tienen una estructura consistente, los usuarios de
fuentes se supone que conozcan estos conceptos básicos:
* línea base: la línea invisible sobre la cual "H" o "n" se pone de pie
* altura-x: la distancia entre la línea base y la línea media de una fuente
* altura de ascendente: la distancia desde la línea media hasta la parte
superior del ascendente de minúsculas
* profundidad de descendente: la distancia desde la línea base hasta la parte
inferior del descendente de minúsculas
* altura capital/mayúscula: la distancia desde la línea base hasta la parte
superior de las letras mayúsculas
* ancho del carácter: el ancho de un carácter individual o glifo
### Kerning
En tipografía, el kerning es el proceso de ajustar el espaciado entre caracteres
en una fuente proporcional, usualmente para lograr un resultado visualmente
agradable[^4].
### Ligadura
En escritura y tipografía, una ligadura ocurre donde dos o más grafemas o letras
se unen como un solo glifo. Un ejemplo es el carácter æ en inglés, en el cual
las letras a y e se unen. Los ligaduras comunes en latín incluyen Æ, Œ, fi, fl, ff,
ffi, ffl, ß, ij, etc., siendo el más común fi y fl.
Las ligaduras en impresión se originan de caracteres divididos con guiones en
escritura a mano. Después del nacimiento de la impresión de tipos móviles,
muchas ligaduras se hicieron directamente en tipo. Sin embargo, después del uso
generalizado de fuentes sans-serif en los años 1950 y fotocomposición en los
años 1970, el uso de letras en bloque se volvió raro. El software de composición
digital más temprano que podía usar ligaduras para composición digital es TeX
creado por [Donald Knuth](https://en.wikipedia.org/wiki/Donald_Knuth). Esta
tendencia también afectó la publicación de escritorio después de 1985. En
tiempos tempranos, el software no podía reemplazar letras con ligaduras (pero
TeX podía), y la mayoría de las fuentes recién hechas para computadoras no
incluían ligaduras. Además, en los primeros días de las computadoras personales,
la mayoría de las computadoras estaban en inglés, y no había necesidad práctica
para el uso de ligadura, ya que no era obligatorio usarla en el idioma inglés.
Con el desarrollo de tecnología de composición digital como
[OpenType](https://en.wikipedia.org/wiki/OpenType), las ligaduras han vuelto
gradualmente a la práctica[^5].
En documentos comerciales normales del día a día, la falta de ligaduras no se
trata como error ortográfico, pero para composición profesional en publicidad,
publicación de libros y otros campos, las ligaduras son esencialmente
requeridas.
### Cursivas
La cursiva es un estilo de fuente logrado inclinando la fuente sobre el estilo
de fuente normal; puede referirse a tipo cursivo o tipo oblicuo[^6].
Hay dos tipos de fuentes inclinadas en fuente occidental: tipo oblicuo y tipo
cursivo. El que está inclinado con un cambio en la forma de los caracteres es
"Tipo Cursivo", mientras que el que simplemente inclina la fuente original a la
derecha sin un cambio en la forma de los caracteres se conoce como tipo oblicuo.
Ya que cursivas oblicuas, que simplemente están inclinadas y distorsionadas por
algoritmos de software, tienen trazos sueltos, más y más diseños han favorecido
recientemente el uso de tipos cursivos especializados recién diseñados.
Teóricamente, las cursivas incluyen tipo cursivo y tipo oblicuo, pero debe
notarse que en realidad no todos los tipos cursivos están inclinados.
En la práctica, las cursivas se aplican usualmente a una pieza de texto para
enfatizar o distinguirla del cuerpo principal que está en fuentes serif.
### Números de estilo antiguo
Los números de estilo antiguo, también conocidos como [cifras de
texto](https://en.wikipedia.org/wiki/Text_figures), diseñados con alturas
variables para idiomas de escritura latina de una manera que se asemeja a una
línea típica de texto corrido, de ahí el nombre.
En contraste, los números de estilo de alineación (también llamados cifras de
alineación, titulación o modernas), tienen la misma altura que los caracteres en
mayúscula.
YAMLResume por defecto usa números de estilo antiguo para currículums de idiomas
de escritura latina y números de estilo de alineación para otros.
> La composición de alta calidad generalmente prefiere cifras de texto en texto del cuerpo: se
> integran mejor con letras minúsculas y versalitas, a diferencia de series de
> cifras de alineación. Las cifras de alineación se requieren en configuraciones de todas mayúsculas (de ahí
> el nombre alternativo cifras de titulación), y pueden funcionar mejor en tablas y
> hojas de cálculo.
>
> — [Text figures](https://en.wikipedia.org/wiki/Text_figures#Design)
### Fuente Occidental Recomendada
Hay toneladas de fuentes por ahí hoy en día, así que recomendar un esquema de
fuente occidental universal para tu currículum no es una tarea fácil.
* RECOMIENDA, usar fuentes serif para el texto del cuerpo principal
* RECOMIENDA, usar fuentes sans-serif para títulos, pero las fuentes serif
también pueden usarse
* RECOMIENDA, usar estilo de fuente cursiva para enfatizar texto en el cuerpo
principal, el estilo negrita correspondiente también puede usarse
Aquí hay una lista de fuentes serif comúnmente usadas:
* [Garamond](https://en.wikipedia.org/wiki/Garamond)
* [Palatino](https://en.wikipedia.org/wiki/Palatino)
* [Geogria](https://en.wikipedia.org/wiki/Georgia_\(typeface\))
* [Baskerville](https://en.wikipedia.org/wiki/Baskerville)
* [Minion](https://en.wikipedia.org/wiki/Minion_\(typeface\))
* [Hoefler Text](https://en.wikipedia.org/wiki/Hoefler_Text)
* [Linux Libertine](https://en.wikipedia.org/wiki/Linux_Libertine)
Una lista de fuentes sans-serif comúnmente usadas:
* [Helvetica](https://en.wikipedia.org/wiki/Helvetica)
* [Gill Sans](https://en.wikipedia.org/wiki/Gill_Sans)
* [Optima](https://en.wikipedia.org/wiki/Optima)
***
[^1]: [Serif vs Sans: The Final Battle](http://designreviver.com/inspiration/serif-vs-sans-the-final-battle/)
[^2]: Cuando el ancho del diseño es pequeño, usualmente no es adecuado
usar alineación justificada, porque aplicar alineación justificada
forzará a la mayoría del software a ajustar el espaciado de letras, y a menudo, el
efecto de diseño final será muy malo.
[^3]: Por ejemplo, la innovación del sistema de composición TeX radica en su
excelente algoritmo de
[justificación](https://en.wikipedia.org/wiki/TeX#Hyphenation_and_justification),
cuyo principio es ajustar el espaciado de letras para
hacer el diseño más
[justificado](https://en.wikipedia.org/wiki/Typographic_alignment#Justified).
[^4]: Una [Guía](https://designschool.canva.com/blog/kerning/) para Principiantes sobre Kerning Como un Diseñador
[^5]: [Ligadura](https://en.wikipedia.org/wiki/Ligature)
[^6]: [Tipo Cursivo](https://en.wikipedia.org/wiki/Italic_type)
# Gramática
URL: (/es/docs/guide/grammar)
## Contenido
Ser conciso es lo más importante para un currículum. La información objetiva
básica es el núcleo de un currículum:
* información personal
* información de contacto importante como teléfono, correo electrónico debe
ser clara
* antecedentes educativos
* si eres un recién graduado, puedes agregar antecedentes educativos de
preparatoria
* habilidades profesionales
* premios
* experiencias laborales (pasantías)
Ten cuidado al agregar información subjetiva:
* autoevaluación
* pasatiempos personales
* actividades sociales, experiencias de voluntariado, etc., que no tienen
relaciones claras con el puesto solicitado
Ten cuidado al agregar información objetiva que no esté relacionada con el
puesto solicitado:
* fotos
* fecha de nacimiento
* dirección de casa
* nacionalidad
* identidad política
* estado civil y familiar
Contenidos prohibidos:
* "Mi Currículum" como título
* marcas de agua de logotipos en plantillas de currículum de diferentes fuentes
## Ortografía
Los errores ortográficos en un currículum son un gran no-no en una búsqueda de
empleo. Demasiados errores ortográficos elementales pueden afectar la primera
impresión de un empleador sobre un solicitante. La mayoría del software tiene un
corrector ortográfico, así que úsalo apropiadamente para evitar muchos errores
ortográficos primarios. Por supuesto, no confíes demasiado en la verificación
ortográfica del software, es mejor encontrar un amigo de confianza para una
corrección de pruebas.
### Nombres propios
Además de errores ortográficos comunes, hay errores ortográficos muy frecuentes
en nombres propios, porque son más sensibles a mayúsculas y minúsculas. La misma
combinación de letras con diferentes capitalizaciones puede tener significados
completamente diferentes en varios campos, por lo que los solicitantes de empleo
deben ser muy cautelosos. Por ejemplo, [iOS](http://www.apple.com/ios/) con "i"
minúscula representa el sistema operativo móvil en un Apple iPhone, mientras que
[IOS](https://en.wikipedia.org/wiki/Cisco_IOS) con "I" mayúscula es el sistema
dedicado en routers Cisco.
Limitado a nuestros antecedentes, esta guía resume algunos errores ortográficos
comunes de nombres propios dentro del campo de TI.
| Errores tipográficos | Corrección |
| ------------------------------ | -------------- |
| ajax | Ajax AJAX |
| android | Android |
| android studio | Android Studio |
| APP | App |
| AppStore, app store | App Store |
| Css, css | CSS |
| eclipse | Eclipse |
| git, GIT | Git |
| Html, html | HTML |
| Http, http | HTTP |
| json, Json | JSON |
| JAVA, java | Java |
| Javascript, javascript, JS, js | JavaScript |
| linux, LINUX | Linux |
| mysql | MySQL |
| node, Node, NodeJS, nodejs | Node.js |
| OC, oc, objective-c | Objective-C |
| python | Python |
| ruby | Ruby |
| sqlite | SQLite |
| xml, Xml | XML |
| xcode, XCODE, XCode | Xcode |
| ios, IOS | iOS |
| iphone, IPHONE | iPhone |
| jquery, JQuery | jQuery |
## Sintaxis
Comparado con la escritura ordinaria, hay algunos requisitos gramaticales
especiales para la escritura de currículums.
* generalmente usa el tiempo pasado, pero si estás describiendo el trabajo
actual o experiencia educativa, usa el tiempo presente
* generalmente comienza un elemento con un verbo en tiempo pasado, omitiendo el
sujeto
* intenta usar oraciones simples y cortas que sean fáciles de entender, en lugar
de cláusulas largas y complejas
* lista antecedentes educativos y experiencias laborales en retrospectiva, y el
formato de tiempo debe ser preciso al mes
* usa el formato de tiempo estándar como "2015.05", o formato que pueda ser
definitivamente interpretado, como "Junio, 2016", en lugar de abreviaciones de
año como "05/06", que pueden interpretarse de manera diferente en diferentes
países
Aquí hay una lista de 100 palabras comúnmente usadas en tiempo pasado en la
escritura de currículums:
| | | | | |
| ------------- | ------------ | ------------ | ------------ | ------------ |
| Accelerated | Accomplished | Accounted | Accumulated | Achieved |
| Administrated | Arbitrated | Articulated | Boosted | Briefed |
| Broadened | Budgeted | Campaigned | Chaired | Championed |
| Clarified | Coached | Collaborated | Coordinated | Corroborated |
| Cultivated | Customized | Decided | Decreased | Delegated |
| Demonstrated | Designated | Developed | Devised | Diagnosed |
| Documented | Doubled | Economized | Edited | Educated |
| Empowered | Enabled | Encouraged | Endorsed | Enhanced |
| Facilitated | Focused | Forecasted | Generated | Harmonized |
| Harnessed | Identified | Illustrated | Impressed | Improved |
| Increased | Justified | Launched | Led | Magnified |
| Managed | Marketed | Mastered | Navigated | Negotiated |
| Observed | Obtained | Organized | Orchestrated | Participated |
| Pinpointed | Performed | Publicized | Published | Realigned |
| Recognized | Recommended | Selected | Separated | Spearheaded |
| Stimulated | Succeeded | Surpassed | Synchronized | Synergized |
| Tabulated | Targeted | Tested | Traded | Translated |
| Triggered | Triumphed | Troubleshot | Uncovered | Underwrote |
| Unearthed | Unified | Upgraded | Urged | Utilized |
| Validated | Verbalized | Verified | Vitalized | Yielded |
# Guía
URL: (/es/docs/guide)
## Una Guía para la Escritura y Composición de Currículums
Un currículum da a las personas una primera impresión de tu carrera.
En una hoja de papel A4 (210 mm \* 297 mm), un currículum termina la etapa
anterior de tu vida y comienza la siguiente.
> Una torre de nueve pisos surge de un montón de tierra.
>
> — [Laozi](https://en.wikipedia.org/wiki/Laozi), Capítulo 64
Un currículum bien impreso se basa en detalles como fuente, puntuación, diseño
y gramática.
Esta guía explica sistemáticamente los elementos esenciales de la escritura y
composición de currículums con especial énfasis en la tipografía, ayudándote a
hacer un currículum hermoso en forma y espíritu. Para cada tema, primero explica
QUÉ es, luego POR QUÉ es así, y finalmente CÓMO hacerlo.
La guía intenta ser lo más concisa y clara posible, hay cuatro niveles de
prioridad para las diferentes explicaciones:
* **DEBE**, obligatorio en la composición, error grave si se viola
* **RECOMIENDA**, conforme a los estándares generales de composición, altamente
recomendado
* **NO DEBERÍA**, requiere conocimiento o características avanzadas en
composición, o diverso en diferentes idiomas y culturas, o varía con
regulaciones en empresas, peligroso de usar si no se está informado
* **NO DEBE**, conflicto con estándares generales de composición, prohibido aplicar
# Publicación
URL: (/es/docs/guide/publishing)
## Formato de archivo
Los formatos de archivo comunes para currículums incluyen:
* PDF
* Microsoft Word (doc, docx)
* Texto Plano
* HTML
Aquí recomendamos más el PDF:
* PDF tiene excelente calidad de salida multiplataforma, asegurando impresión y
visualización casi 100% consistentes
* PDF puede ser incrustado con fuentes, permitiendo gran libertad en la
selección de fuentes
* lector PDF predeterminado disponible en la mayoría de las plataformas
* Windows 8 y superior tienen un lector PDF integrado
* macOS tiene
[Preview](https://en.wikipedia.org/wiki/Preview_\(Mac_OS\)), iOS
tiene [iBooks](http://www.apple.com/ibooks/)
* muchos navegadores (como Chrome) tienen
[pdf.js](http://mozilla.github.io/pdf.js/) integrado, que también puede abrir
PDF por defecto
Es más fácil aprender MS Word, pero entregar un currículum con formato Word
tiene grandes desventajas:
* Los documentos de Word deben abrirse con software de oficina adicional
instalado
* Microsoft Word, [WPS Office](https://wps.com) para Windows
* [iWork](https://en.wikipedia.org/wiki/IWork) para macOS
* [WPS Office](https://wps.com), [LibreOffice](https://www.libreoffice.org/)
para Linux
* muchos sistemas de edición de documentos en línea como [Google
Docs](https://docs.google.com/) también pueden abrir y editar documentos Word
* Los documentos de Word pueden mostrarse bastante diferentes en diferentes
softwares en diferentes plataformas
* en realidad no todos tienen instalado [Microsoft
Word](https://products.office.com/en-us/word) en su computadora
* otro hecho es que una licencia genuina para Microsoft Word puede costar
cientos de dólares
* para intentar asegurar visualización y salida consistentes, los documentos
Word se usan mejor con solo unas pocas fuentes comunes a los principales
sistemas operativos, lo que resulta en documentos Word con muy poca libertad en
la selección de fuentes.
Por supuesto, diferentes gerentes de RR.HH. en varias empresas pueden tener
diferentes requisitos y preferencias. Recomendamos que exportes el currículum a
PDF como alternativa si lo haces en Word
## Etiqueta de correo electrónico
Aparte del sistema de reclutamiento propietario de la empresa, el método
principal de enviar currículums para solicitudes de empleo debería ser el correo
electrónico. Algunas etiquetas básicas de correo electrónico son las siguientes.
* establece el apodo de correo electrónico correcto, no uses apodos informales
demasiado elaborados, esto dará al empleador la impresión de ser muy poco
profesional
* usa un formato uniforme en el encabezado del correo electrónico, mantenlo
claro y conciso para transmitir la información más importante
* formato recomendado: `Aplicar-Empresa Posición-Nombre-[Universidad/Educación]-[Experiencia Laboral]`
* el cuerpo del correo electrónico debe ser conciso, no se recomienda escribir
una larga carta de presentación con mucha evaluación subjetiva personal
* mejor agregar el título y un saludo al comienzo del texto
* contenidos en el cuerpo
* información personal básica, como estado laboral (en servicio o no),
posición, educación y experiencias laborales, etc.
* posición a la que se aplica
* enfoque de aplicación, si fue recomendado por otros
* agregar un firmante que contenga nombre e información de contacto
(teléfono/correo electrónico)
* adjunta el archivo del currículum nombrado con el mismo formato del encabezado
# Puntuación
URL: (/es/docs/guide/punctuations)
La puntuación es la parte más imperceptible pero también la más propensa a
errores en la escritura de currículums. El hecho de que puedas usar la
puntuación correcta y estandarizada refleja la actitud del solicitante de empleo
al aplicar al trabajo.
El uso correcto y estandarizado de la puntuación puede parecer fácil, pero no es
tan simple como parece. La razón principal es que diferentes entornos
lingüísticos o no tienen una especificación clara para el uso de la puntuación,
o tienen una especificación pero muchos lugares no están claramente definidos, o
hay varios conjuntos de [guías de
estilo](https://en.wikipedia.org/wiki/Style_guide) pero son incompatibles o
incluso contradictorias entre sí; y en segundo lugar, la composición real a
menudo encuentra la situación de mezcla de múltiples idiomas, y entonces el
problema se vuelve aún más complicado. Esta guía intenta resumir algunas reglas
generales para el uso de la puntuación para tu referencia.
* DEBE, agregar un espacio después de comas, puntos, punto y coma, dos puntos,
signos de exclamación y signos de interrogación
* DEBE, agregar un espacio antes de un paréntesis de apertura y después de un
paréntesis de cierre, igual que una palabra, pero sin espacio después de un
paréntesis de cierre seguido de una coma
* RECOMIENDA, agregar un espacio entre un número y su unidad
* RECOMIENDA, no agregar espacios alrededor de un guion, a veces necesario ajustar
el espaciado de letras
* RECOMIENDA, no agregar espacios alrededor de una barra que ubica dos cosas paralelas
como "A o B"
* RECOMIENDA, usar comillas (`'`、`'`、`"`、`"`), en lugar de
[apóstrofes](https://en.wikipedia.org/wiki/Apostrophe)
* NO DEBERÍA, agregar ningún signo de puntuación al final de elementos en una [lista
de viñetas](https://en.wikipedia.org/wiki/Bullet_\(typography\))
* NO DEBE, colgar un signo de puntuación al inicio de una línea, lo cual puede
evitarse mediante configuraciones automáticas del software o ajuste manual
## Marca conectiva
Guion (-), guion corto (–), y guion largo (—) son tres signos de puntuación que
pueden confundirse fácilmente y llevar a errores. El uso de ellos se describe a
continuación.
> para un guion, escribe un guion (-);
>
> para un guion corto, escribe dos guiones (--);
>
> para un guion largo, escribe tres guiones (---);
>
> para un signo menos, escribe un guion en modo matemáticas ($-$).
>
> — Donald Knuth, [The TeXBook](https://en.wikipedia.org/wiki/Computers_and_Typesetting)
### Guion (-)
El guion se usa principalmente para:
* palabras compuestas como "upper-case letter"
* separar números o caracteres, como números de teléfono, "1-888-777-666"
* dividir la palabra al final de una línea para mantener todo el diseño ordenado
Hay algunas reglas sobre la división al final de una línea:
* intenta no dividir la última palabra en más de tres líneas continuas
* evita dividir nombres propios, nombres personales, etc.
* evita la división entre páginas
* segmenta palabras según sílabas en principio, sin embargo la posición para
dividir varía con las palabras, por lo que es mejor consultar diccionarios si
es necesario[^7]
### Guion corto (–)
La longitud de un guion corto es igual al ancho de la "N" mayúscula, y es la
mitad de la longitud de un guion largo. Se usa principalmente para:
* indicar un rango de números, fecha y hora, etc. como fechas en un año,
"julio–agosto 1968"
* indicar los puntos de inicio y fin de la ruta de navegación, como
"ruta Boston–Hartford"
Al usar un guion corto, generalmente no es necesario agregar espacios alrededor
de él.
### Guion largo (—)
La longitud de un guion largo es igual al ancho de la "M" mayúscula, y su uso es
el más flexible y complejo. Usualmente se usa para:
* explicar algo en detalle, equivalente a paréntesis o dos puntos
* segmentar cláusulas declarativas
* indicar que la conversación es interrumpida, en cuyo caso también puede
usarse puntos suspensivos
Además, hay situaciones donde dos o tres guiones largos se unen
juntos, pero no entraré en detalles aquí.[^8].
***
[^7]: El software de composición profesional generalmente tiene función de
división automática, hasta cierto punto puede ubicar la posición para
la división si se activa, pero es mejor verificar
artificialmente de nuevo.
[^8]: [Wikipedia/Dash](https://en.wikipedia.org/wiki/Dash) demuestra el uso detallado
de este símbolo y los métodos de entrada de él en diferentes sistemas
operativos.
# Composición
URL: (/es/docs/guide/typesetting)
La composición es "arquitectura en dos dimensiones."
Si el texto y sus fuentes son los materiales del edificio, entonces la
composición es los planos del edificio. Antes de discutir la composición,
necesitamos aclarar algunos conceptos básicos, especialmente el sistema de
unidades dimensionales comúnmente usado en composición.
## Tamaño de fuente
El tamaño de fuente es la medida estándar para el tamaño de los caracteres. La
unidad universal internacional del tamaño de fuente es el punto.
El [punto](https://en.wikipedia.org/wiki/Point_\(typography\)) usualmente se
abrevia como pt, es la unidad de medida más pequeña en composición. De hecho, el
tamaño del punto ha variado a lo largo de la historia de la impresión. Desde el
siglo XVIII, el tamaño del punto ha variado de 0.18 a 0.4 mm. Tras la llegada de
la [publicación de escritorio](https://en.wikipedia.org/wiki/Desktop_publishing)
en las décadas de 1980 y 1990, la [impresión
digital](https://en.wikipedia.org/wiki/Digital_printing) ha suplantado en gran
medida la [impresión tipográfica](https://en.wikipedia.org/wiki/Printing_press)
y gradualmente estableció el punto DTP como el estándar de facto.
El punto DTP se define como 1/72 de una
[pulgada](https://en.wikipedia.org/wiki/Inch).
La mayoría de las fuentes tendrán los mejores efectos cuando se establezcan en
10-12 pt. En otras palabras, tanto los trazos y estructura de los caracteres en
sí como el espaciado entre letras presentarán efectos visuales relativamente
buenos en tal tamaño. Cuanto mayor sea el tamaño de fuente, más suelto aparecerá
el texto, por lo que necesitas disminuir manualmente el espaciado de letras; por
otro lado, cuanto menor sea el tamaño de fuente, más compacto aparecerá el
texto, por lo que necesitas aumentar manualmente el espaciado de letras.
| pt | mm | cm | pica | pulgada |
| -- | ------ | ------- | ---- | ------- |
| 1 | 0.3528 | 0.03528 | 1/12 | 1/72 |
## Interlineado
El interlineado o espaciado de línea se refiere a la distancia entre las líneas
base de dos líneas consecutivas.
El interlineado ideal es al menos el 120% del tamaño de fuente del texto,
generalmente se recomiendan 1.2-1.5 veces. Diferentes fuentes tienen diferente
altura-x, en principio, cuanto mayor sea la altura-x de la fuente aplicada,
mayor debe ser el interlineado, a la inversa, cuanto menor sea la altura-x,
menor será el interlineado.
## Diseño de página
El diseño es el esquema de la composición, es como la cuerda principal de una
red de pesca, una vez que la cuerda principal se levanta, todas las mallas se
extienden naturalmente. Además de las reglas generales de composición para
tamaño de fuente e interlineado, hay algunos requisitos únicos en el diseño de
currículums. En principio, es mejor controlar el currículum en una página.
* Hacer el lenguaje claro y conciso
* Ajustar el tamaño de fuente e interlineado dentro de un rango razonable
* Mantener los márgenes de página en 10-25 mm y hacer los márgenes izquierdo y
derecho simétricos
* Usar listas en lugar de oraciones paralelas para listar información
* Usar alineación a la izquierda, teniendo cuidado al usar alineación
justificada ya que la alineación justificada puede causar problemas en la
división de palabras y el espaciado de letras porque las longitudes de las
palabras son diferentes
# Diseño
URL: (/es/docs/layouts)
El núcleo de un currículum es el contenido, pero el diseño también es importante. Muchos generadores de currículums basados en JSON/YAML solo se centran en el contenido, dejando el diseño intacto, lo que deja un gran problema para el usuario.
A diferencia de otros generadores de currículums, YAMLResume proporciona una solución de diseño con opinión lista para usar, que permite a los usuarios centrarse en el contenido del currículum mientras generan currículums de aspecto profesional con un diseño y una composición tipográfica perfectos en píxeles.
A partir de v0.8.0, YAMLResume admite múltiples diseños y múltiples motores de salida (LaTeX y Markdown) a través de la matriz `layouts`.
Aquí hay un ejemplo de configuración de diseño en un archivo `resume.yml`:
```yml lineNumbers title="resume.yml"
---
content:
# ...
locale:
language: en
layouts:
- engine: latex
template: moderncv-banking
page:
showPageNumbers: true
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
typography:
fontSize: 11pt
- engine: markdown
```
## Aprende Más
# Chinese
URL: (/es/docs/locale/chinese)
El idioma [chino](https://en.wikipedia.org/wiki/Chinese_language) pertenece a la
[familia de lenguas
sino-tibetanas](https://en.wikipedia.org/wiki/Sino-Tibetan_language_family), muy
diferente de las lenguas de escritura latina. Alrededor de 1.400 millones de
personas, aproximadamente el 17% de la población mundial, hablan alguna variedad
de chino como lengua materna.
## Lingüística
### Conjunto de caracteres
Los [caracteres chinos](https://en.wikipedia.org/wiki/Chinese_characters) y los
[caracteres
latinos](https://en.wikipedia.org/wiki/Western_Latin_character_sets_\(computing\))
representan dos enfoques fundamentalmente distintos para la escritura.
El alfabeto latino tiene un conjunto de caracteres limitado: con relativamente
pocos signos se puede representar un vocabulario muy amplio; cada carácter
representa un sonido específico o
[fonema](https://en.wikipedia.org/wiki/Phoneme), y las palabras se forman
combinando estos caracteres en secuencias concretas. El chino, en cambio, cuenta
con decenas de miles de caracteres para expresar toda la amplitud del idioma;
cada carácter representa un [morfema](https://en.wikipedia.org/wiki/Morpheme) o
palabra, a menudo transmitiendo significado directamente, y las palabras se
forman combinando caracteres individuales, cada uno con su propio significado y
pronunciación.
Esta diferencia fundamental en los sistemas de escritura tiene implicaciones
importantes para el aprendizaje de idiomas, el procesamiento de texto y el
intercambio cultural. Mientras que los caracteres latinos son relativamente
fáciles de aprender y utilizar, los caracteres chinos requieren una memorización
y práctica considerables.
### Variantes
Aunque existen muchas variantes regionales del chino, las dos formas escritas
principales son el chino simplificado y el chino tradicional.
Desglose rápido:
**Chino simplificado**
* Se usa principalmente en China continental y Singapur.
* Desarrollado a mediados del siglo XX para aumentar la alfabetización.
* Utiliza [caracteres
simplificados](https://en.wikipedia.org/wiki/Simplified_Chinese_characters), por
lo general con menos trazos que los tradicionales.
**Chino tradicional**
* Se usa principalmente en Hong Kong, Macao, Taiwán y muchas comunidades chinas
en el extranjero.
* Es la forma más antigua de la escritura china.
* Utiliza [caracteres
tradicionales](https://en.wikipedia.org/wiki/Traditional_Chinese_characters),
con más trazos y de mayor complejidad.
Es importante señalar que tanto el chino simplificado como el tradicional pueden
emplearse para escribir diversas variedades del idioma, como
[mandarín](https://en.wikipedia.org/wiki/Mandarin_Chinese),
[cantonés](https://en.wikipedia.org/wiki/Cantonese) u
[hokkien](https://en.wikipedia.org/wiki/Hokkien).
A su vez, dentro del chino tradicional existen al menos dos variantes: la de
Hong Kong [zh-HK](https://simplelocalize.io/data/locale-code/zh-HK/) y la de
Taiwán [zh-TW](https://simplelocalize.io/data/locale-code/zh-TW/). La mayoría de
los textos en zh-HK y zh-TW son idénticos, con solo unas pocas diferencias
menores.
Por ejemplo, la palabra «software» se traduce como «軟件» en zh-HK, mientras que
en zh-TW se usa «軟體». Hay decenas de palabras en inglés que se traducen de forma
distinta entre zh-HK y zh-TW; más detalles
[aquí](https://zh.wikipedia.org/wiki/%E7%B9%81%E4%BD%93%E5%AD%97#%E7%94%A8%E8%AA%9E%E5%B7%AE%E7%95%B0).
En general, YAMLResume no puede hacer demasiado respecto a las diferencias entre
zh-HK y zh-TW: las personas usuarias deben decidir qué variante usar al redactar
el currículum y asegurarse de que el contenido respete las convenciones de zh-HK
o zh-TW. No obstante, hay un aspecto que YAMLResume sí debe manejar
correctamente: algunos países y regiones tienen nombres distintos en zh-HK y
zh-TW. [Arabia Saudí](https://en.wikipedia.org/wiki/Saudi_Arabia), por ejemplo,
se traduce como «沙特阿拉伯» en zh-HK y como «沙烏地阿拉伯» en zh-TW. YAMLResume se encarga
[aquí](#location-countries-and-regions) de todos los países y regiones con
traducciones diferentes entre zh-HK y zh-TW.
## Convenciones
### Fecha
Las fechas se presentan de forma diferente en inglés y en chino. Por ejemplo,
«Jun 2018 – Present» en inglés debería traducirse al chino como «2018 年 6 月至今»:
se invierte el orden de año y mes y el guion corto «–» se sustituye por «至».
Además, en chino no se emplean palabras específicas para los meses; en su lugar,
se usa un número arábigo junto con el carácter «月», lo que lo convierte
prácticamente en un juego de contar.
| English | Chinese |
| --------------- | ------- |
| January (Jan) | 1 月 |
| February (Feb) | 2 月 |
| March (Mar) | 3 月 |
| April (Apr) | 4 月 |
| May (May) | 5 月 |
| June (Jun) | 6 月 |
| July (Jul) | 7 月 |
| August (Aug) | 8 月 |
| September (Sep) | 9 月 |
| October (Oct) | 10 月 |
| November (Nov) | 11 月 |
| December (Dec) | 12 月 |
### Ubicación
El formato de las direcciones difiere entre el
[inglés](/locale/english#location) y el chino. A diferencia del
inglés, al presentar una ubicación con dirección, ciudad y país en chino, la
parte más general (país, provincia/estado, etc.) suele ir primero, mientras que
la parte más específica (pueblo/ciudad, dirección, etc.) queda al final.
## Composición tipográfica
### Fuente
Al igual que en las lenguas con escritura latina, el chino dispone de una fuente
con serifa [Song](/es/docs/guide/font#song) y una sin serifa
[Bold](/es/docs/guide/font#bold). Además, cuenta con dos estilos adicionales:
[Regular](/es/docs/guide/font#regular) y
[Fangsong](/es/docs/guide/font#fangsong). Consulta [Guía -> Fuente -> CJK
Font](/es/docs/guide/font#cjk-font) para más detalles.
YAMLResume utiliza Song como fuente principal para los currículums en chino.
### Puntuación
La puntuación en chino, como el propio idioma, tiene características propias.
Una distinción importante es la diferencia entre puntuación de [medio ancho y de
ancho completo](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms).
La diferencia principal entre ambas en chino reside en su ancho visual y en el
uso previsto.
**Puntuación de medio ancho**
* **Más estrecha**: se usa normalmente junto con caracteres latinos o números,
por ejemplo en URLs, direcciones de correo o fragmentos de código.
* **Menos común**: aparece con menos frecuencia en textos estándar en chino y
suele emplearse dentro de frases o párrafos con lenguas de alfabeto latino.
**Puntuación de ancho completo**
* **Más ancha**: está diseñada para coincidir con el ancho de los caracteres
chinos, garantizando una apariencia equilibrada y consistente.
* **Más común**: es la puntuación estándar en los textos en chino.
Usar el tipo correcto de puntuación es crucial para el formato y la legibilidad
del texto en chino. Una puntuación inadecuada puede provocar inconsistencias
visuales y confusión.
Comprender la diferencia entre puntuación de medio ancho y de ancho completo
ayuda a asegurar que el texto en chino esté bien formateado y resulte agradable
visualmente. A continuación se muestra una tabla con ambos tipos de signos en su
forma correspondiente; se usan respectivamente en lenguas con alfabeto latino y
en chino.
| | English | Simplified Chinese |
| ---------------------- | ------- | ------------------ |
| Full Stop/Period (句号) | . | 。 |
| Question Mark (问号) | ? | ? |
| Exclamation Mark (感叹号) | ! | ! |
| Comma (逗点) | , | , |
| Colon (冒号) | : | : |
| Semicolon (分号) | ; | ; |
| Parenthesis (小括号) | () | () |
| Bracket (中括号) | \[] | [] |
| Brace (花括号) | \{} | {} |
Para los currículums, es responsabilidad de quien escribe utilizar la puntuación
correcta al redactar el contenido; YAMLResume, por su parte, garantiza que
nuestras plantillas siempre usen signos adecuados. Actualmente destacamos dos
casos:
#### Coma
En inglés, la coma `,` separa partes de una oración y elementos de una lista; en
chino se usa la coma china `,` para separar oraciones, y una coma especial de
enumeración ([顿号](https://en.wikipedia.org/wiki/Comma#East_Asia), `、`) para
separar elementos en una lista (p. ej., lista de palabras clave).
#### Dos puntos
En inglés y en chino también existen
[diferencias](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) en
los dos puntos. El [dos puntos en
inglés](https://www.compart.com/en/unicode/U+003A) es `:`, con Unicode `U+003A`;
el [dos puntos en chino](https://www.compart.com/en/unicode/U+FF1A) es `:`, con
Unicode `U+FF1A`. Como siempre, YAMLResume se encarga de esto: usamos el signo
correcto en términos fijos como «Keywords:» («关键字:» en chino simplificado,
«關鍵字:» en chino tradicional) y «Courses:» («课程:» en chino simplificado, «課程:» en
chino tradicional) en nuestras plantillas.
### Números old style
De forma predeterminada, **YAMLResume no usa [números old
style](/es/docs/guide/font#old-style-numbers) en currículums en chino**. ¿Por qué?
Porque los caracteres chinos tienen la misma altura y ancho (de ahí que también
se les llame «方块字», caracteres cuadrados); en esencia, son monoespaciados por
naturaleza. Al usar cifras en estilo lining, el estilo numérico se adapta mejor
a los caracteres chinos.
### Cursiva
De forma predeterminada, **YAMLResume no usa cursiva en currículums en chino**,
ya que se considera una [mala
práctica](https://drwhispers.com/2021/11/16/italics-in-chinese/). ¿Por qué?
En las lenguas de escritura latina, la cursiva suele diferenciarse de las
serifas del texto principal y se utiliza para enfatizar o distinguir partes del
texto; sin embargo, inclinar caracteres chinos puede romper el flujo natural y
perjudicar la legibilidad.
A diferencia de los caracteres latinos, los caracteres chinos son cuadrados y no
se escriben tradicionalmente en cursiva; muchas fuentes chinas ni siquiera
incluyen glifos en cursiva específicos para cada carácter. Cuando se «pone en
cursiva» texto en chino, el software a menudo solo inclina los caracteres, lo
que puede producir un resultado visual poco agradable y poco profesional.
## Traducciones
YAMLResume adopta las siguientes traducciones para varias opciones y términos
utilizados en los currículums en chino.
### Educación (grados)
| English | Chinese (Simplified) | Chinese (Traditional, Hong Kong) | Chinese (Traditional, Taiwan) |
| ------------- | -------------------- | -------------------------------- | ----------------------------- |
| Middle School | 初中 | 初中 | 初中 |
| High School | 高中 | 高中 | 高中 |
| Diploma | 专科 | 專科 | 專科 |
| Associate | 副学士 | 副學士 | 副學士 |
| Bachelor | 学士 | 學士 | 學士 |
| Master | 硕士 | 碩士 | 碩士 |
| Doctor | 博士 | 博士 | 博士 |
### Idiomas
| English | Chinese (Simplified) | Chinese (Traditional, Hong Kong) | Chinese (Traditional, Taiwan) |
| ----------- | -------------------- | -------------------------------- | ----------------------------- |
| Afrikaans | 南非荷兰语 | 南非荷蘭語 | 南非荷蘭語 |
| Albanian | 阿尔巴尼亚语 | 阿爾巴尼亞語 | 阿爾巴尼亞語 |
| Amharic | 阿姆哈拉语 | 阿姆哈拉語 | 阿姆哈拉語 |
| Arabic | 阿拉伯语 | 阿拉伯語 | 阿拉伯語 |
| Azerbaijani | 阿塞拜疆语 | 阿塞拜疆語 | 亞塞拜然語 |
| Belarusian | 白俄罗斯语 | 白俄羅斯語 | 白俄羅斯語 |
| Bengali | 孟加拉语 | 孟加拉語 | 孟加拉語 |
| Bhojpuri | 博杰普尔语 | 博傑普爾語 | 博傑普爾語 |
| Bulgarian | 保加利亚语 | 保加利亞語 | 保加利亞語 |
| Burmese | 缅甸语 | 緬甸語 | 緬甸語 |
| Cantonese | 粤语 | 粵語 | 粵語 |
| Catalan | 加泰罗尼亚语 | 加泰羅尼亞語 | 加泰隆尼亞語 |
| Chinese | 中文 | 中文 | 中文 |
| Croatian | 克罗地亚语 | 克羅地亞語 | 克羅埃西亞語 |
| Czech | 捷克语 | 捷克語 | 捷克語 |
| Danish | 丹麦语 | 丹麥語 | 丹麥語 |
| Dutch | 荷兰语 | 荷蘭語 | 荷蘭語 |
| English | 英语 | 英語 | 英語 |
| Estonian | 爱沙尼亚语 | 愛沙尼亞語 | 愛沙尼亞語 |
| Farsi | 波斯语 | 波斯語 | 波斯語 |
| Filipino | 菲律宾语 | 菲律賓語 | 菲律賓語 |
| Finnish | 芬兰语 | 芬蘭語 | 芬蘭語 |
| French | 法语 | 法語 | 法語 |
| German | 德语 | 德語 | 德語 |
| Greek | 希腊语 | 希臘語 | 希臘語 |
| Gujarati | 古吉拉特语 | 古吉拉特語 | 古吉拉特語 |
| Hausa | 豪萨语 | 豪薩語 | 豪薩語 |
| Hebrew | 希伯来语 | 希伯來語 | 希伯來語 |
| Hindi | 印地语 | 印地語 | 印地語 |
| Hungarian | 匈牙利语 | 匈牙利語 | 匈牙利語 |
| Icelandic | 冰岛语 | 冰島語 | 冰島語 |
| Igbo | 伊博语 | 伊博語 | 伊博語 |
| Indonesian | 印度尼西亚语 | 印度尼西亞語 | 印度尼西亞語 |
| Irish | 爱尔兰语 | 愛爾蘭語 | 愛爾蘭語 |
| Italian | 意大利语 | 意大利語 | 意大利語 |
| Japanese | 日语 | 日語 | 日語 |
| Javanese | 爪哇语 | 爪哇語 | 爪哇語 |
| Kazakh | 哈萨克语 | 哈薩克語 | 哈薩克語 |
| Khmer | 高棉语 | 高棉語 | 高棉語 |
| Korean | 韩语 | 韓語 | 韓語 |
| Lahnda | 拉亨达语 | 拉亨達語 | 拉亨達語 |
| Latvian | 拉脱维亚语 | 拉脫維亞語 | 拉脫維亞語 |
| Lithuanian | 立陶宛语 | 立陶宛語 | 立陶宛語 |
| Malay | 马来语 | 馬來語 | 馬來語 |
| Mandarin | 普通话 | 普通話 | 普通話 |
| Marathi | 马拉地语 | 馬拉地語 | 馬拉地語 |
| Nepali | 尼泊尔语 | 尼泊爾語 | 尼泊爾語 |
| Norwegian | 挪威语 | 挪威語 | 挪威語 |
| Oromo | 奥罗莫语 | 奧羅莫語 | 奧羅莫語 |
| Pashto | 普什图语 | 普什圖語 | 普什圖語 |
| Polish | 波兰语 | 波蘭語 | 波蘭語 |
| Portuguese | 葡萄牙语 | 葡萄牙語 | 葡萄牙語 |
| Romanian | 罗马尼亚语 | 羅馬尼亞語 | 羅馬尼亞語 |
| Russian | 俄语 | 俄語 | 俄語 |
| Serbian | 塞尔维亚语 | 塞爾維亞語 | 塞爾維亞語 |
| Shona | 绍纳语 | 紹納語 | 紹納語 |
| Sinhala | 僧伽罗语 | 僧伽羅語 | 僧伽羅語 |
| Slovak | 斯洛伐克语 | 斯洛伐克語 | 斯洛伐克語 |
| Slovene | 斯洛文尼亚语 | 斯洛文尼亞語 | 斯洛文尼亞語 |
| Somali | 索马里语 | 索馬里語 | 索馬里語 |
| Spanish | 西班牙语 | 西班牙語 | 西班牙語 |
| Sundanese | 巽他语 | 巽他語 | 巽他語 |
| Swahili | 斯瓦希里语 | 斯瓦希里語 | 斯瓦希里語 |
| Swedish | 瑞典语 | 瑞典語 | 瑞典語 |
| Tagalog | 他加禄语 | 他加祿語 | 他加祿語 |
| Tamil | 泰米尔语 | 泰米爾語 | 泰米爾語 |
| Telugu | 泰卢固语 | 泰盧固語 | 泰盧固語 |
| Thai | 泰语 | 泰語 | 泰語 |
| Turkish | 土耳其语 | 土耳其語 | 土耳其語 |
| Ukrainian | 乌克兰语 | 烏克蘭語 | 烏克蘭語 |
| Urdu | 乌尔都语 | 烏爾都語 | 烏爾都語 |
| Uzbek | 乌兹别克语 | 烏茲別克語 | 烏茲別克語 |
| Vietnamese | 越南语 | 越南語 | 越南語 |
| Yoruba | 约鲁巴语 | 約魯巴語 | 約魯巴語 |
| Zulu | 祖鲁语 | 祖魯語 | 祖魯語 |
### Fluidez en idiomas
| English | Chinese (Simplified) | Chinese (Traditional, Hong Kong) | Chinese (Traditional, Taiwan) |
| -------------------------------- | -------------------- | -------------------------------- | ----------------------------- |
| Elementary Proficiency | 初级水平 | 初級水平 | 初級水平 |
| Limited Working Proficiency | 有限工作水平 | 有限工作水平 | 有限工作水平 |
| Minimum Professional Proficiency | 最低专业水平 | 最低專業水平 | 最低專業水平 |
| Full Professional Proficiency | 完全专业水平 | 完全專業水平 | 完全專業水平 |
| Native or Bilingual Proficiency | 母语或双语水平 | 母語或雙語水平 | 母語或雙語水平 |
### Ubicación (países y regiones)
| English | Chinese (Simplified) | Chinese (Traditional, Hong Kong) | Chinese (Traditional, Taiwan) |
| ------------------------------------ | -------------------- | -------------------------------- | ----------------------------- |
| Afghanistan | 阿富汗 | 阿富汗 | 阿富汗 |
| Aland Islands | 奥兰群岛 | 奧蘭羣島 | 奧蘭群島 |
| Albania | 阿尔巴尼亚 | 阿爾巴尼亞 | 阿爾巴尼亞 |
| Algeria | 阿尔及利亚 | 阿爾及利亞 | 阿爾及利亞 |
| American Samoa | 美属萨摩亚 | 美屬薩摩亞 | 美屬薩摩亞 |
| Andorra | 安道尔 | 安道爾 | 安道爾 |
| Angola | 安哥拉 | 安哥拉 | 安哥拉 |
| Anguilla | 安圭拉 | 安圭拉 | 安圭拉 |
| Antarctica | 南极洲 | 南極洲 | 南極洲 |
| Antigua And Barbuda | 安提瓜和巴布达 | 安提瓜和巴布達 | 安地卡及巴布達 |
| Argentina | 阿根廷 | 阿根廷 | 阿根廷 |
| Armenia | 亚美尼亚 | 亞美尼亞 | 亞美尼亞 |
| Aruba | 阿鲁巴 | 阿魯巴 | 阿魯巴 |
| Australia | 澳大利亚 | 澳大利亞 | 澳大利亞 |
| Austria | 奥地利 | 奧地利 | 奧地利 |
| Azerbaijan | 阿塞拜疆 | 阿塞拜疆 | 亞塞拜然 |
| Bahrain | 巴林 | 巴林 | 巴林 |
| Bangladesh | 孟加拉 | 孟加拉 | 孟加拉 |
| Barbados | 巴巴多斯 | 巴巴多斯 | 巴貝多 |
| Belarus | 白俄罗斯 | 白俄羅斯 | 白俄羅斯 |
| Belgium | 比利时 | 比利時 | 比利時 |
| Belize | 伯利兹 | 伯利茲 | 貝里斯 |
| Benin | 贝宁 | 貝寧 | 貝南 |
| Bermuda | 百慕大 | 百慕大 | 百慕大 |
| Bhutan | 不丹 | 不丹 | 不丹 |
| Bolivia | 玻利维亚 | 玻利維亞 | 玻利維亞 |
| Bonaire, Sint Eustatius and Saba | 博内尔岛、圣尤斯特歇斯和萨巴岛 | 博內爾島、聖尤斯特歇斯和薩巴島 | 博內爾島、聖尤斯特歇斯和薩巴島 |
| Bosnia and Herzegovina | 波斯尼亚和黑塞哥维那 | 波斯尼亞和黑塞哥維那 | 波斯尼亞和黑塞哥維那 |
| Botswana | 博茨瓦纳 | 博茨瓦納 | 波札那 |
| Bouvet Island | 布维岛 | 布維島 | 布維島 |
| Brazil | 巴西 | 巴西 | 巴西 |
| British Indian Ocean Territory | 英属印度洋领地 | 英屬印度洋領地 | 英屬印度洋領地 |
| Brunei | 文莱 | 文萊 | 汶萊 |
| Bulgaria | 保加利亚 | 保加利亞 | 保加利亞 |
| Burkina Faso | 布基纳法索 | 布基納法索 | 布吉納法索 |
| Burundi | 布隆迪 | 布隆迪 | 蒲隆地 |
| Cambodia | 柬埔寨 | 柬埔寨 | 柬埔寨 |
| Cameroon | 喀麦隆 | 喀麥隆 | 喀麥隆 |
| Canada | 加拿大 | 加拿大 | 加拿大 |
| Cape Verde | 佛得角 | 佛得角 | 維德角 |
| Cayman Islands | 开曼群岛 | 開曼羣島 | 開曼群島 |
| Central African Republic | 中非 | 中非 | 中非 |
| Chad | 乍得 | 乍得 | 查德 |
| Chile | 智利 | 智利 | 智利 |
| China | 中国 | 中國 | 中國 |
| Christmas Island | 圣诞岛 | 聖誕島 | 聖誕島 |
| Cocos (Keeling) Islands | 科科斯(基林)群岛 | 科科斯(基林)羣島 | 科科斯(基林)群島 |
| Colombia | 哥伦比亚 | 哥倫比亞 | 哥倫比亞 |
| Comoros | 科摩罗 | 科摩羅 | 葛摩 |
| Congo | 刚果 | 剛果 | 剛果 |
| Cook Islands | 库克群岛 | 庫克羣島 | 庫克群島 |
| Costa Rica | 哥斯达黎加 | 哥斯達黎加 | 哥斯大黎加 |
| Cote D'Ivoire (Ivory Coast) | 科特迪瓦 | 科特迪瓦 | 象牙海岸 |
| Croatia | 克罗地亚 | 克羅地亞 | 克羅埃西亞 |
| Cuba | 古巴 | 古巴 | 古巴 |
| Curaçao | 库拉索 | 庫拉索 | 庫拉索 |
| Cyprus | 塞浦路斯 | 塞浦路斯 | 塞普勒斯 |
| Czech Republic | 捷克 | 捷克 | 捷克 |
| Democratic Republic of the Congo | 刚果(金) | 剛果(金) | 剛果(金) |
| Denmark | 丹麦 | 丹麥 | 丹麥 |
| Djibouti | 吉布提 | 吉布提 | 吉布提 |
| Dominica | 多米尼加 | 多米尼加 | 多明尼加 |
| Dominican Republic | 多明尼加共和国 | 多明尼加共和國 | 多明尼加共和國 |
| East Timor | 东帝汶 | 東帝汶 | 東帝汶 |
| Ecuador | 厄瓜多尔 | 厄瓜多爾 | 厄瓜多 |
| Egypt | 埃及 | 埃及 | 埃及 |
| El Salvador | 萨尔瓦多 | 薩爾瓦多 | 薩爾瓦多 |
| Equatorial Guinea | 赤道几内亚 | 赤道幾內亞 | 赤道幾內亞 |
| Eritrea | 厄立特里亚 | 厄立特里亞 | 厄利垂亞 |
| Estonia | 爱沙尼亚 | 愛沙尼亞 | 愛沙尼亞 |
| Ethiopia | 埃塞俄比亚 | 埃塞俄比亞 | 衣索比亞 |
| Falkland Islands | 福克兰群岛 | 福克蘭羣島 | 福克蘭群島 |
| Faroe Islands | 法罗群岛 | 法羅羣島 | 法羅群島 |
| Fiji Islands | 斐济 | 斐濟 | 斐濟 |
| Finland | 芬兰 | 芬蘭 | 芬蘭 |
| France | 法国 | 法國 | 法國 |
| French Guiana | 法属圭亚那 | 法屬圭亞那 | 法屬蓋亞那 |
| French Polynesia | 法属波利尼西亚 | 法屬波利尼西亞 | 法屬波利尼西亞 |
| French Southern Territories | 法属南部领地 | 法屬南部領地 | 法屬南部領地 |
| Gabon | 加蓬 | 加蓬 | 加彭 |
| Gambia The | 冈比亚 | 岡比亞 | 甘比亞 |
| Georgia | 格鲁吉亚 | 格魯吉亞 | 喬治亞 |
| Germany | 德国 | 德國 | 德國 |
| Ghana | 加纳 | 加納 | 迦納 |
| Gibraltar | 直布罗陀 | 直布羅陀 | 直布羅陀 |
| Greece | 希腊 | 希臘 | 希臘 |
| Greenland | 格陵兰岛 | 格陵蘭島 | 格陵蘭島 |
| Grenada | 格林纳达 | 格林納達 | 格瑞那達 |
| Guadeloupe | 瓜德罗普岛 | 瓜德羅普島 | 瓜德羅普島 |
| Guam | 关岛 | 關島 | 關島 |
| Guatemala | 危地马拉 | 危地馬拉 | 瓜地馬拉 |
| Guernsey and Alderney | 根西岛 | 根西島 | 根西島 |
| Guinea | 几内亚 | 幾內亞 | 幾內亞 |
| Guinea-Bissau | 几内亚比绍 | 幾內亞比紹 | 幾內亞比索 |
| Guyana | 圭亚那 | 圭亞那 | 蓋亞那 |
| Haiti | 海地 | 海地 | 海地 |
| Heard Island and McDonald Islands | 赫德·唐纳岛及麦唐纳岛 | 赫德·唐納島及麥唐納島 | 赫德·唐納島及麥唐納島 |
| Honduras | 洪都拉斯 | 洪都拉斯 | 宏都拉斯 |
| Hong Kong S.A.R. | 中国香港 | 中國香港 | 中國香港 |
| Hungary | 匈牙利 | 匈牙利 | 匈牙利 |
| Iceland | 冰岛 | 冰島 | 冰島 |
| India | 印度 | 印度 | 印度 |
| Indonesia | 印度尼西亚 | 印度尼西亞 | 印度尼西亞 |
| Iran | 伊朗 | 伊朗 | 伊朗 |
| Iraq | 伊拉克 | 伊拉克 | 伊拉克 |
| Ireland | 爱尔兰 | 愛爾蘭 | 愛爾蘭 |
| Israel | 以色列 | 以色列 | 以色列 |
| Italy | 意大利 | 意大利 | 義大利 |
| Jamaica | 牙买加 | 牙買加 | 牙買加 |
| Japan | 日本 | 日本 | 日本 |
| Jersey | 泽西岛 | 澤西島 | 澤西島 |
| Jordan | 约旦 | 約旦 | 約旦 |
| Kazakhstan | 哈萨克斯坦 | 哈薩克斯坦 | 哈薩克 |
| Kenya | 肯尼亚 | 肯尼亞 | 肯亞 |
| Kiribati | 基里巴斯 | 基里巴斯 | 吉里巴斯 |
| Kosovo | 科索沃 | 科索沃 | 科索沃 |
| Kuwait | 科威特 | 科威特 | 科威特 |
| Kyrgyzstan | 吉尔吉斯斯坦 | 吉爾吉斯斯坦 | 吉爾吉斯斯坦 |
| Laos | 寮人民民主共和国 | 寮人民民主共和國 | 寮人民民主共和國 |
| Latvia | 拉脱维亚 | 拉脫維亞 | 拉脫維亞 |
| Lebanon | 黎巴嫩 | 黎巴嫩 | 黎巴嫩 |
| Lesotho | 莱索托 | 萊索托 | 賴索托 |
| Liberia | 利比里亚 | 利比里亞 | 賴比瑞亞 |
| Libya | 利比亚 | 利比亞 | 利比亞 |
| Liechtenstein | 列支敦士登 | 列支敦士登 | 列支敦斯登 |
| Lithuania | 立陶宛 | 立陶宛 | 立陶宛 |
| Luxembourg | 卢森堡 | 盧森堡 | 盧森堡 |
| Macau S.A.R. | 中国澳门 | 中國澳門 | 中國澳門 |
| Madagascar | 马达加斯加 | 馬達加斯加 | 馬達加斯加 |
| Malawi | 马拉维 | 馬拉維 | 馬拉維 |
| Malaysia | 马来西亚 | 馬來西亞 | 馬來西亞 |
| Maldives | 马尔代夫 | 馬爾代夫 | 馬爾地夫 |
| Mali | 马里 | 馬裏 | 馬裡 |
| Malta | 马耳他 | 馬耳他 | 馬耳他 |
| Man (Isle of) | 马恩岛 | 馬恩島 | 馬恩島 |
| Marshall Islands | 马绍尔群岛 | 馬紹爾羣島 | 馬紹爾群島 |
| Martinique | 马提尼克岛 | 馬提尼克島 | 馬提尼克島 |
| Mauritania | 毛里塔尼亚 | 毛里塔尼亞 | 茅利塔尼亞 |
| Mauritius | 毛里求斯 | 毛里求斯 | 模里西斯 |
| Mayotte | 马约特 | 馬約特 | 馬約特 |
| Mexico | 墨西哥 | 墨西哥 | 墨西哥 |
| Micronesia | 密克罗尼西亚 | 密克羅尼西亞 | 密克羅尼西亞 |
| Moldova | 摩尔多瓦 | 摩爾多瓦 | 摩爾多瓦 |
| Monaco | 摩纳哥 | 摩納哥 | 摩納哥 |
| Mongolia | 蒙古 | 蒙古 | 蒙古 |
| Montenegro | 黑山 | 黑山 | 黑山 |
| Montserrat | 蒙特塞拉特 | 蒙特塞拉特 | 蒙特塞拉特 |
| Morocco | 摩洛哥 | 摩洛哥 | 摩洛哥 |
| Mozambique | 莫桑比克 | 莫桑比克 | 莫三比克 |
| Myanmar | 缅甸 | 緬甸 | 緬甸 |
| Namibia | 纳米比亚 | 納米比亞 | 奈米比亞 |
| Nauru | 瑙鲁 | 瑙魯 | 諾魯 |
| Nepal | 尼泊尔 | 尼泊爾 | 尼泊爾 |
| Netherlands | 荷兰 | 荷蘭 | 荷蘭 |
| New Caledonia | 新喀里多尼亚 | 新喀里多尼亞 | 新喀里多尼亞 |
| New Zealand | 新西兰 | 新西蘭 | 紐西蘭 |
| Nicaragua | 尼加拉瓜 | 尼加拉瓜 | 尼加拉瓜 |
| Niger | 尼日尔 | 尼日爾 | 尼日 |
| Nigeria | 尼日利亚 | 尼日利亞 | 奈及利亞 |
| Niue | 纽埃 | 紐埃 | 紐埃 |
| Norfolk Island | 诺福克岛 | 諾福克島 | 諾福克島 |
| North Korea | 朝鲜 | 朝鮮 | 朝鮮 |
| North Macedonia | 北馬其頓 | 北馬其頓 | 北馬其頓 |
| Northern Mariana Islands | 北马里亚纳群岛 | 北马里亞納羣島 | 北马里亞納群島 |
| Norway | 挪威 | 挪威 | 挪威 |
| Oman | 阿曼 | 阿曼 | 阿曼 |
| Pakistan | 巴基斯坦 | 巴基斯坦 | 巴基斯坦 |
| Palau | 帕劳 | 帕勞 | 帛琉 |
| Palestinian Territory Occupied | 巴勒斯坦 | 巴勒斯坦 | 巴勒斯坦 |
| Panama | 巴拿马 | 巴拿馬 | 巴拿馬 |
| Papua new Guinea | 巴布亚新几内亚 | 巴布亞新幾內亞 | 巴布亞紐幾內亞 |
| Paraguay | 巴拉圭 | 巴拉圭 | 巴拉圭 |
| Peru | 秘鲁 | 祕魯 | 秘魯 |
| Philippines | 菲律宾 | 菲律賓 | 菲律賓 |
| Pitcairn Island | 皮特凯恩群岛 | 皮特凱恩羣島 | 皮特凱恩群島 |
| Poland | 波兰 | 波蘭 | 波蘭 |
| Portugal | 葡萄牙 | 葡萄牙 | 葡萄牙 |
| Puerto Rico | 波多黎各 | 波多黎各 | 波多黎各 |
| Qatar | 卡塔尔 | 卡塔爾 | 卡達 |
| Reunion | 留尼汪岛 | 留尼汪島 | 留尼汪島 |
| Romania | 罗马尼亚 | 羅馬尼亞 | 羅馬尼亞 |
| Russia | 俄罗斯联邦 | 俄羅斯聯邦 | 俄羅斯聯邦 |
| Rwanda | 卢旺达 | 盧旺達 | 盧安達 |
| Saint Helena | 圣赫勒拿 | 聖赫勒拿 | 聖赫勒拿 |
| Saint Kitts And Nevis | 圣基茨和尼维斯 | 聖基茨和尼維斯 | 聖克里斯多福及尼維斯 |
| Saint Lucia | 圣卢西亚 | 聖盧西亞 | 聖露西亞 |
| Saint Pierre and Miquelon | 圣皮埃尔和密克隆 | 聖皮埃爾和密克隆 | 聖皮埃爾和密克隆 |
| Saint Vincent And The Grenadines | 圣文森特和格林纳丁斯 | 聖文森特和格林納丁斯 | 聖文森及格瑞那丁 |
| Saint-Barthelemy | 圣巴泰勒米 | 聖巴泰勒米 | 聖巴泰勒米 |
| Saint-Martin (French part) | 密克罗尼西亚 | 密克羅尼西亞 | 密克羅尼西亞 |
| Samoa | 萨摩亚 | 薩摩亞 | 薩摩亞 |
| San Marino | 圣马力诺 | 聖馬力諾 | 聖馬利諾 |
| Sao Tome and Principe | 圣多美和普林西比 | 聖多美和普林西比 | 聖多美和普林西比 |
| Saudi Arabia | 沙特阿拉伯 | 沙特阿拉伯 | 沙烏地阿拉伯 |
| Senegal | 塞内加尔 | 塞內加爾 | 塞內加爾 |
| Serbia | 塞尔维亚 | 塞爾維亞 | 塞爾維亞 |
| Seychelles | 塞舌尔 | 塞舌爾 | 塞席爾 |
| Sierra Leone | 塞拉利昂 | 塞拉利昂 | 獅子山 |
| Singapore | 新加坡 | 新加坡 | 新加坡 |
| Sint Maarten (Dutch part) | 圣马丁岛(荷兰部分) | 聖馬丁島(荷蘭部分) | 聖馬丁島(荷蘭部分) |
| Slovakia | 斯洛伐克 | 斯洛伐克 | 斯洛伐克 |
| Slovenia | 斯洛文尼亚 | 斯洛文尼亞 | 斯洛維尼亞 |
| Solomon Islands | 所罗门群岛 | 所羅門羣島 | 索羅門群島 |
| Somalia | 索马里 | 紗馬里 | 索馬利亞 |
| South Africa | 南非 | 南非 | 南非 |
| South Georgia | 南乔治亚 | 南喬治亞 | 南喬治亞 |
| South Korea | 韩国 | 韓國 | 韓國 |
| South Sudan | 南苏丹 | 南蘇丹 | 南蘇丹 |
| Spain | 西班牙 | 西班牙 | 西班牙 |
| Sri Lanka | 斯里兰卡 | 斯里蘭卡 | 斯里蘭卡 |
| Sudan | 苏丹 | 蘇丹 | 蘇丹 |
| Suriname | 苏里南 | 蘇里南 | 蘇利南 |
| Svalbard And Jan Mayen Islands | 斯瓦尔巴和扬马延群岛 | 斯瓦爾巴和揚馬延羣島 | 斯瓦爾巴和揚馬延群島 |
| Swaziland | 斯威士兰 | 斯威士蘭 | 史瓦濟蘭 |
| Sweden | 瑞典 | 瑞典 | 瑞典 |
| Switzerland | 瑞士 | 瑞士 | 瑞士 |
| Syria | 叙利亚 | 敘利亞 | 敘利亞 |
| Taiwan | 中国台湾 | 中國臺灣 | 中國臺灣 |
| Tajikistan | 塔吉克斯坦 | 塔吉克斯坦 | 塔吉克 |
| Tanzania | 坦桑尼亚 | 坦桑尼亞 | 坦尚尼亞 |
| Thailand | 泰国 | 泰國 | 泰國 |
| The Bahamas | 巴哈马 | 巴哈馬 | 巴哈馬 |
| Togo | 多哥 | 多哥 | 多哥 |
| Tokelau | 托克劳 | 托克勞 | 托克勞 |
| Tonga | 汤加 | 湯加 | 湯加 |
| Trinidad And Tobago | 特立尼达和多巴哥 | 特立尼達和多巴哥 | 千里達及托巴哥 |
| Tunisia | 突尼斯 | 突尼斯 | 突尼西亞 |
| Türkiye | 土耳其 | 土耳其 | 土耳其 |
| Turkmenistan | 土库曼斯坦 | 土庫曼斯坦 | 土庫曼 |
| Turks And Caicos Islands | 特克斯和凯科斯群岛 | 特克斯和凱科斯羣島 | 特克斯和凱科斯群島 |
| Tuvalu | 图瓦卢 | 圖瓦盧 | 吐瓦魯 |
| Uganda | 乌干达 | 烏干達 | 烏干達 |
| Ukraine | 乌克兰 | 烏克蘭 | 烏克蘭 |
| United Arab Emirates | 阿拉伯联合酋长国 | 阿拉伯聯合酋長國 | 阿拉伯聯合大公國 |
| United Kingdom | 英国 | 英國 | 英國 |
| United States | 美国 | 美國 | 美國 |
| United States Minor Outlying Islands | 美国本土外小岛屿 | 美國本土外小島嶼 | 美國本土外小島嶼 |
| Uruguay | 乌拉圭 | 烏拉圭 | 烏拉圭 |
| Uzbekistan | 乌兹别克斯坦 | 烏茲別克斯坦 | 烏茲別克 |
| Vanuatu | 瓦努阿图 | 瓦努阿圖 | 萬那杜 |
| Vatican City State (Holy See) | 梵蒂冈 | 梵蒂岡 | 梵蒂岡 |
| Venezuela | 委内瑞拉 | 委內瑞拉 | 委內瑞拉 |
| Vietnam | 越南 | 越南 | 越南 |
| Virgin Islands (British) | 圣文森特和格林纳丁斯 | 聖文森特和格林納丁斯 | 聖文森及格瑞那丁 |
| Virgin Islands (US) | 维尔京群岛(美国) | 維爾京羣島(美國) | 維爾京群島(美國) |
| Wallis And Futuna Islands | 瓦利斯群岛和富图纳群岛 | 瓦利斯羣島和富圖納羣島 | 瓦利斯群島和富圖納群島 |
| Western Sahara | 西撒哈拉 | 西撒哈拉 | 西撒哈拉 |
| Yemen | 也门 | 也門 | 葉門 |
| Zambia | 赞比亚 | 贊比亞 | 尚比亞 |
| Zimbabwe | 津巴布韦 | 津巴布韋 | 辛巴威 |
### Nombres de secciones
| English | Chinese (Simplified) | Chinese (Traditional, Hong Kong) | Chinese (Traditional, Taiwan) |
| ------------ | -------------------- | -------------------------------- | ----------------------------- |
| Awards | 荣誉 | 榮譽 | 榮譽 |
| Basics | 简介 | 簡介 | 簡介 |
| Certificates | 证书 | 證書 | 證書 |
| Education | 教育背景 | 教育背景 | 教育背景 |
| Interests | 兴趣爱好 | 興趣愛好 | 興趣愛好 |
| Languages | 语言 | 語言 | 語言 |
| Location | 地址 | 地址 | 地址 |
| Profiles | 社交信息 | 社交信息 | 社交信息 |
| Projects | 项目 | 項目 | 項目 |
| Publications | 出版刊物 | 出版刊物 | 出版刊物 |
| References | 引荐 | 引薦 | 引薦 |
| Skills | 专业技能 | 專業技能 | 專業技能 |
| Volunteer | 志愿服务 | 志願服務 | 志願服務 |
| Work | 工作经历 | 工作經歷 | 工作經歷 |
### Niveles de habilidad
| English | Chinese (Simplified) | Chinese (Traditional, Hong Kong) | Chinese (Traditional, Taiwan) |
| ------------ | -------------------- | -------------------------------- | ----------------------------- |
| Novice | 新手 | 新手 | 新手 |
| Beginner | 初级 | 初級 | 初級 |
| Intermediate | 中级 | 中級 | 中級 |
| Advanced | 高级 | 高級 | 高級 |
| Expert | 专家 | 專家 | 專家 |
| Master | 大师 | 大師 | 大師 |
### Términos
| English | Chinese (Simplified) | Chinese (Traditional, Hong Kong) | Chinese (Traditional, Taiwan) |
| -------- | -------------------- | -------------------------------- | ----------------------------- |
| Courses | 课程 | 課程 | 課程 |
| Keywords | 关键字 | 關鍵字 | 關鍵字 |
# Neerlandés
URL: (/es/docs/locale/dutch)
El inglés y el neerlandés son ambas
[lenguas germánicas](https://en.wikipedia.org/wiki/Germanic_languages); el
neerlandés pertenece a la rama germánica occidental, estrechamente relacionada
con el inglés y el alemán. Aunque comparten muchas similitudes, el neerlandés
tiene características propias que requieren consideraciones específicas en
YAMLResume.
## Lingüística
### Conjunto de caracteres
Tanto el inglés como el neerlandés utilizan el
[alfabeto latino](https://en.wikipedia.org/wiki/Latin_alphabet). Sin embargo, el
neerlandés incluye algunas características específicas:
| Característica | Conjunto de caracteres en inglés | Conjunto de caracteres en neerlandés |
| :------------------------ | :------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------- |
| **Alfabeto** | 26 letras (`a-z`) | 26 letras (`a-z`). El dígrafo `ij` se trata a veces como una letra distinta. |
| **Diacríticos** | Ninguno | Usa diacríticos como la diéresis (`ë`, `ï`) para indicar la separación de vocales (p. ej., *coöperatie*) y acentos agudos (`é`) para énfasis. |
| **Caracteres especiales** | Limitado a caracteres latinos básicos | Incluye caracteres estándar pero trata `ij` de forma especial en mayúsculas (p. ej., *IJsselmeer*). |
Las principales diferencias incluyen:
* **Dígrafo `ij`**: En neerlandés, la combinación `ij` a menudo se trata como
una sola letra. Cuando se escribe con mayúscula al principio de una oración o
nombre propio, tanto la I como la J se escriben en mayúscula (p. ej.,
*IJmuiden*).
* **Diacríticos**: La diéresis (trema) se utiliza para indicar que dos vocales
se pronuncian por separado (hiato), en lugar de como un diptongo.
## Convenciones
### Fecha
En neerlandés, los días de la semana y los meses se escriben en minúscula (a
diferencia del inglés), a menos que aparezcan al principio de una oración. Por
ejemplo, "Sep 2021" se traduce como "sep. 2021" o "sept. 2021" en neerlandés,
con el mes en minúscula.
### Capitalización
Las reglas de capitalización del neerlandés son generalmente similares a las del
inglés, pero con excepciones:
* **Días/Meses**: Se escriben en minúscula (*maandag*, *januari*).
* **Idiomas/Nacionalidades**: Se escriben con mayúscula (*Nederlands*,
*Engels*).
* **Pronombre "yo"**: El "ik" neerlandés se escribe en minúscula, a menos que
esté al comienzo de una oración.
YAMLResume adopta internamente un conjunto fijo de opciones y términos para
todas las plantillas de currículum. Por ejemplo, los idiomas en las plantillas
de YAMLResume adoptan las
[opciones de fluidez en idiomas de LinkedIn](https://www.linkedin.com/pulse/language-proficiency-linkedin-duaa-ali/):
* Elementary Proficiency
* Limited Working Proficiency
* Minimum Professional Proficiency
* Full Professional Proficiency
* Native or Bilingual Proficiency
Estas se traducen al neerlandés de la siguiente manera:
* Elementaire vaardigheid
* Beperkte werkvaardigheid
* Minimale professionele vaardigheid
* Volledige professionele vaardigheid
* Moedertaal of tweetalige vaardigheid
Solo se escribe con mayúscula la primera palabra, siguiendo las convenciones de
capitalización del neerlandés.
## Composición tipográfica
### Puntuación
El neerlandés tiene varias diferencias notables en la puntuación con respecto al
inglés:
* **Separador decimal**: El neerlandés utiliza una coma como separador decimal
(p. ej., 3,14) en lugar del punto como en inglés (3.14).
* **Separador de miles**: El neerlandés utiliza un punto o espacio como
separador de miles (p. ej., 1.000 o 1 000) en lugar de una coma.
* **Comillas**: El neerlandés utiliza oficialmente comillas dobles (a menudo
bajo-alto `„...”` o alto-alto `"..."`) o comillas simples (`'...'`).
## Traducciones
YAMLResume adopta las siguientes traducciones para diversas opciones y términos
utilizados en los currículums en neerlandés.
### Grados académicos
| English | Dutch |
| :------------ | :--------- |
| Middle School | Middelbaar |
| High School | Hogeschool |
| Diploma | Diploma |
| Associate | Graduaat |
| Bachelor | Bachelor |
| Master | Master |
| Doctor | Doctoraat |
### Idiomas
| English | Dutch |
| :---------- | :------------- |
| Afrikaans | Afrikaans |
| Albanian | Albanees |
| Amharic | Amhaars |
| Arabic | Arabisch |
| Azerbaijani | Azerbeidzjaans |
| Belarusian | Wit-Russisch |
| Bengali | Bengaals |
| Bhojpuri | Bhojpuri |
| Bulgarian | Bulgaars |
| Burmese | Birmees |
| Cantonese | Kantonees |
| Catalan | Catalaans |
| Chinese | Chinees |
| Croatian | Kroatisch |
| Czech | Tsjechisch |
| Danish | Deens |
| Dutch | Nederlands |
| English | Engels |
| Estonian | Ests |
| Farsi | Persan |
| Filipino | Filipijns |
| Finnish | Fins |
| French | Frans |
| German | Duits |
| Greek | Grieks |
| Gujarati | Gujarati |
| Hausa | Haoussa |
| Hebrew | Hebreeuws |
| Hindi | Hindi |
| Hungarian | Hongaars |
| Icelandic | IJslands |
| Igbo | Igbo |
| Indonesian | Indonesisch |
| Irish | Iers |
| Italian | Italiaans |
| Japanese | Japans |
| Javanese | Javaans |
| Kazakh | Kazachs |
| Khmer | Khmer |
| Korean | Koreaans |
| Lahnda | Lahnda |
| Latvian | Lets |
| Lithuanian | Litouws |
| Malay | Maleis |
| Mandarin | Mandarijn |
| Marathi | Marathi |
| Nepali | Nepalees |
| Norwegian | Noors |
| Oromo | Oromo |
| Pashto | Pasjto |
| Polish | Pools |
| Portuguese | Portugees |
| Romanian | Roemeense |
| Russian | Russisch |
| Serbian | Servisch |
| Shona | Shona |
| Sinhala | Singalees |
| Slovak | Slowaaks |
| Slovene | Sloveens |
| Somali | Somalisch |
| Spanish | Spaans |
| Sundanese | Soendanees |
| Swahili | Swahili |
| Swedish | Zweeds |
| Tagalog | Tagalog |
| Tamil | Tamoul |
| Telugu | Telugu |
| Thai | Thais |
| Turkish | Turks |
| Ukrainian | Oekraïens |
| Urdu | Urdu |
| Uzbek | Oezbeeks |
| Vietnamese | Vietnamees |
| Yoruba | Joruba |
| Zulu | Zoeloe |
### Niveles de fluidez
| English | Dutch |
| :------------------------------- | :----------------------------------- |
| Elementary Proficiency | Elementaire vaardigheid |
| Limited Working Proficiency | Beperkte werkvaardigheid |
| Minimum Professional Proficiency | Minimale professionele vaardigheid |
| Full Professional Proficiency | Volledige professionele vaardigheid |
| Native or Bilingual Proficiency | Moedertaal of tweetalige vaardigheid |
### Ubicación (Países y Regiones)
| English | Dutch |
| :----------------------------------- | :------------------------------------------------ |
| Afghanistan | Afghanistan |
| Aland Islands | Åland eilanden |
| Albania | Albanië |
| Algeria | Algerije |
| American Samoa | Amerikaans-Samoa |
| Andorra | Andorra |
| Angola | Angola |
| Anguilla | Anguilla |
| Antarctica | Antarctica |
| Antigua And Barbuda | Antigua en Barbuda |
| Argentina | Argentinië |
| Armenia | Armenië |
| Aruba | Aruba |
| Australia | Australië |
| Austria | Oostenrijk |
| Azerbaijan | Azerbeidzjan |
| Bahrain | Bahrein |
| Bangladesh | Bangladesh |
| Barbados | Barbados |
| Belarus | Belarus |
| Belgium | België |
| Belize | Belize |
| Benin | Benin |
| Bermuda | Bermuda |
| Bhutan | Bhutan |
| Bolivia | Bolivia |
| Bonaire, Sint Eustatius and Saba | Bonaire, Sint Eustatius en Saba |
| Bosnia and Herzegovina | Bosnië en Herzegovina |
| Botswana | Botswana |
| Bouvet Island | Bouvet-eiland |
| Brazil | Brazilië |
| British Indian Ocean Territory | Brits Indische Oceaanterritorium |
| Brunei | Brunei |
| Bulgaria | Bulgarije |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Cambodja |
| Cameroon | Kameroen |
| Canada | Canada |
| Cape Verde | Kaapverdië |
| Cayman Islands | Kaaimaneilanden |
| Central African Republic | Centraal-Afrikaanse Republiek |
| Chad | Tsjaad |
| Chile | Chili |
| China | China |
| Christmas Island | Christmaseiland |
| Cocos (Keeling) Islands | Cocoseilanden |
| Colombia | Colombië |
| Comoros | Comoren |
| Congo | Congo |
| Cook Islands | Cook Eilanden |
| Costa Rica | Costa Rica |
| Cote D'Ivoire (Ivory Coast) | Ivoorkust |
| Croatia | Kroatië |
| Cuba | Cuba |
| Curaçao | Curacao |
| Cyprus | Cyprus |
| Czech Republic | Tsjechische Republiek |
| Democratic Republic of the Congo | Democratische Republiek Congo |
| Denmark | Denemarken |
| Djibouti | Djibouti |
| Dominica | Dominica |
| Dominican Republic | Dominicaanse Republiek |
| East Timor | Oost-Timor |
| Ecuador | Ecuador |
| Egypt | Egypte |
| El Salvador | El Salvador |
| Equatorial Guinea | Equatoriaal-Guinea |
| Eritrea | Eritrea |
| Estonia | Estland |
| Ethiopia | Ethiopië |
| Falkland Islands | Falklandeilanden |
| Faroe Islands | Faeröer eilanden |
| Fiji Islands | Fiji-eilanden |
| Finland | Finland |
| France | Frankrijk |
| French Guiana | Frans-Guyana |
| French Polynesia | Frans-Polynesië |
| French Southern Territories | Franse Zuidelijke Gebieden |
| Gabon | Gabon |
| Gambia The | Gambia De |
| Georgia | Georgië |
| Germany | Duitsland |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Griekenland |
| Greenland | Groenland |
| Grenada | Grenada |
| Guadeloupe | Guadeloupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernsey en Alderney |
| Guinea | Guinea |
| Guinea-Bissau | Guinee-Bissau |
| Guyana | Guyana |
| Haiti | Haïti |
| Heard Island and McDonald Islands | Heard Island en McDonald Islands |
| Honduras | Honduras |
| Hong Kong | HongKong |
| Hungary | Hongarijë |
| Iceland | Ijsland |
| India | India |
| Indonesia | Indonesië |
| Iran | Iran |
| Iraq | Iraq |
| Ireland | Ierland |
| Israel | Israël |
| Italy | Italië |
| Jamaica | Jamaica |
| Japan | Japan |
| Jersey | Jersey |
| Jordan | Jordanië |
| Kazakhstan | Kazachstan |
| Kenya | Kenia |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Koeweit |
| Kyrgyzstan | Kirgizië |
| Laos | Laos |
| Latvia | Letland |
| Lebanon | Libanon |
| Lesotho | Lesotho |
| Liberia | Liberia |
| Libya | Libië |
| Liechtenstein | Liechtenstein |
| Lithuania | Litouwen |
| Luxembourg | Luxemburg |
| Macau | Macau |
| Madagascar | Madagascar |
| Malawi | Malawi |
| Malaysia | Maleisië |
| Maldives | Maldiven |
| Mali | Mali |
| Malta | Malta |
| Man (Isle of) | Man (Eiland van) |
| Marshall Islands | Marshall eilanden |
| Martinique | Martinique |
| Mauritania | Mauritanië |
| Mauritius | Mauritius |
| Mayotte | Mayotte |
| Mexico | Mexico |
| Micronesia | Micronesië |
| Moldova | Moldavië |
| Monaco | Monaco |
| Mongolia | Mongolië |
| Montenegro | Montenegro |
| Montserrat | Montserrat |
| Morocco | Marokko |
| Mozambique | Mozambique |
| Myanmar | Myanmar |
| Namibia | Namibië |
| Nauru | Nauru |
| Nepal | Nepal |
| Netherlands | Nederland |
| New Caledonia | Nieuw-Caledonië |
| New Zealand | Nieuw-Zeeland |
| Nicaragua | Nicaragua |
| Niger | Niger |
| Nigeria | Nigeria |
| Niue | Niue |
| Norfolk Island | Norfolkeiland |
| North Korea | Noord-Korea |
| North Macedonia | Noord-Macedionië |
| Northern Mariana Islands | Noordelijke Marianen |
| Norway | Noorwegen |
| Oman | Oman |
| Pakistan | Pakistan |
| Palau | Palau |
| Palestinian Territory Occupied | Palestijns bezet gebied |
| Panama | Panama |
| Papua new Guinea | Papoea-Nieuw-Guinea |
| Paraguay | Paraguay |
| Peru | Peru |
| Philippines | Philippines |
| Pitcairn Island | Pitcairn-eiland |
| Poland | Polen |
| Portugal | Portugal |
| Puerto Rico | Puerto Rico |
| Qatar | Katar |
| Reunion | Reunion |
| Romania | Roemenië |
| Russia | Rusland |
| Rwanda | Rwanda |
| Saint Helena | Sint-Helena |
| Saint Kitts And Nevis | Saint Kitts en Nevis |
| Saint Lucia | Saint Lucia |
| Saint Pierre and Miquelon | Saint Pierre en Miquelon |
| Saint Vincent And The Grenadines | Saint Vincent en de Grenadines |
| Saint-Barthelemy | Saint-Barthélemy |
| Saint-Martin (French part) | Saint-Martin (Frans deel) |
| Samoa | Samoa |
| San Marino | San Marino |
| Sao Tome and Principe | Sao Tomé en Principe |
| Saudi Arabia | Saoedi-Arabië |
| Senegal | Senegal |
| Serbia | Servië |
| Seychelles | Seychellen |
| Sierra Leone | Sierra Leone |
| Singapore | Singapore |
| Sint Maarten (Dutch part) | Sint Maarten (Nederlands deel) |
| Slovakia | Slowakije |
| Slovenia | Slovenië |
| Solomon Islands | Salomonseilanden |
| Somalia | Somalië |
| South Africa | Zuid-Afrika |
| South Georgia | Zuid-Georgië |
| South Korea | Zuid-Korea |
| South Sudan | Zuid-Sudan |
| Spain | Spanje |
| Sri Lanka | Sri Lanka |
| Sudan | Sudan |
| Suriname | Suriname |
| Svalbard And Jan Mayen Islands | Svalbard- en Jan Mayen-eilanden |
| Swaziland | Swaziland |
| Sweden | Zweden |
| Switzerland | Zwitserland |
| Syria | Syrië |
| Taiwan | Taiwan |
| Tajikistan | Tadsjikistan |
| Tanzania | Tanzania |
| Thailand | Thailand |
| The Bahamas | De Bahama's |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinidad en Tobago |
| Tunisia | Tunesië |
| Türkiye | Turkijë |
| Turkmenistan | Turkmenistan |
| Turks And Caicos Islands | Turks- en Caicoseilanden |
| Tuvalu | Tuvalu |
| Uganda | Oeganda |
| Ukraine | Oekraïne |
| United Arab Emirates | Verenigde Arabische Emiraten |
| United Kingdom | Koninkrijk |
| United States | Verenigde Staten |
| United States Minor Outlying Islands | Kleine afgelegen eilanden van de Verenigde Staten |
| Uruguay | Uruguay |
| Uzbekistan | Oezbekistan |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Vaticaanstad (Heilige Stoel) |
| Venezuela | Venezuela |
| Vietnam | Vietnam |
| Virgin Islands (British) | Britse Maagdeneilanden |
| Virgin Islands (US) | Amerikaanse Maagdeneilanden |
| Wallis And Futuna Islands | Wallis en Futuna-eilanden |
| Western Sahara | Westelijke Sahara |
| Yemen | Jemen |
| Zambia | Zambia |
| Zimbabwe | Zimbabwe |
### Nombres de secciones
| English | Dutch |
| :----------- | :---------------- |
| Awards | Onderscheidingen |
| Basics | Basis Informatie |
| Certificates | Certificaten |
| Education | Opleidingen |
| Interests | Interesses |
| Languages | Talen |
| Location | Locatie |
| Profiles | Profielen |
| Projects | Projecten |
| Publications | Publicaties |
| References | Referenties |
| Skills | Vaardigheden |
| Volunteer | Vrijwilligerswerk |
| Work | Werkervaring |
### Niveles de habilidad
| English | Dutch |
| :----------- | :----------- |
| Novice | Nieuweling |
| Beginner | Beginner |
| Intermediate | Intermediair |
| Advanced | Geavanceerd |
| Expert | Expert |
| Master | Meester |
### Opciones y términos
| English | Dutch |
| :------- | :---------- |
| Courses | Cursussen |
| Keywords | Trefwoorden |
| Score | Score |
# Inglés
URL: (/es/docs/locale/english)
Como sabemos, el inglés se usa y se habla ampliamente en todo el mundo.
Dar soporte al inglés en YAMLResume es sencillo: se requiere muy poca
configuración adicional para generar currículums en inglés con LaTeX.
## Lingüística
Teóricamente, el inglés pertenece a las [lenguas
germánicas](https://en.wikipedia.org/wiki/Germanic_languages), que son una rama
de la [familia
indoeuropea](https://en.wikipedia.org/wiki/Indo-European_languages) hablada
nativamente por unas 515 millones de personas principalmente en Europa,
Norteamérica, Oceanía y el sur de África.
### Conjunto de caracteres
El inglés moderno se escribe con un alfabeto latino que consta de 26 letras,
cada una con su forma en mayúscula y minúscula.
El [alfabeto latino](https://en.wikipedia.org/wiki/Latin_alphabet) es el sistema
de escritura alfabético más utilizado en el mundo.
## Convenciones
### Fecha
El inglés tiene palabras específicas para los meses y cada una posee una forma
corta. YAMLResume adopta por defecto la forma abreviada en todos los campos de
mes.
| Long Form | Short Form |
| --------- | ---------- |
| January | Jan |
| February | Feb |
| March | Mar |
| April | Apr |
| May | May |
| June | Jun |
| July | Jul |
| August | Aug |
| September | Sep |
| October | Oct |
| November | Nov |
| December | Dec |
### Ubicación
Los distintos idiomas presentan las direcciones en formatos diferentes. En
inglés, al mostrar dirección, ciudad y país, la parte general (país, estado,
etc.) suele ir al final, mientras que la parte más específica (calle, número,
etc.) aparece primero. En otros idiomas como el chino, el orden se invierte
totalmente.
Orden típico en inglés:
1. Dirección: número, nombre de la calle, número de apartamento, etc.
2. Ciudad: nombre de la ciudad o localidad.
3. Estado/Provincia: si aplica.
4. País: nombre del país.
## Composición tipográfica
Gran parte de la teoría y práctica tipográfica se comparte entre lenguas de
escritura latina; el inglés no es la excepción. Ya hemos preparado una
[guía](/docs/guide) que cubre muchos detalles.
### Fuente
Consulta [Guía -> Fuente](/docs/guide/font) para más detalles.
* [Serif vs. sans-serif](/docs/guide/font#serif-vs-sans-serif)
* [Proporcional vs. monoespaciada](/docs/guide/font#proportional-vs-monospaced)
* [Kerning](/docs/guide/font#kerning)
* [Ligaduras](/docs/guide/font#ligature)
* [Cursivas](/docs/guide/font#italics)
* [Números old style](/docs/guide/font#old-style-numbers)
### Puntuación
Consulta [Guía -> Puntuación](/docs/guide/punctuations) para más detalles:
* [Guion](/docs/guide/punctuations#hyphen--)
* [Guion medio (en-dash)](/docs/guide/punctuations#en-dash-)
* [Guion largo (em-dash)](/docs/guide/punctuations#em-dash-)
## Traducciones
YAMLResume adopta las siguientes traducciones / opciones fijas utilizadas en
currículums en inglés.
### Grados académicos
YAMLResume presenta los siguientes grados predefinidos para la sección
Educación.
| English |
| ------------- |
| Middle School |
| High School |
| Diploma |
| Associate |
| Bachelor |
| Master |
| Doctor |
### Idiomas
YAMLResume presenta las siguientes opciones de idioma para la sección Idiomas.
| English |
| ----------- |
| Afrikaans |
| Albanian |
| Amharic |
| Arabic |
| Azerbaijani |
| Belarusian |
| Bengali |
| Bhojpuri |
| Bulgarian |
| Burmese |
| Cantonese |
| Catalan |
| Chinese |
| Croatian |
| Czech |
| Danish |
| Dutch |
| English |
| Estonian |
| Farsi |
| Filipino |
| Finnish |
| French |
| German |
| Greek |
| Gujarati |
| Hausa |
| Hebrew |
| Hindi |
| Hungarian |
| Icelandic |
| Igbo |
| Indonesian |
| Irish |
| Italian |
| Japanese |
| Javanese |
| Kazakh |
| Khmer |
| Korean |
| Lahnda |
| Latvian |
| Lithuanian |
| Malay |
| Mandarin |
| Marathi |
| Nepali |
| Norwegian |
| Oromo |
| Pashto |
| Polish |
| Portuguese |
| Romanian |
| Russian |
| Serbian |
| Shona |
| Sinhala |
| Slovak |
| Slovene |
| Somali |
| Spanish |
| Sundanese |
| Swahili |
| Swedish |
| Tagalog |
| Tamil |
| Telugu |
| Thai |
| Turkish |
| Ukrainian |
| Urdu |
| Uzbek |
| Vietnamese |
| Yoruba |
| Zulu |
### Niveles de fluidez lingüística
YAMLResume presenta las siguientes opciones de fluidez para la sección Idiomas.
Están basadas en
[LinkedIn](https://www.linkedin.com/pulse/language-proficiency-linkedin-duaa-ali/).
| English |
| -------------------------------- |
| Elementary Proficiency |
| Limited Working Proficiency |
| Minimum Professional Proficiency |
| Full Professional Proficiency |
| Native or Bilingual Proficiency |
### Ubicación (países y regiones)
YAMLResume proporciona las siguientes opciones de países y regiones para la
sección Ubicación. Esta lista proviene de la base de datos
[countries-states-cities-database](https://github.com/dr5hn/countries-states-cities-database).
No todos son países; algunos son regiones o
[SAR](https://en.wikipedia.org/wiki/Special_administrative_regions_of_China).
| English |
| ------------------------------------ |
| Afghanistan |
| Aland Islands |
| Albania |
| Algeria |
| American Samoa |
| Andorra |
| Angola |
| Anguilla |
| Antarctica |
| Antigua And Barbuda |
| Argentina |
| Armenia |
| Aruba |
| Australia |
| Austria |
| Azerbaijan |
| Bahrain |
| Bangladesh |
| Barbados |
| Belarus |
| Belgium |
| Belize |
| Benin |
| Bermuda |
| Bhutan |
| Bolivia |
| Bonaire, Sint Eustatius and Saba |
| Bosnia and Herzegovina |
| Botswana |
| Bouvet Island |
| Brazil |
| British Indian Ocean Territory |
| Brunei |
| Bulgaria |
| Burkina Faso |
| Burundi |
| Cambodia |
| Cameroon |
| Canada |
| Cape Verde |
| Cayman Islands |
| Central African Republic |
| Chad |
| Chile |
| China |
| Christmas Island |
| Cocos (Keeling) Islands |
| Colombia |
| Comoros |
| Congo |
| Cook Islands |
| Costa Rica |
| Cote D'Ivoire (Ivory Coast) |
| Croatia |
| Cuba |
| Curaçao |
| Cyprus |
| Czech Republic |
| Democratic Republic of the Congo |
| Denmark |
| Djibouti |
| Dominica |
| Dominican Republic |
| East Timor |
| Ecuador |
| Egypt |
| El Salvador |
| Equatorial Guinea |
| Eritrea |
| Estonia |
| Ethiopia |
| Falkland Islands |
| Faroe Islands |
| Fiji Islands |
| Finland |
| France |
| French Guiana |
| French Polynesia |
| French Southern Territories |
| Gabon |
| Gambia The |
| Georgia |
| Germany |
| Ghana |
| Gibraltar |
| Greece |
| Greenland |
| Grenada |
| Guadeloupe |
| Guam |
| Guatemala |
| Guernsey and Alderney |
| Guinea |
| Guinea-Bissau |
| Guyana |
| Haiti |
| Heard Island and McDonald Islands |
| Honduras |
| Hong Kong S.A.R. |
| Hungary |
| Iceland |
| India |
| Indonesia |
| Iran |
| Iraq |
| Ireland |
| Israel |
| Italy |
| Jamaica |
| Japan |
| Jersey |
| Jordan |
| Kazakhstan |
| Kenya |
| Kiribati |
| Kosovo |
| Kuwait |
| Kyrgyzstan |
| Laos |
| Latvia |
| Lebanon |
| Lesotho |
| Liberia |
| Libya |
| Liechtenstein |
| Lithuania |
| Luxembourg |
| Macau S.A.R. |
| Madagascar |
| Malawi |
| Malaysia |
| Maldives |
| Mali |
| Malta |
| Man (Isle of) |
| Marshall Islands |
| Martinique |
| Mauritania |
| Mauritius |
| Mayotte |
| Mexico |
| Micronesia |
| Moldova |
| Monaco |
| Mongolia |
| Montenegro |
| Montserrat |
| Morocco |
| Mozambique |
| Myanmar |
| Namibia |
| Nauru |
| Nepal |
| Netherlands |
| New Caledonia |
| New Zealand |
| Nicaragua |
| Niger |
| Nigeria |
| Niue |
| Norfolk Island |
| North Korea |
| North Macedonia |
| Northern Mariana Islands |
| Norway |
| Oman |
| Pakistan |
| Palau |
| Palestinian Territory Occupied |
| Panama |
| Papua new Guinea |
| Paraguay |
| Peru |
| Philippines |
| Pitcairn Island |
| Poland |
| Portugal |
| Puerto Rico |
| Qatar |
| Reunion |
| Romania |
| Russia |
| Rwanda |
| Saint Helena |
| Saint Kitts And Nevis |
| Saint Lucia |
| Saint Pierre and Miquelon |
| Saint Vincent And The Grenadines |
| Saint-Barthelemy |
| Saint-Martin (French part) |
| Samoa |
| San Marino |
| Sao Tome and Principe |
| Saudi Arabia |
| Senegal |
| Serbia |
| Seychelles |
| Sierra Leone |
| Singapore |
| Sint Maarten (Dutch part) |
| Slovakia |
| Slovenia |
| Solomon Islands |
| Somalia |
| South Africa |
| South Georgia |
| South Korea |
| South Sudan |
| Spain |
| Sri Lanka |
| Sudan |
| Suriname |
| Svalbard And Jan Mayen Islands |
| Swaziland |
| Sweden |
| Switzerland |
| Syria |
| Taiwan |
| Tajikistan |
| Tanzania |
| Thailand |
| The Bahamas |
| Togo |
| Tokelau |
| Tonga |
| Trinidad And Tobago |
| Tunisia |
| Türkiye |
| Turkmenistan |
| Turks And Caicos Islands |
| Tuvalu |
| Uganda |
| Ukraine |
| United Arab Emirates |
| United Kingdom |
| United States |
| United States Minor Outlying Islands |
| Uruguay |
| Uzbekistan |
| Vanuatu |
| Vatican City State (Holy See) |
| Venezuela |
| Vietnam |
| Virgin Islands (British) |
| Virgin Islands (US) |
| Wallis And Futuna Islands |
| Western Sahara |
| Yemen |
| Zambia |
| Zimbabwe |
### Nombres de secciones
YAMLResume soporta las siguientes secciones, cada una con un nombre propio.
| English |
| ------------ |
| Awards |
| Basics |
| Certificates |
| Education |
| Interests |
| Languages |
| Location |
| Profiles |
| Projects |
| Publications |
| References |
| Skills |
| Volunteer |
| Work |
### Niveles de habilidad
YAMLResume presenta las siguientes opciones de nivel para la sección Habilidades.
| English |
| ------------ |
| Novice |
| Beginner |
| Intermediate |
| Advanced |
| Expert |
| Master |
### Términos
YAMLResume utiliza algunos términos fijos en la plantilla.
| Term | description |
| -------- | ----------------------------------------------------------------------------------- |
| Courses | usado en la sección Educación para cursos |
| Keywords | usado en las secciones Work y Projects donde se muestra una lista de palabras clave |
| Score | usado en Educación para nota/calificación |
# Francés
URL: (/es/docs/locale/french)
El francés es una [lengua romance](https://es.wikipedia.org/wiki/Lenguas_romances)
de la familia indoeuropea. Aunque comparte el alfabeto latino con el inglés, tiene
características distintivas en tipografía, puntuación y gramática que requieren
consideraciones específicas para YAMLResume.
## Lingüística
### Conjunto de caracteres
El francés utiliza las 26 letras del [alfabeto latino](https://es.wikipedia.org/wiki/Alfabeto_latino)
básico, con cuatro signos diacríticos que aparecen en las vocales (acento circunflejo,
diéresis, acento grave, acento agudo) y la cedilla que aparece en "ç". También hay
dos ligaduras, "œ" y "æ".
| Característica | Conjunto de caracteres en inglés | Conjunto de caracteres en francés |
| ------------------------- | ------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| **Alfabeto** | 26 letras (`a-z`) | 26 letras más letras con diacríticos y ligaduras |
| **Diacríticos** | Ninguno | Agudo (`é`), grave (`à`, `è`, `ù`), circunflejo (`â`, `ê`, `î`, `ô`, `û`), diéresis (`ë`, `ï`, `ü`, `ÿ`), cedilla (`ç`) |
| **Caracteres especiales** | Limitado a caracteres latinos básicos | Incluye ligaduras `œ` (p. ej., "cœur") y `æ` (p. ej., "ex æquo") |
### Modismos
#### Fecha
Los días de la semana y los meses no se escriben con mayúscula en francés (a diferencia
del inglés). Por ejemplo, "Sep 2021" en inglés se traduce como "sept. 2021" en francés.
YAMLResume solo utiliza meses, de ahí la tabla de traducción:
| English | French |
| --------------- | ----------------- |
| January (Jan) | janvier (janv.) |
| February (Feb) | février (févr.) |
| March (Mar) | mars (mars) |
| April (Apr) | avril (avr.) |
| May (May) | mai (mai) |
| June (Jun) | juin (juin) |
| July (Jul) | juillet (juil.) |
| August (Aug) | août (août) |
| September (Sep) | septembre (sept.) |
| October (Oct) | octobre (oct.) |
| November (Nov) | novembre (nov.) |
| December (Dec) | décembre (déc.) |
#### Capitalización
El francés generalmente sigue el uso de mayúsculas en oraciones para títulos y
encabezados, pero YAMLResume proporciona términos en mayúsculas para mantener la
coherencia con los estándares de currículums.
Una diferencia notable es que los idiomas y nacionalidades utilizados como adjetivos
no se escriben con mayúscula en francés estándar (p. ej., "je parle français"), pero
se escriben con mayúscula cuando se refieren al sustantivo (el idioma en sí) en listas
dentro de YAMLResume para mantener la coherencia.
### Composición tipográfica
#### Puntuación
El francés tiene reglas específicas para el espaciado alrededor de los signos de puntuación:
* **Puntuación alta**: Los dos puntos (`:`), punto y coma (`;`), signo de exclamación
(`!`) y signo de interrogación (`?`) requieren un espacio ininterrumpido antes de ellos.
* **Comillas**: El francés utiliza comillas angulares (`«` y `»`) con espacios
ininterrumpidos dentro de ellas (p. ej., `« Bonjour »`).
* **Separador decimal**: El francés utiliza una coma como separador decimal (p. ej.,
3,14).
* **Separador de miles**: El francés utiliza un espacio ininterrumpido como separador
de miles (p. ej., 1 000).
YAMLResume maneja el espaciado de los dos puntos específicamente para diseños en francés (p. ej., ` :`).
## Traducciones
YAMLResume adopta las siguientes traducciones para varias opciones y términos utilizados
en currículums en francés.
### Education Degrees
| English | French |
| ------------- | ------------------------------------ |
| Middle School | Collège |
| High School | Lycée |
| Diploma | Diplôme |
| Associate | Diplôme universitaire de technologie |
| Bachelor | Licence |
| Master | Master |
| Doctor | Doctorat |
### Languages
| English | French |
| ----------- | ----------- |
| Afrikaans | Afrikaans |
| Albanian | Albanais |
| Amharic | Amharique |
| Arabic | Arabe |
| Azerbaijani | Azéri |
| Belarusian | Biélorusse |
| Bengali | Bengali |
| Bhojpuri | Bhojpuri |
| Bulgarian | Bulgare |
| Burmese | Birman |
| Cantonese | Cantonais |
| Catalan | Catalan |
| Chinese | Chinois |
| Croatian | Croate |
| Czech | Tchèque |
| Danish | Danois |
| Dutch | Néerlandais |
| English | Anglais |
| Estonian | Estonien |
| Farsi | Persan |
| Filipino | Filipino |
| Finnish | Finnois |
| French | Français |
| German | Allemand |
| Greek | Grec |
| Gujarati | Gujarati |
| Hausa | Haoussa |
| Hebrew | Hébreu |
| Hindi | Hindi |
| Hungarian | Hongrois |
| Icelandic | Islandais |
| Igbo | Igbo |
| Indonesian | Indonésien |
| Irish | Irlandais |
| Italian | Italien |
| Japanese | Japonais |
| Javanese | Javanais |
| Kazakh | Kazakh |
| Khmer | Khmer |
| Korean | Coréen |
| Lahnda | Lahnda |
| Latvian | Letton |
| Lithuanian | Lituanien |
| Malay | Malais |
| Mandarin | Mandarin |
| Marathi | Marathi |
| Nepali | Népalais |
| Norwegian | Norvégien |
| Oromo | Oromo |
| Pashto | Pachto |
| Polish | Polonais |
| Portuguese | Portugisisk |
| Romanian | Roumain |
| Russian | Russe |
| Serbian | Serbe |
| Shona | Shona |
| Sinhala | Cingalais |
| Slovak | Slovaque |
| Slovene | Slovène |
| Somali | Somali |
| Spanish | Espagnol |
| Sundanese | Soundanais |
| Swahili | Swahili |
| Swedish | Suédois |
| Tagalog | Tagalog |
| Tamil | Tamoul |
| Telugu | Telugu |
| Thai | Thaï |
| Turkish | Turc |
| Ukrainian | Ukrainien |
| Urdu | Ourdou |
| Uzbek | Ouzbek |
| Vietnamese | Vietnamien |
| Yoruba | Yoruba |
| Zulu | Zoulou |
### Language Fluencies
| English | French |
| -------------------------------- | ---------------------------- |
| Elementary Proficiency | Niveau élémentaire |
| Limited Working Proficiency | Niveau de travail limité |
| Minimum Professional Proficiency | Niveau professionnel minimum |
| Full Professional Proficiency | Niveau professionnel complet |
| Native or Bilingual Proficiency | Niveau natif ou bilingue |
### Location (Countries and Regions)
| English | French |
| ------------------------------------ | ------------------------------------------ |
| Afghanistan | Afghanistan |
| Aland Islands | Îles Åland |
| Albania | Albanie |
| Algeria | Algérie |
| American Samoa | Samoa américaines |
| Andorra | Andorre |
| Angola | Angola |
| Anguilla | Anguilla |
| Antarctica | Antarctique |
| Antigua And Barbuda | Antigua-et-Barbuda |
| Argentina | Argentine |
| Armenia | Arménie |
| Aruba | Aruba |
| Australia | Australie |
| Austria | Autriche |
| Azerbaijan | Azerbaïdjan |
| Bahrain | Bahreïn |
| Bangladesh | Bangladesh |
| Barbados | Barbade |
| Belarus | Biélorussie |
| Belgium | Belgique |
| Belize | Belize |
| Benin | Bénin |
| Bermuda | Bermudes |
| Bhutan | Bhoutan |
| Bolivia | Bolivie |
| Bonaire, Sint Eustatius and Saba | Bonaire, Saint-Eustache et Saba |
| Bosnia and Herzegovina | Bosnie-Herzégovine |
| Botswana | Botswana |
| Bouvet Island | Île Bouvet |
| Brazil | Brésil |
| British Indian Ocean Territory | Territoire britannique de l'océan Indien |
| Brunei | Brunéi |
| Bulgaria | Bulgarie |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Cambodge |
| Cameroon | Cameroun |
| Canada | Canada |
| Cape Verde | Cap-Vert |
| Cayman Islands | Îles Caïmans |
| Central African Republic | République centrafricaine |
| Chad | Tchad |
| Chile | Chili |
| China | Chine |
| Christmas Island | Île Christmas |
| Cocos (Keeling) Islands | Îles Cocos (Keeling) |
| Colombia | Colombie |
| Comoros | Comores |
| Congo | Congo |
| Cook Islands | Îles Cook |
| Costa Rica | Costa Rica |
| Cote D'Ivoire (Ivory Coast) | Côte d'Ivoire |
| Croatia | Croatie |
| Cuba | Cuba |
| Curaçao | Curaçao |
| Cyprus | Chypre |
| Czech Republic | République tchèque |
| Democratic Republic of the Congo | République démocratique du Congo |
| Denmark | Danemark |
| Djibouti | Djibouti |
| Dominica | Dominique |
| Dominican Republic | République dominicaine |
| East Timor | Timor oriental |
| Ecuador | Équateur |
| Egypt | Égypte |
| El Salvador | Salvador |
| Equatorial Guinea | Guinée équatoriale |
| Eritrea | Érythrée |
| Estonia | Estonie |
| Ethiopia | Éthiopie |
| Falkland Islands | Îles Malouines |
| Faroe Islands | Îles Féroé |
| Fiji Islands | Fidji |
| Finland | Finlande |
| France | France |
| French Guiana | Guyane française |
| French Polynesia | Polynésie française |
| French Southern Territories | Terres australes françaises |
| Gabon | Gabon |
| Gambia The | Gambie |
| Georgia | Géorgie |
| Germany | Allemagne |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Grèce |
| Greenland | Groenland |
| Grenada | Grenade |
| Guadeloupe | Guadeloupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernesey et Alderney |
| Guinea | Guinée |
| Guinea-Bissau | Guinée-Bissau |
| Guyana | Guyana |
| Haiti | Haïti |
| Heard Island and McDonald Islands | Îles Heard-et-MacDonald |
| Honduras | Honduras |
| Hong Kong S.A.R. | Hong Kong S.A.R. |
| Hungary | Hongrie |
| Iceland | Islande |
| India | Inde |
| Indonesia | Indonésie |
| Iran | Iran |
| Iraq | Irak |
| Ireland | Irlande |
| Israel | Israël |
| Italy | Italie |
| Jamaica | Jamaïque |
| Japan | Japon |
| Jersey | Jersey |
| Jordan | Jordanie |
| Kazakhstan | Kazakhstan |
| Kenya | Kenya |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Koweït |
| Kyrgyzstan | Kirghizistan |
| Laos | Laos |
| Latvia | Lettonie |
| Lebanon | Liban |
| Lesotho | Lesotho |
| Liberia | Libéria |
| Libya | Libye |
| Liechtenstein | Liechtenstein |
| Lithuania | Lituanie |
| Luxembourg | Luxembourg |
| Macau S.A.R. | Macao S.A.R. |
| Madagascar | Madagascar |
| Malawi | Malawi |
| Malaysia | Malaisie |
| Maldives | Maldives |
| Mali | Mali |
| Malta | Malte |
| Man (Isle of) | Île de Man |
| Marshall Islands | Îles Marshall |
| Martinique | Martinique |
| Mauritania | Mauritanie |
| Mauritius | Maurice |
| Mayotte | Mayotte |
| Mexico | Mexique |
| Micronesia | Micronésie |
| Moldova | Moldavie |
| Monaco | Monaco |
| Mongolia | Mongolie |
| Montenegro | Monténégro |
| Montserrat | Montserrat |
| Morocco | Maroc |
| Mozambique | Mozambique |
| Myanmar | Myanmar |
| Namibia | Namibie |
| Nauru | Nauru |
| Nepal | Népal |
| Netherlands | Pays-Bas |
| New Caledonia | Nouvelle-Calédonie |
| New Zealand | Nouvelle-Zélande |
| Nicaragua | Nicaragua |
| Niger | Niger |
| Nigeria | Nigéria |
| Niue | Niue |
| Norfolk Island | Île Norfolk |
| North Korea | Corée du Nord |
| North Macedonia | Macédoine du Nord |
| Northern Mariana Islands | Îles Mariannes du Nord |
| Norway | Norvège |
| Oman | Oman |
| Pakistan | Pakistan |
| Palau | Palaos |
| Palestinian Territory Occupied | Palestine |
| Panama | Panama |
| Papua new Guinea | Papouasie-Nouvelle-Guinée |
| Paraguay | Paraguay |
| Peru | Pérou |
| Philippines | Philippines |
| Pitcairn Island | Îles Pitcairn |
| Poland | Pologne |
| Portugal | Portugal |
| Puerto Rico | Porto Rico |
| Qatar | Qatar |
| Reunion | La Réunion |
| Romania | Roumanie |
| Russia | Russie |
| Rwanda | Rwanda |
| Saint Helena | Sainte-Hélène |
| Saint Kitts And Nevis | Saint-Christophe-et-Niévès |
| Saint Lucia | Sainte-Lucie |
| Saint Pierre and Miquelon | Saint-Pierre-et-Miquelon |
| Saint Vincent And The Grenadines | Saint-Vincent-et-les-Grenadines |
| Saint-Barthelemy | Saint-Barthélemy |
| Saint-Martin (French part) | Saint-Martin |
| Samoa | Samoa |
| San Marino | Saint-Marin |
| Sao Tome and Principe | Sao Tomé-et-Principe |
| Saudi Arabia | Arabie saoudite |
| Senegal | Sénégal |
| Serbia | Serbie |
| Seychelles | Seychelles |
| Sierra Leone | Sierra Leone |
| Singapore | Singapour |
| Sint Maarten (Dutch part) | Saint-Martin |
| Slovakia | Slovaquie |
| Slovenia | Slovénie |
| Solomon Islands | Îles Salomon |
| Somalia | Somalie |
| South Africa | Afrique du Sud |
| South Georgia | Géorgie du Sud-et-les Îles Sandwich du Sud |
| South Korea | Corée du Sud |
| South Sudan | Soudan du Sud |
| Spain | Espagne |
| Sri Lanka | Sri Lanka |
| Sudan | Soudan |
| Suriname | Suriname |
| Svalbard And Jan Mayen Islands | Svalbard et Jan Mayen |
| Swaziland | Swaziland |
| Sweden | Suède |
| Switzerland | Suisse |
| Syria | Syrie |
| Taiwan | Taïwan |
| Tajikistan | Tadjikistan |
| Tanzania | Tanzanie |
| Thailand | Thaïlande |
| The Bahamas | Bahamas |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinité-et-Tobago |
| Tunisia | Tunisie |
| Türkiye | Turquie |
| Turkmenistan | Turkménistan |
| Turks And Caicos Islands | Îles Turques-et-Caïques |
| Tuvalu | Tuvalu |
| Uganda | Ouganda |
| Ukraine | Ukraine |
| United Arab Emirates | Émirats arabes unis |
| United Kingdom | Royaume-Uni |
| United States | États-Unis |
| United States Minor Outlying Islands | Îles mineures éloignées des États-Unis |
| Uruguay | Uruguay |
| Uzbekistan | Ouzbékistan |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Vatican |
| Venezuela | Venezuela |
| Vietnam | Viêt Nam |
| Virgin Islands (British) | Îles Vierges britanniques |
| Virgin Islands (US) | Îles Vierges américaines |
| Wallis And Futuna Islands | Wallis-et-Futuna |
| Western Sahara | Sahara occidental |
| Yemen | Yémen |
| Zambia | Zambie |
| Zimbabwe | Zimbabwe |
### Section Names
| English | French |
| ------------ | -------------------------- |
| Awards | Récompenses |
| Basics | Informations de base |
| Certificates | Certificats |
| Education | Formation |
| Interests | Centres d'intérêt |
| Languages | Langues |
| Projects | Projets |
| Publications | Publications |
| References | Références |
| Skills | Compétences |
| Volunteer | Bénévolat |
| Work | Expérience professionnelle |
### Skill Levels
| English | French |
| ------------ | ------------- |
| Novice | Novice |
| Beginner | Débutant |
| Intermediate | Intermédiaire |
| Advanced | Avancé |
| Expert | Expert |
| Master | Maître |
### Options and Terms
| English | French |
| -------- | --------- |
| Courses | Cours |
| Keywords | Mots-clés |
| Score | Score |
# Alemán
URL: (/es/docs/locale/german)
El alemán (Deutsch) es una
[lengua germánica occidental](https://es.wikipedia.org/wiki/Lenguas_germ%C3%A1nicas_occidentales)
hablada principalmente en Europa Central. Es el idioma más hablado y oficial o
cooficial en Alemania, Austria, Suiza, Tirol del Sur en Italia, la Comunidad de
habla alemana de Bélgica y Liechtenstein.
## Lingüística
### Conjunto de caracteres
| Característica | Conjunto de caracteres en inglés | Conjunto de caracteres en alemán |
| ------------------------- | ------------------------------------- | ---------------------------------------- |
| **Alfabeto** | 26 letras (`a-z`) | 26 letras más letras con umlaut y Eszett |
| **Diacríticos** | Ninguno | Umlaut (`ä`, `ö`, `ü`) |
| **Caracteres especiales** | Limitado a caracteres latinos básicos | Incluye Eszett `ß` |
## Modismos
### Fecha
Las fechas en alemán se formatean con día, mes y año. Los nombres de los meses
se escriben con mayúscula.
| Inglés | Alemán |
| --------- | --------- |
| January | Januar |
| February | Februar |
| March | März |
| April | April |
| May | Mai |
| June | Juni |
| July | Juli |
| August | August |
| September | September |
| October | Oktober |
| November | November |
| December | Dezember |
### Ubicación
En las direcciones alemanas, el número de la casa suele seguir al nombre de la
calle, y el código postal precede al nombre de la ciudad.
Este es el orden típico en alemán:
1. **Calle y número de casa**: El nombre de la calle va primero, seguido del
número de la casa (por ejemplo, "Musterstraße 123").
2. **Código postal y ciudad**: El código postal de 5 dígitos (*Postleitzahl* o
PLZ) va *antes* del nombre de la ciudad (por ejemplo, "10115 Berlin").
3. **Estado**: A diferencia de otros países, el estado federado (*Bundesland*)
generalmente se omite en las direcciones estándar.
4. **País**: El nombre del país se coloca en la última línea.
### Capitalización
El alemán es único entre los idiomas principales porque escribe con mayúscula
**todos los sustantivos**, independientemente de si son nombres propios o
comunes (por ejemplo, *Haus*, *Apfel*, *Freiheit*).
Otras partes de la oración, como adjetivos y verbos, generalmente van en
minúscula a menos que estén nominalizados (usados como sustantivo) o aparezcan
al comienzo de una oración.
Además, el "usted" formal (*Sie*) y sus formas posesivas (*Ihr*) siempre se
escriben con mayúscula en la correspondencia y la escritura formal.
### Composición tipográfica
#### Puntuación
Las reglas de puntuación alemanas difieren significativamente del inglés en
varias áreas:
* **Comillas**:
* El estilo alemán estándar ("Gänsefüßchen") utiliza una marca de apertura
baja y una marca de cierre alta: `„` (U+201E) y `“` (U+201C). Ejemplo:
„Zitat“.
* Un estilo alternativo (a menudo en libros) utiliza comillas angulares
("guillemets") apuntando **hacia adentro**: `»` (U+00BB) y `«` (U+00AB).
Ejemplo: »Zitat«. (En contraste con el francés `« Zitat »`).
* **Apóstrofo**:
* Generalmente **no** se utiliza para el genitivo 's' (por ejemplo,
"Deutschland**s** Hauptstadt", no "Deutschland's").
* Se utiliza para indicar letras omitidas (por ejemplo, "Wie geht’s?").
* **Coma**:
* Las comas son obligatorias para separar las oraciones subordinadas
(*Nebensätze*) de las oraciones principales.
* **Números**:
* **Separador decimal**: El alemán utiliza una coma (por ejemplo, `12,34`).
* **Separador de miles**: El alemán utiliza un punto o espacio (por ejemplo,
`1.234` o `1 234`).
## Traducciones
YAMLResume adopta las siguientes traducciones para varias opciones y términos
utilizados en los currículums en alemán.
### Títulos académicos
| Inglés | Alemán |
| ------------- | ---------------------- |
| Middle School | Mittlere Reife |
| High School | Abitur |
| Diploma | Diplom |
| Associate | Fachhochschulabschluss |
| Bachelor | Bachelor |
| Master | Master |
| Doctor | Doktor |
| Afrikaans | Afrikaans |
### Idiomas
| Inglés | Alemán |
| ----------- | ----------------- |
| Afrikaans | Afrikaans |
| Albanian | Albanisch |
| Amharic | Amharisch |
| Arabic | Arabisch |
| Azerbaijani | Aserbaidschanisch |
| Belarusian | Belarussisch |
| Bengali | Bengalisch |
| Bhojpuri | Bhojpuri |
| Bulgarian | Bulgarisch |
| Burmese | Birmanisch |
| Cantonese | Kantonesisch |
| Catalan | Katalanisch |
| Chinese | Chinesisch |
| Croatian | Kroatisch |
| Czech | Tschechisch |
| Danish | Dänisch |
| Dutch | Niederländisch |
| Inglés | Englisch |
| Estonian | Estnisch |
| Farsi | Farsi |
| Filipino | Philippinisch |
| Finnish | Finnisch |
| French | Französisch |
| Alemán | Deutsch |
| Greek | Griechisch |
| Gujarati | Gujarati |
| Hausa | Hausa |
| Hebrew | Hebräisch |
| Hindi | Hindi |
| Hungarian | Ungarisch |
| Icelandic | Isländisch |
| Igbo | Igbo |
| Indonesian | Indonesisch |
| Irish | Irisch |
| Italian | Italienisch |
| Japanese | Japanisch |
| Javanese | Javanisch |
| Kazakh | Kasachisch |
| Khmer | Khmer |
| Korean | Koreanisch |
| Lahnda | Lahnda |
| Latvian | Lettisch |
| Lithuanian | Litauisch |
| Malay | Malaiisch |
| Mandarin | Mandarin |
| Marathi | Marathi |
| Nepali | Nepalesisch |
| Norwegian | Norwegisch |
| Oromo | Oromo |
| Pashto | Paschtu |
| Polish | Polnisch |
| Portuguese | Portugiesisch |
| Romanian | Rumänisch |
| Russian | Russisch |
| Serbian | Serbisch |
| Shona | Shona |
| Sinhala | Singhalesisch |
| Slovak | Slowakisch |
| Slovene | Slowenisch |
| Somali | Somalisch |
| Spanish | Spanisch |
| Sundanese | Sundanesisch |
| Swahili | Suaheli |
| Swedish | Schwedisch |
| Tagalog | Tagalog |
| Tamil | Tamil |
| Telugu | Telugu |
| Thai | Thailändisch |
| Turkish | Türkisch |
| Ukrainian | Ukrainisch |
| Urdu | Urdu |
| Uzbek | Usbekisch |
| Vietnamese | Vietnamesisch |
| Yoruba | Yoruba |
| Zulu | Zulu |
### Fluidez de idiomas
| Inglés | Alemán |
| -------------------------------- | ------------------------------- |
| Elementary Proficiency | Grundkenntnisse |
| Limited Working Proficiency | Gute Kenntnisse |
| Minimum Professional Proficiency | Berufliche Grundkenntnisse |
| Full Professional Proficiency | Verhandlungssichere Kenntnisse |
| Native or Bilingual Proficiency | Muttersprache oder zweisprachig |
### Ubicación (Países y Regiones)
| Inglés | Alemán |
| --------------------------------- | ----------------------------------------- |
| Afghanistan | Afghanistan |
| Aland Islands | Åland |
| Albania | Albanien |
| Algeria | Algerien |
| American Samoa | Amerikanisch-Samoa |
| Andorra | Andorra |
| Angola | Angola |
| Anguilla | Anguilla |
| Antarctica | Antarktis |
| Antigua And Barbuda | Antigua und Barbuda |
| Argentina | Argentinien |
| Armenia | Armenien |
| Aruba | Aruba |
| Australia | Australien |
| Austria | Österreich |
| Azerbaijan | Aserbaidschan |
| Bahrain | Bahrain |
| Bangladesh | Bangladesch |
| Barbados | Barbados |
| Belarus | Belarus |
| Belgium | Belgien |
| Belize | Belize |
| Benin | Benin |
| Bermuda | Bermuda |
| Bhutan | Bhutan |
| Bolivia | Bolivien |
| Bonaire, Sint Eustatius and Saba | Bonaire, Sint Eustatius und Saba |
| Bosnia and Herzegovina | Bosnien und Herzegowina |
| Botswana | Botswana |
| Bouvet Island | Bouvetinsel |
| Brazil | Brasilien |
| British Indian Ocean Territory | Britisches Territorium im Indischen Ozean |
| Brunei | Brunei |
| Bulgaria | Bulgarien |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Kambodscha |
| Cameroon | Kamerun |
| Canada | Kanada |
| Cape Verde | Kap Verde |
| Cayman Islands | Kaimaninseln |
| Central African Republic | Zentralafrikanische Republik |
| Chad | Tschad |
| Chile | Chile |
| China | China |
| Christmas Island | Weihnachtsinsel |
| Cocos (Keeling) Islands | Kokosinseln |
| Colombia | Kolumbien |
| Comoros | Komoren |
| Congo | Kongo |
| Cook Islands | Cookinseln |
| Costa Rica | Costa Rica |
| Croatia | Kroatien |
| Cuba | Kuba |
| Curaçao | Curaçao |
| Cyprus | Zypern |
| Czech Republic | Tschechien |
| Democratic Republic of the Congo | Demokratische Republik Kongo |
| Denmark | Dänemark |
| Djibouti | Dschibuti |
| Dominica | Dominica |
| Dominican Republic | Dominikanische Republik |
| East Timor | Osttimor |
| Ecuador | Ecuador |
| Egypt | Ägypten |
| El Salvador | El Salvador |
| Equatorial Guinea | Äquatorialguinea |
| Eritrea | Eritrea |
| Estonia | Estland |
| Ethiopia | Äthiopien |
| Falkland Islands | Falklandinseln |
| Faroe Islands | Färöer |
| Fiji Islands | Fidschi |
| Finland | Finnland |
| France | Frankreich |
| French Guiana | Französisch-Guayana |
| French Polynesia | Französisch-Polynesien |
| French Southern Territories | Französische Süd- und Antarktisgebiete |
| Gabon | Gabun |
| Gambia The | Gambia |
| Georgia | Georgien |
| Alemány | Deutschland |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Griechenland |
| Greenland | Grönland |
| Grenada | Grenada |
| Guadeloupe | Guadeloupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernsey und Alderney |
| Guinea | Guinea |
| Guinea-Bissau | Guinea-Bissau |
| Guyana | Guyana |
| Haiti | Haiti |
| Heard Island and McDonald Islands | Heard und McDonaldinseln |
| Honduras | Honduras |
| Hong Kong | Hongkong |
| Hungary | Ungarn |
| Iceland | Island |
| India | Indien |
| Indonesia | Indonesien |
| Iran | Iran |
| Iraq | Irak |
| Ireland | Irland |
| Israel | Israel |
| Italy | Italien |
| Jamaica | Jamaika |
| Japan | Japan |
| Jersey | Jersey |
| Jordan | Jordanien |
| Kazakhstan | Kasachstan |
| Kenya | Kenia |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Kuwait |
| Kyrgyzstan | Kirgisistan |
| Laos | Laos |
| Latvia | Lettland |
| Lebanon | Libanon |
| Lesotho | Lesotho |
| Liberia | Liberia |
| Libya | Libyen |
| Liechtenstein | Liechtenstein |
| Lithuania | Litauen |
| Luxembourg | Luxemburg |
| Macau | Macau |
| Madagascar | Madagaskar |
| Malawi | Malawi |
| Malaysia | Malaysia |
| Maldives | Malediven |
| Mali | Mali |
| Malta | Malta |
| Man (Isle of) | Isle of Man |
| Marshall Islands | Marshallinseln |
| Martinique | Martinique |
| Mauritania | Mauretanien |
| Mauritius | Mauritius |
| Mayotte | Mayotte |
| Mexico | Mexiko |
| Micronesia | Mikronesien |
| Moldova | Moldawien |
| Monaco | Monaco |
| Mongolia | Mongolei |
| Montenegro | Montenegro |
| Montserrat | Montserrat |
| Morocco | Marokko |
| Mozambique | Mosambik |
| Myanmar | Myanmar |
| Namibia | Namibia |
| Nauru | Nauru |
| Nepal | Nepal |
| Netherlands | Niederlande |
| New Caledonia | Neukaledonien |
| New Zealand | Neuseeland |
| Nicaragua | Nicaragua |
| Niger | Niger |
| Nigeria | Nigeria |
| Niue | Niue |
| Norfolk Island | Norfolkinsel |
| North Korea | Nordkorea |
| North Macedonia | Nordmazedonien |
| Northern Mariana Islands | Nördliche Marianen |
| Norway | Norwegen |
| Oman | Oman |
| Pakistan | Pakistan |
| Palau | Palau |
| Palestinian Territory Occupied | Palästinensische Gebiete |
| Panama | Panama |
| Papua new Guinea | Papua-Neuguinea |
| Paraguay | Paraguay |
| Peru | Peru |
| Philippines | Philippinen |
| Pitcairn Island | Pitcairninseln |
| Poland | Polen |
| Portugal | Portugal |
| Puerto Rico | Puerto Rico |
| Qatar | Katar |
| Reunion | Réunion |
| Romania | Rumänien |
| Russia | Russland |
| Rwanda | Ruanda |
| Saint Helena | St. Helena |
| Saint Kitts And Nevis | St. Kitts und Nevis |
| Saint Lucia | St. Lucia |
| Saint Pierre and Miquelon | Saint-Pierre und Miquelon |
| Saint Vincent And The Grenadines | St. Vincent und die Grenadinen |
| Saint-Barthelemy | Saint-Barthélemy |
| Saint-Martin (French part) | Saint-Martin (französischer Teil) |
| Samoa | Samoa |
| San Marino | San Marino |
| Sao Tome and Principe | São Tomé und Príncipe |
| Saudi Arabia | Saudi-Arabien |
| Senegal | Senegal |
| Serbia | Serbien |
| Seychelles | Seychellen |
| Sierra Leone | Sierra Leone |
| Singapore | Singapur |
| Sint Maarten (Dutch part) | Sint Maarten (niederländischer Teil) |
| Slovakia | Slowakei |
| Slovenia | Slowenien |
| Solomon Islands | Salomonen |
| Somalia | Somalia |
| South Africa | Südafrika |
| South Georgia | Südgeorgien |
| South Korea | Südkorea |
| South Sudan | Südsudan |
| Spain | Spanien |
| Sri Lanka | Sri Lanka |
| Sudan | Sudan |
| Suriname | Suriname |
| Svalbard And Jan Mayen Islands | Spitzbergen und Jan Mayen |
| Swaziland | Eswatini |
| Sweden | Schweden |
| Switzerland | Schweiz |
| Syria | Syrien |
| Taiwan | Taiwan |
| Tajikistan | Tadschikistan |
| Tanzania | Tansania |
| Thailand | Thailand |
| The Bahamas | Bahamas |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinidad und Tobago |
| Tunisia | Tunesien |
| Türkiye | Türkei |
| Turkmenistan | Turkmenistan |
| Turks And Caicos Islands | Turks- und Caicosinseln |
| Tuvalu | Tuvalu |
| Uganda | Uganda |
| Ukraine | Ukraine |
| United Arab Emirates | Vereinigte Arabische Emirate |
| United Kingdom | Vereinigtes Königreich |
| United States | Vereinigte Staaten |
| Uruguay | Uruguay |
| Uzbekistan | Usbekistan |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Vatikanstadt (Heiliger Stuhl) |
| Venezuela | Venezuela |
| Vietnam | Vietnam |
| Virgin Islands (British) | Britische Jungferninseln |
| Virgin Islands (US) | Amerikanische Jungferninseln |
| Wallis And Futuna Islands | Wallis und Futuna |
| Western Sahara | Westsahara |
| Yemen | Jemen |
| Zambia | Sambia |
| Zimbabwe | Simbabwe |
### Nombres de secciones
| Inglés | Alemán |
| ------------ | ------------------------- |
| awards | Auszeichnungen |
| basics | Basisinformationen |
| certificates | Zertifikate |
| education | Ausbildung |
| interests | Interessen |
| languages | Sprachen |
| location | Ort |
| profiles | Profile |
| projects | Projekte |
| publications | Veröffentlichungen |
| references | Referenzen |
| skills | Fähigkeiten |
| volunteer | Ehrenamtliche Tätigkeiten |
| work | Berufserfahrung |
### Niveles de habilidad
| Inglés | Alemán |
| ------------ | --------------- |
| Novice | Einsteiger |
| Beginner | Anfänger |
| Intermediate | Fortgeschritten |
| Advanced | Erfahren |
| Expert | Experte |
| Master | Spezialist |
### Términos
| Término | Alemán |
| -------- | --------------- |
| courses | Kurse |
| keywords | Schlüsselwörter |
| score | Punkte |
# Localización
URL: (/es/docs/locale)
Cada currículum viene con un idioma específico. La buena noticia es que
YAMLResume está diseñado para soportar múltiples idiomas de fábrica.
Técnicamente, hay dos categorías de cosas por hacer al soportar múltiples
idiomas:
* **[Internacionalización](https://phrase.com/blog/posts/internationalization-vs-localization/#what-is-internationalization-i18n)**:
a menudo abreviada como "i18n" (donde el número 18 representa los 18
caracteres entre "i" y "n"), es básicamente un conjunto de prácticas que
permiten que un producto soporte múltiples idiomas, i18n consiste
principalmente en traducir el producto a múltiples idiomas y cambiar
dinámicamente el idioma según la elección del usuario
* **[Localización](https://phrase.com/blog/posts/internationalization-vs-localization/#what-is-localization-l10n)**:
a menudo abreviada como "l10n" (el número 10 representa los caracteres entre
"l" y "n"), va más allá de la mera traducción y en su lugar adapta el producto
a las especificidades culturales del idioma objetivo.
En la práctica, i18n siempre viene primero, l10n viene después.
Para todos los idiomas soportados, tenemos las siguientes preocupaciones desde
una perspectiva de diseño e implementación:
* **[Lingüística](https://en.wikipedia.org/wiki/Linguistics)**: el lado teórico
de un idioma, incluyendo pero no limitado al conjunto de caracteres del
idioma, sintaxis y gramática, historia, etc.
* **Modismos**: convenciones comunes y modismos que generalmente son seguidos
por un idioma.
* **[Composición](https://en.wikipedia.org/wiki/Typesetting)**: mejores
prácticas de composición a menudo seguidas por un idioma, como cursivas,
cifras de texto, estilo de fuente, kerning, ligadura, etc.
* **Traducciones**: meras traducciones para un conjunto fijo de términos y
opciones usadas por currículums generados por YAMLResume.
## Idiomas Soportados
YAMLResume necesita saber en qué idioma está escrito el currículum, para hacer
eso, necesitas establecer una clave `locale` de nivel superior en tu currículum:
```yml lineNumbers
---
content:
# ...
locale: # [!code highlight]
language: en # [!code highlight]
layouts:
- engine: markdown
# ...
```
## Idiomas Soportados
Puedes usar `yamlresume languages list` para listar todos los idiomas
soportados. Al momento de escribir, YAMLResume soporta los siguientes idiomas:
```console
$ yamlresume languages list
| locale.language | Language Name | 1:03:48 PM
| --------------- | ------------------------------- |
| en | English |
| zh-hans | Simplified Chinese |
| zh-hant-hk | Traditional Chinese (Hong Kong) |
| zh-hant-tw | Traditional Chinese (Taiwan) |
| es | Spanish |
| fr | French |
| no | Norwegian |
| nl | Dutch |
| ja | Japanese |
| de | German |
```
Consulta las siguientes páginas para más detalles sobre cada idioma:
## Glosarios
Hemos usado los siguientes glosarios a lo largo de esta sección:
* **Idiomas de escritura latina**: idiomas que usan [escritura
latina](https://en.wikipedia.org/wiki/Latin_script) como [sistemas de
escritura](https://en.wikipedia.org/wiki/Writing_system). La mayoría de [idiomas
germánicos](https://en.wikipedia.org/wiki/Germanic_languages), [idiomas
romances](https://en.wikipedia.org/wiki/Romance_languages) y muchos otros
idiomas como [indonesio](https://en.wikipedia.org/wiki/Indonesian_language) usan
escritura latina como sistema de escritura principal.
* **[CJK](https://en.wikipedia.org/wiki/CJK_characters)**: idiomas chino,
japonés y coreano.
* **[Conjunto de
Caracteres](https://www.creatopy.com/blog/what-is-a-character-set/)**: la
colección completa de caracteres, símbolos, glifos y signos de puntuación
disponibles dentro de un tipo de letra o fuente específica.
* **[Glifo](https://en.wikipedia.org/wiki/Glyph)**: la forma específica, diseño,
o representación de un carácter en tipografía.
* **[División silábica](https://en.wikipedia.org/wiki/Syllabification)**, la
práctica de dividir palabras al final de líneas para mejorar la apariencia
general y legibilidad del texto.
* **[Justificación](https://en.wikipedia.org/wiki/Typographic_alignment#Justified)**:
la alineación de texto dentro de un bloque para que esté alineado tanto con el
margen izquierdo como derecho, generalmente logrado ajustando el espaciado entre
palabras y letras, creando una apariencia uniforme en cada línea de texto.
* **[Kerning](https://en.wikipedia.org/wiki/Kerning)**: el proceso de ajustar el
espaciado entre caracteres en una fuente proporcional, generalmente para lograr
un resultado visualmente agradable.
* **[Ligadura](https://en.wikipedia.org/wiki/Ligature_\(writing\))**: un glifo
que une dos o más letras juntas para mejorar el atractivo visual del texto y
obtener mejor legibilidad.
# Japonés
URL: (/es/docs/locale/japanese)
El japonés (日本語) es una lengua de Asia oriental hablada principalmente en
Japón. Es miembro de la familia de lenguas japónicas.
## Lingüística
### Conjunto de caracteres
El sistema de escritura japonés utiliza una combinación de tres escrituras:
Kanji (caracteres chinos adoptados), Hiragana y Katakana. La escritura latina
(Romaji) también se utiliza para ciertos propósitos.
### Soporte CJK
YAMLResume detecta automáticamente el japonés como un idioma CJK y aplica
ajustes de diseño específicos, como el uso de números de estilo "Lining" en
lugar de "OldStyle" para que coincidan mejor con los glifos CJK.
## Modismos
### Fecha
Las fechas japonesas se formatean en el orden Año, Mes y Día, utilizando
contadores específicos.
| Inglés | Japonés |
| --------- | ------- |
| January | 1月 |
| February | 2月 |
| March | 3月 |
| April | 4月 |
| May | 5月 |
| June | 6月 |
| July | 7月 |
| August | 8月 |
| September | 9月 |
| October | 10月 |
| November | 11月 |
| December | 12月 |
Los rangos de fechas utilizan la tilde de ancho completo (U+FF5E) como separador
(por ejemplo, 2016年10月~2018年1月).
### Ubicación
En el currículum generado, las direcciones japonesas generalmente siguen el
orden de País, Región (Prefectura), Ciudad, Dirección y finalmente Código
Postal.
Nota: Si bien las direcciones japonesas estándar generalmente comienzan con el
Código Postal (〒), YAMLResume actualmente lo agrega al final para mantener la
coherencia con las variables de estructura generadas.
## Composición tipográfica
### Puntuación
El japonés utiliza signos de puntuación de ancho completo.
* **Coma**: `、` (Coma ideográfica, U+3001) se utiliza en lugar de la coma
latina `,`.
* **Dos puntos**: `:` (Dos puntos de ancho completo, U+FF1A) se utiliza en
lugar de los dos puntos latinos `:`.
* **Separador**: `、` también se utiliza como separador de listas.
## Traducciones
YAMLResume adopta las siguientes traducciones para varias opciones y términos
utilizados en los currículos japoneses.
### Títulos educativos
| Inglés | Japonés |
| ------------- | ----------- |
| Middle School | 中学校 |
| High School | 高等学校 |
| Diploma | 短期大学・高等専門学校 |
| Associate | 準学士 |
| Bachelor | 学士 |
| Master | 修士 |
| Doctor | 博士 |
### Idiomas
| Inglés | Japonés |
| ----------- | --------- |
| Afrikaans | アフリカーンス語 |
| Albanian | アルバニア語 |
| Amharic | アムハラ語 |
| Arabic | アラビア語 |
| Azerbaijani | アゼルバイジャン語 |
| Belarusian | ベラルーシ語 |
| Bengali | ベンガル語 |
| Bhojpuri | ボージュプリー語 |
| Bulgarian | ブルガリア語 |
| Burmese | ビルマ語 |
| Cantonese | 広東語 |
| Catalan | カタロニア語 |
| Chinese | 中国語 |
| Croatian | クロアチア語 |
| Czech | チェコ語 |
| Danish | デンマーク語 |
| Dutch | オランダ語 |
| English | 英語 |
| Estonian | エストニア語 |
| Farsi | ペルシャ語 |
| Filipino | フィリピン語 |
| Finnish | フィンランド語 |
| French | フランス語 |
| German | ドイツ語 |
| Greek | ギリシャ語 |
| Gujarati | グジャラート語 |
| Hausa | ハウサ語 |
| Hebrew | ヘブライ語 |
| Hindi | ヒンディー語 |
| Hungarian | ハンガリー語 |
| Icelandic | アイスランド語 |
| Igbo | イボ語 |
| Indonesian | インドネシア語 |
| Irish | アイルランド語 |
| Italian | イタリア語 |
| Japanese | 日本語 |
| Javanese | ジャワ語 |
| Kazakh | カザフ語 |
| Khmer | クメール語 |
| Korean | 韓国語 |
| Lahnda | ラーンダー語 |
| Latvian | ラトビア語 |
| Lithuanian | リトアニア語 |
| Malay | マレー語 |
| Mandarin | 標準中国語 |
| Marathi | マラーティー語 |
| Nepali | ネパール語 |
| Norwegian | ノルウェー語 |
| Oromo | オロモ語 |
| Pashto | パシュトー語 |
| Polish | ポーランド語 |
| Portuguese | ポルトガル語 |
| Romanian | ルーマニア語 |
| Russian | ロシア語 |
| Serbian | セルビア語 |
| Shona | ショナ語 |
| Sinhala | シンハラ語 |
| Slovak | スロバキア語 |
| Slovene | スロベニア語 |
| Somali | ソマリ語 |
| Spanish | スペイン語 |
| Sundanese | スンダ語 |
| Swahili | スワヒリ語 |
| Swedish | スウェーデン語 |
| Tagalog | タガログ語 |
| Tamil | タミル語 |
| Telugu | テルグ語 |
| Thai | タイ語 |
| Turkish | トルコ語 |
| Ukrainian | ウクライナ語 |
| Urdu | ウルドゥー語 |
| Uzbek | ウズベク語 |
| Vietnamese | ベトナム語 |
| Yoruba | ヨルバ語 |
| Zulu | ズールー語 |
### Fluidez de idiomas
| Inglés | Japonés |
| -------------------------------- | ------------ |
| Elementary Proficiency | 初級レベル |
| Limited Working Proficiency | 限定的な実務レベル |
| Minimum Professional Proficiency | 実務レベル |
| Full Professional Proficiency | 完全な実務レベル |
| Native or Bilingual Proficiency | ネイティブ・母国語レベル |
### Ubicación (Países y Regiones)
| Inglés | Japonés |
| ------------------------------------ | --------------------- |
| Afghanistan | アフガニスタン |
| Aland Islands | オーランド諸島 |
| Albania | アルバニア |
| Algeria | アルジェリア |
| American Samoa | 米領サモア |
| Andorra | アンドラ |
| Angola | アンゴラ |
| Anguilla | アンギラ |
| Antarctica | 南極 |
| Antigua And Barbuda | アンティグア・バーブーダ |
| Argentina | アルゼンチン |
| Armenia | アルメニア |
| Aruba | アルバ |
| Australia | オーストラリア |
| Austria | オーストリア |
| Azerbaijan | アゼルバイジャン |
| Bahrain | バーレーン |
| Bangladesh | バングラデシュ |
| Barbados | バルバドス |
| Belarus | ベラルーシ |
| Belgium | ベルギー |
| Belize | ベリーズ |
| Benin | ベナン |
| Bermuda | バミューダ |
| Bhutan | ブータン |
| Bolivia | ボリビア |
| Bosnia and Herzegovina | ボスニア・ヘルツェゴビナ |
| Botswana | ボツワナ |
| Bouvet Island | ブーベ島 |
| Brazil | ブラジル |
| British Indian Ocean Territory | 英領インド洋地域 |
| Brunei | ブルネイ |
| Bulgaria | ブルガリア |
| Burkina Faso | ブルキナファソ |
| Burundi | ブルンジ |
| Cambodia | カンボジア |
| Cameroon | カメルーン |
| Canada | カナダ |
| Cape Verde | カーボベルデ |
| Cayman Islands | ケイマン諸島 |
| Central African Republic | 中央アフリカ共和国 |
| Chad | チャド |
| Chile | チリ |
| China | 中国 |
| Christmas Island | クリスマス島 |
| Cocos (Keeling) Islands | ココス諸島 |
| Colombia | コロンビア |
| Comoros | コモロ |
| Congo | コンゴ共和国 |
| Cook Islands | クック諸島 |
| Costa Rica | コスタリカ |
| Croatia | クロアチア |
| Cuba | キューバ |
| Curaçao | キュラソー |
| Cyprus | キプロス |
| Czech Republic | チェコ |
| Democratic Republic of the Congo | コンゴ民主共和国 |
| Denmark | デンマーク |
| Djibouti | ジブチ |
| Dominica | ドミニカ国 |
| Dominican Republic | ドミニカ共和国 |
| East Timor | 東ティモール |
| Ecuador | エクアドル |
| Egypt | エジプト |
| El Salvador | エルサルバドル |
| Equatorial Guinea | 赤道ギニア |
| Eritrea | エリトリア |
| Estonia | エストニア |
| Ethiopia | エチオピア |
| Falkland Islands | フォークランド諸島 |
| Faroe Islands | フェロー諸島 |
| Fiji Islands | フィジー |
| Finland | フィンランド |
| France | フランス |
| French Guiana | 仏領ギアナ |
| French Polynesia | 仏領ポリネシア |
| French Southern Territories | フランス領南方・南極地域 |
| Gabon | ガボン |
| Gambia The | ガンビア |
| Georgia | ジョージア |
| Germany | ドイツ |
| Ghana | ガーナ |
| Gibraltar | ジブラルタル |
| Greece | ギリシャ |
| Greenland | グリーンランド |
| Grenada | グレナダ |
| Guadeloupe | グアドループ |
| Guam | グアム |
| Guatemala | グアテマラ |
| Guernsey and Alderney | ガーンジー |
| Guinea | ギニア |
| Guinea-Bissau | ギニアビサウ |
| Guyana | ガイアナ |
| Haiti | ハイチ |
| Heard Island and McDonald Islands | ハード島とマクドナルド諸島 |
| Honduras | ホンジュラス |
| Hong Kong | 香港 |
| Hungary | ハンガリー |
| Iceland | アイスランド |
| India | インド |
| Indonesia | インドネシア |
| Iran | イラン |
| Iraq | イラク |
| Ireland | アイルランド |
| Israel | イスラエル |
| Italy | イタリア |
| Jamaica | ジャマイカ |
| Japan | 日本 |
| Jersey | ジャージー |
| Jordan | ヨルダン |
| Kazakhstan | カザフスタン |
| Kenya | ケニア |
| Kiribati | キリバス |
| Kosovo | コソボ |
| Kuwait | クウェート |
| Kyrgyzstan | キルギス |
| Laos | ラオス |
| Latvia | ラトビア |
| Lebanon | レバノン |
| Lesotho | レソト |
| Liberia | リベリア |
| Libya | リビア |
| Liechtenstein | リヒテンシュタイン |
| Lithuania | リトアニア |
| Luxembourg | ルクセンブルク |
| Macau | マカオ |
| Madagascar | マダガスカル |
| Malawi | マラウイ |
| Malaysia | マレーシア |
| Maldives | モルディブ |
| Mali | マリ |
| Malta | マルタ |
| Man (Isle of) | マン島 |
| Marshall Islands | マーシャル諸島 |
| Martinique | マルティニーク |
| Mauritania | モーリタニア |
| Mauritius | モーリシャス |
| Mayotte | マヨット |
| Mexico | メキシコ |
| Micronesia | ミクロネシア連邦 |
| Moldova | モルドバ |
| Monaco | モナコ |
| Mongolia | モンゴル |
| Montenegro | モンテネグロ |
| Montserrat | モントセラト |
| Morocco | モロッコ |
| Mozambique | モザンビーク |
| Myanmar | ミャンマー |
| Namibia | ナミビア |
| Nauru | ナウル |
| Nepal | ネパール |
| Netherlands | オランダ |
| New Caledonia | ニューカレドニア |
| New Zealand | ニュージーランド |
| Nicaragua | ニカラグア |
| Niger | ニジェール |
| Nigeria | ナイジェリア |
| Niue | ニウエ |
| Norfolk Island | ノーフォーク島 |
| North Korea | 北朝鮮 |
| North Macedonia | 北マケドニア |
| Northern Mariana Islands | 北マリアナ諸島 |
| Norway | ノルウェー |
| Oman | オマーン |
| Pakistan | パキスタン |
| Palau | パラオ |
| Palestinian Territory Occupied | パレスチナ |
| Panama | パナマ |
| Papua new Guinea | パプアニューギニア |
| Paraguay | パラグアイ |
| Peru | ペルー |
| Philippines | フィリピン |
| Pitcairn Island | ピトケアン諸島 |
| Poland | ポーランド |
| Portugal | ポルトガル |
| Puerto Rico | プエルトリコ |
| Qatar | カタール |
| Reunion | レユニオン |
| Romania | ルーマニア |
| Russia | ロシア |
| Rwanda | ルワンダ |
| Saint Helena | セントヘレナ |
| Saint Kitts And Nevis | セントクリストファー・ネイビス |
| Saint Lucia | セントルシア |
| Saint Pierre and Miquelon | サンピエール島・ミクロン島 |
| Saint Vincent And The Grenadines | セントビンセント・グレナディーン |
| Saint-Barthelemy | サン・バルテルミー |
| Saint-Martin (French part) | サン・マルタン |
| Samoa | サモア |
| San Marino | サンマリノ |
| Sao Tome and Principe | サントメ・プリンシペ |
| Saudi Arabia | サウジアラビア |
| Senegal | セネガル |
| Serbia | セルビア |
| Seychelles | セーシェル |
| Sierra Leone | シエラレオネ |
| Singapore | シンガポール |
| Sint Maarten (Dutch part) | シント・マールテン |
| Slovakia | スロバキア |
| Slovenia | スロベニア |
| Solomon Islands | ソロモン諸島 |
| Somalia | ソマリア |
| South Africa | 南アフリカ |
| South Georgia | サウスジョージア・サウスサンドウィッチ諸島 |
| South Korea | 韓国 |
| South Sudan | 南スーダン |
| Spain | スペイン |
| Sri Lanka | スリランカ |
| Sudan | スーダン |
| Suriname | スリナム |
| Svalbard And Jan Mayen Islands | スヴァールバル諸島およびヤンマイエン島 |
| Swaziland | エスワティニ |
| Sweden | スウェーデン |
| Switzerland | スイス |
| Syria | シリア |
| Taiwan | 台湾 |
| Tajikistan | タジキスタン |
| Tanzania | タンザニア |
| Thailand | タイ |
| The Bahamas | バハマ |
| Togo | トーゴ |
| Tokelau | トケラウ |
| Tonga | トンガ |
| Trinidad And Tobago | トリニダード・トバゴ |
| Tunisia | チュニジア |
| Turkey | トルコ |
| Turkmenistan | トルクメニスタン |
| Turks And Caicos Islands | タークス・カイコス諸島 |
| Tuvalu | ツバル |
| Uganda | ウガンダ |
| Ukraine | ウクライナ |
| United Arab Emirates | アラブ首長国連邦 |
| United Kingdom | イギリス |
| United States Minor Outlying Islands | 合衆国領有小離島 |
| United States | アメリカ合衆国 |
| Uruguay | ウルグアイ |
| Uzbekistan | ウズベキスタン |
| Vanuatu | バヌアツ |
| Vatican City State (Holy See) | バチカン市国 |
| Venezuela | ベネズエラ |
| Vietnam | ベトナム |
| Virgin Islands (British) | 英領ヴァージン諸島 |
| Virgin Islands (US) | 米領ヴァージン諸島 |
| Wallis And Futuna Islands | ウォリス・フツナ |
| Western Sahara | 西サハラ |
| Yemen | イエメン |
| Zambia | ザンビア |
| Zimbabwe | ジンバブエ |
### Nombres de secciones
| Inglés | Japonés |
| ------------ | -------- |
| awards | 受賞・表彰 |
| basics | 基本情報 |
| certificates | 資格・免状 |
| education | 学歴 |
| interests | 興味・関心 |
| languages | 言語 |
| location | 住所 |
| profiles | プロフィール |
| projects | プロジェクト |
| publications | 出版・著作 |
| references | 推薦人 |
| skills | スキル |
| volunteer | ボランティア活動 |
| work | 職歴 |
### Niveles de habilidad
| Inglés | Japonés |
| ------------ | ------- |
| Novice | 入門 |
| Beginner | 初級 |
| Intermediate | 中級 |
| Advanced | 上級 |
| Expert | エキスパート |
| Master | マスター |
### Términos
| Término | Japonés |
| -------- | ------- |
| courses | コース |
| keywords | キーワード |
| score | 成績 |
# Noruego
URL: (/es/docs/locale/norwegian)
El inglés y el noruego son ambas [lenguas
germánicas](https://en.wikipedia.org/wiki/Germanic_languages); el noruego
pertenece a la rama germánica del norte. Aunque comparten fundamentos comunes,
el noruego tiene características propias que requieren consideraciones
específicas en YAMLResume.
## Lingüística
### Conjunto de caracteres
Los conjuntos de caracteres de inglés y noruego son similares: ambos emplean
principalmente el [alfabeto
latino](https://en.wikipedia.org/wiki/Latin_alphabet), pero el noruego añade
letras adicionales. Comparativa detallada:
| Feature | English Character Set | Norwegian Character Set |
| ---------------------- | --------------------------------- | ---------------------------------------------------------------------------------------- |
| **Alphabet** | 26 letters (`a-z`) | 29 letters (`a-z` plus `æ`, `ø`, `å`) |
| **Diacritics** | None | Three additional vowels (`æ`, `ø`, `å`) that are distinct letters, not diacritical marks |
| **Special Characters** | Limited to basic Latin characters | Includes the three additional Norwegian vowels which are considered separate letters |
Diferencias principales entre los sistemas de escritura en inglés y noruego:
* **Letras adicionales**: el alfabeto noruego incluye tres vocales extra: `æ`,
`ø` y `å`, que son letras distintas con pronunciaciones específicas.
* **Orden**: en orden alfabético noruego, estas letras van al final: ...x, y, z,
æ, ø, å.
* **Mayúsculas/minúsculas**: existen formas en mayúscula y minúscula (`Æ/æ`,
`Ø/ø`, `Å/å`).
## Convenciones
### Fecha
Los días y meses no se escriben con mayúscula en noruego (a diferencia del
inglés). Por ejemplo, "Sep 2021" se convierte en "sept. 2021" en noruego: mes en
minúscula y punto tras la abreviatura.
YAMLResume solo usa meses, de ahí la tabla:
| English | Norwegian |
| --------------- | ----------------- |
| January (Jan) | januar (jan.) |
| February (Feb) | februar (feb.) |
| March (Mar) | mars (mar.) |
| April (Apr) | april (apr.) |
| May (May) | mai (mai) |
| June (Jun) | juni (jun.) |
| July (Jul) | juli (jul.) |
| August (Aug) | august (aug.) |
| September (Sep) | september (sept.) |
| October (Oct) | oktober (okt.) |
| November (Nov) | november (nov.) |
| December (Dec) | desember (des.) |
### Capitalización
El noruego aplica reglas de capitalización más conservadoras que el inglés.
Generalmente solo se capitalizan nombres propios, la primera palabra de la
oración y el pronombre equivalente a "yo" ("jeg"), aunque en noruego no se
capitaliza como en inglés.
YAMLResume adopta internamente un conjunto fijo de opciones y términos. Por
ejemplo, los niveles de fluidez lingüística toman las opciones de
[LinkedIn](https://www.linkedin.com/pulse/language-proficiency-linkedin-duaa-ali/):
* Elementary Proficiency
* Limited Working Proficiency
* Minimum Professional Proficiency
* Full Professional Proficiency
* Native or Bilingual Proficiency
Traducción al noruego (ya incluida arriba):
* Grunnleggende nivå
* Begrenset arbeidskunnskap
* Minimum profesjonelt nivå
* Fullt profesjonelt nivå
* Morsmål eller tospråklig nivå
Solo la primera palabra se capitaliza siguiendo las convenciones noruegas.
## Composición tipográfica
### Puntuación
El noruego presenta varias diferencias destacables respecto al inglés:
* **Comillas**: se usan habitualmente comillas latinas angulares (`«»`) o rectas
(`""`), y la puntuación suele colocarse fuera de las comillas.
* **Separador decimal**: se usa la coma (3,14) en lugar del punto (3.14).
* **Separador de miles**: se emplea un espacio o un punto (1 000 o 1.000) en vez
de la coma.
* **Formato de fecha**: los formatos más comunes son DD.MM.AAAA o DD/MM/AAAA,
diferente del formato estadounidense MM/DD/AAAA.
## Traducciones
YAMLResume adopta las siguientes traducciones de opciones y términos usados en
currículums en noruego (columna original inglés intacta).
### Grados académicos
| English | Norwegian |
| ------------- | ------------------ |
| Middle School | Ungdomsskole |
| High School | Videregående skole |
| Diploma | Fagbrev |
| Associate | Associate |
| Bachelor | Bachelor |
| Master | Master |
| Doctor | Doktor |
### Idiomas
| English | Norwegian |
| ----------- | -------------- |
| Afrikaans | Afrikaans |
| Albanian | Albansk |
| Amharic | Amharisk |
| Arabic | Arabisk |
| Azerbaijani | Aserbajdsjansk |
| Belarusian | Hviterussisk |
| Bengali | Bengali |
| Bhojpuri | Bhojpuri |
| Bulgarian | Bulgarsk |
| Burmese | Burmesisk |
| Cantonese | Kantonesisk |
| Catalan | Katalansk |
| Chinese | Kinesisk |
| Croatian | Kroatisk |
| Czech | Tsjekkisk |
| Danish | Dansk |
| Dutch | Nederlandsk |
| English | Engelsk |
| Estonian | Estisk |
| Farsi | Persisk |
| Filipino | Filippinsk |
| Finnish | Finsk |
| French | Fransk |
| German | Tysk |
| Greek | Gresk |
| Gujarati | Gujarati |
| Hausa | Hausa |
| Hebrew | Hebraisk |
| Hindi | Hindi |
| Hungarian | Ungarsk |
| Icelandic | Islandsk |
| Igbo | Igbo |
| Indonesian | Indonesisk |
| Irish | Irsk |
| Italian | Italiensk |
| Japanese | Japansk |
| Javanese | Javanesisk |
| Kazakh | Kasakhisk |
| Khmer | Khmer |
| Korean | Koreansk |
| Lahnda | Lahnda |
| Latvian | Latvisk |
| Lithuanian | Litauisk |
| Malay | Malaysisk |
| Mandarin | Mandarin |
| Marathi | Marathi |
| Nepali | Nepalsk |
| Norwegian | Norsk |
| Oromo | Oromo |
| Pashto | Pashto |
| Polish | Polsk |
| Portuguese | Portugisisk |
| Romanian | Rumensk |
| Russian | Russisk |
| Serbian | Serbisk |
| Shona | Shona |
| Sinhala | Singalesisk |
| Slovak | Slovakisk |
| Slovene | Slovensk |
| Somali | Somalisk |
| Spanish | Spansk |
| Sundanese | Sundanesisk |
| Swahili | Swahili |
| Swedish | Svensk |
| Tagalog | Tagalog |
| Tamil | Tamil |
| Telugu | Telugu |
| Thai | Thai |
| Turkish | Tyrkisk |
| Ukrainian | Ukrainsk |
| Urdu | Urdu |
| Uzbek | Usbekisk |
| Vietnamese | Vietnamesisk |
| Yoruba | Yoruba |
| Zulu | Zulu |
### Niveles de fluidez
| English | Norwegian |
| -------------------------------- | ----------------------------- |
| Elementary Proficiency | Grunnleggende nivå |
| Limited Working Proficiency | Begrenset arbeidskunnskap |
| Minimum Professional Proficiency | Minimum profesjonelt nivå |
| Full Professional Proficiency | Fullt profesjonelt nivå |
| Native or Bilingual Proficiency | Morsmål eller tospråklig nivå |
### Ubicación (países y regiones)
| English | Norwegian |
| ------------------------------------ | ------------------------------------- |
| Afghanistan | Afghanistan |
| Aland Islands | Åland |
| Albania | Albania |
| Algeria | Algerie |
| American Samoa | Amerikansk Samoa |
| Andorra | Andorra |
| Angola | Angola |
| Anguilla | Anguilla |
| Antarctica | Antarktis |
| Antigua And Barbuda | Antigua og Barbuda |
| Argentina | Argentina |
| Armenia | Armenia |
| Aruba | Aruba |
| Australia | Australia |
| Austria | Østerrike |
| Azerbaijan | Aserbajdsjan |
| Bahrain | Bahrain |
| Bangladesh | Bangladesh |
| Barbados | Barbados |
| Belarus | Belarus |
| Belgium | Belgia |
| Belize | Belize |
| Benin | Benin |
| Bermuda | Bermuda |
| Bhutan | Bhutan |
| Bolivia | Bolivia |
| Bonaire, Sint Eustatius and Saba | Bonaire, Sint Eustatius og Saba |
| Bosnia and Herzegovina | Bosnia-Hercegovina |
| Botswana | Botswana |
| Bouvet Island | Bouvetøya |
| Brazil | Brasil |
| British Indian Ocean Territory | Det britiske territoriet i Indiahavet |
| Brunei | Brunei |
| Bulgaria | Bulgaria |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Kambodsja |
| Cameroon | Kamerun |
| Canada | Canada |
| Cape Verde | Kapp Verde |
| Cayman Islands | Caymanøyene |
| Central African Republic | Den sentralafrikanske republikk |
| Chad | Tsjad |
| Chile | Chile |
| China | Kina |
| Christmas Island | Christmasøya |
| Cocos (Keeling) Islands | Kokosøyene (Keelingøyene) |
| Colombia | Colombia |
| Comoros | Komorene |
| Congo | Kongo |
| Cook Islands | Cookøyene |
| Costa Rica | Costa Rica |
| Cote D'Ivoire (Ivory Coast) | Elfenbenskysten |
| Croatia | Kroatia |
| Cuba | Cuba |
| Curaçao | Curaçao |
| Cyprus | Kypros |
| Czech Republic | Tsjekkia |
| Democratic Republic of the Congo | Den demokratiske republikken Kongo |
| Denmark | Danmark |
| Djibouti | Djibouti |
| Dominica | Dominica |
| Dominican Republic | Den dominikanske republikk |
| East Timor | Øst-Timor |
| Ecuador | Ecuador |
| Egypt | Egypt |
| El Salvador | El Salvador |
| Equatorial Guinea | Ekvatorial-Guinea |
| Eritrea | Eritrea |
| Estonia | Estland |
| Ethiopia | Etiopia |
| Falkland Islands | Falklandsøyene |
| Faroe Islands | Færøyene |
| Fiji Islands | Fijiøyene |
| Finland | Finland |
| France | Frankrike |
| French Guiana | Fransk Guyana |
| French Polynesia | Fransk Polynesia |
| French Southern Territories | Franske sørlige territorier |
| Gabon | Gabon |
| Gambia The | Gambia |
| Georgia | Georgia |
| Germany | Tyskland |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Hellas |
| Greenland | Grønland |
| Grenada | Grenada |
| Guadeloupe | Guadeloupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernsey og Alderney |
| Guinea | Guinea |
| Guinea-Bissau | Guinea-Bissau |
| Guyana | Guyana |
| Haiti | Haiti |
| Heard Island and McDonald Islands | Heard- og McDonaldøyene |
| Honduras | Honduras |
| Hong Kong S.A.R. | Hong Kong S.A.R. |
| Hungary | Ungarn |
| Iceland | Island |
| India | India |
| Indonesia | Indonesia |
| Iran | Iran |
| Iraq | Irak |
| Ireland | Irland |
| Israel | Israel |
| Italy | Italia |
| Jamaica | Jamaica |
| Japan | Japan |
| Jersey | Jersey |
| Jordan | Jordan |
| Kazakhstan | Kasakhstan |
| Kenya | Kenya |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Kuwait |
| Kyrgyzstan | Kirgisistan |
| Laos | Laos |
| Latvia | Latvia |
| Lebanon | Libanon |
| Lesotho | Lesotho |
| Liberia | Liberia |
| Libya | Libya |
| Liechtenstein | Liechtenstein |
| Lithuania | Litauen |
| Luxembourg | Luxembourg |
| Macau S.A.R. | Macau S.A.R. |
| Madagascar | Madagaskar |
| Malawi | Malawi |
| Malaysia | Malaysia |
| Maldives | Maldivene |
| Mali | Mali |
| Malta | Malta |
| Man (Isle of) | Man (Isle of) |
| Marshall Islands | Marshalløyene |
| Martinique | Martinique |
| Mauritania | Mauritania |
| Mauritius | Mauritius |
| Mayotte | Mayotte |
| Mexico | Mexico |
| Micronesia | Mikronesia |
| Moldova | Moldova |
| Monaco | Monaco |
| Mongolia | Mongolia |
| Montenegro | Montenegro |
| Montserrat | Montserrat |
| Morocco | Marokko |
| Mozambique | Mosambik |
| Myanmar | Myanmar |
| Namibia | Namibia |
| Nauru | Nauru |
| Nepal | Nepal |
| Netherlands | Nederland |
| New Caledonia | Ny-Caledonia |
| New Zealand | New Zealand |
| Nicaragua | Nicaragua |
| Niger | Niger |
| Nigeria | Nigeria |
| Niue | Niue |
| Norfolk Island | Norfolkøya |
| North Korea | Nord-Korea |
| North Macedonia | Nord-Makedonia |
| Northern Mariana Islands | Nord-Marianene |
| Norway | Norge |
| Oman | Oman |
| Pakistan | Pakistan |
| Palau | Palau |
| Palestinian Territory Occupied | Palestinsk okkupert område |
| Panama | Panama |
| Papua new Guinea | Papua Ny-Guinea |
| Paraguay | Paraguay |
| Peru | Peru |
| Philippines | Filippinene |
| Pitcairn Island | Pitcairnøyene |
| Poland | Polen |
| Portugal | Portugal |
| Puerto Rico | Puerto Rico |
| Qatar | Qatar |
| Reunion | Réunion |
| Romania | Romania |
| Russia | Russland |
| Rwanda | Rwanda |
| Saint Helena | Sankt Helena |
| Saint Kitts And Nevis | Saint Kitts og Nevis |
| Saint Lucia | Saint Lucia |
| Saint Pierre and Miquelon | Saint-Pierre og Miquelon |
| Saint Vincent And The Grenadines | Saint Vincent og Grenadinene |
| Saint-Barthelemy | Saint-Barthélemy |
| Saint-Martin (French part) | Saint-Martin (fransk del) |
| Samoa | Samoa |
| San Marino | San Marino |
| Sao Tome and Principe | São Tomé og Príncipe |
| Saudi Arabia | Saudi-Arabia |
| Senegal | Senegal |
| Serbia | Serbia |
| Seychelles | Seychellene |
| Sierra Leone | Sierra Leone |
| Singapore | Singapore |
| Sint Maarten (Dutch part) | Sint Maarten (nederlandsk del) |
| Slovakia | Slovakia |
| Slovenia | Slovenia |
| Solomon Islands | Salomonøyene |
| Somalia | Somalia |
| South Africa | Sør-Afrika |
| South Georgia | Sør-Georgia |
| South Korea | Sør-Korea |
| South Sudan | Sør-Sudan |
| Spain | Spania |
| Sri Lanka | Sri Lanka |
| Sudan | Sudan |
| Suriname | Surinam |
| Svalbard And Jan Mayen Islands | Svalbard og Jan Mayen |
| Swaziland | Swaziland |
| Sweden | Sverige |
| Switzerland | Sveits |
| Syria | Syria |
| Taiwan | Taiwan |
| Tajikistan | Tadsjikistan |
| Tanzania | Tanzania |
| Thailand | Thailand |
| The Bahamas | Bahamas |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinidad og Tobago |
| Tunisia | Tunisia |
| Türkiye | Tyrkia |
| Turkmenistan | Turkmenistan |
| Turks And Caicos Islands | Turks- og Caicosøyene |
| Tuvalu | Tuvalu |
| Uganda | Uganda |
| Ukraine | Ukraina |
| United Arab Emirates | De forente arabiske emirater |
| United Kingdom | Storbritannia |
| United States | USA |
| United States Minor Outlying Islands | USAs ytre småøyer |
| Uruguay | Uruguay |
| Uzbekistan | Usbekistan |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Vatikanstaten (Den hellige stol) |
| Venezuela | Venezuela |
| Vietnam | Vietnam |
| Virgin Islands (British) | Jomfruøyene (britiske) |
| Virgin Islands (US) | Jomfruøyene (USA) |
| Wallis And Futuna Islands | Wallis- og Futunaøyene |
| Western Sahara | Vest-Sahara |
| Yemen | Jemen |
| Zambia | Zambia |
| Zimbabwe | Zimbabwe |
### Nombres de secciones
| English | Norwegian |
| ------------ | ------------------------- |
| Awards | Utmerkelser |
| Basics | Grunnleggende informasjon |
| Certificates | Sertifikater |
| Education | Utdanning |
| Interests | Interesser |
| Languages | Språk |
| Projects | Prosjekter |
| Publications | Publikasjoner |
| References | Referanser |
| Skills | Ferdigheter |
| Volunteer | Frivillig arbeid |
| Work | Arbeidserfaring |
### Niveles de habilidad
| English | Norwegian |
| ------------ | ------------ |
| Novice | Nybegynner |
| Beginner | Begynner |
| Intermediate | Viderekommen |
| Advanced | Avansert |
| Expert | Ekspert |
| Master | Mester |
### Opciones y términos
| English | Norwegian |
| -------- | --------- |
| Courses | Kurs |
| Keywords | Nøkkelord |
| Score | Poeng |
# Español
URL: (/es/docs/locale/spanish)
El inglés y el español son ambas [lenguas
indoeuropeas](https://en.wikipedia.org/wiki/Indo-European_languages); no
sorprende que compartan similitudes, por lo que gran parte de las bases comunes
de YAMLResume se pueden reutilizar para ambos idiomas.
## Lingüística
### Conjunto de caracteres
Los conjuntos de caracteres de inglés y español son muy similares: ambos usan
principalmente el [alfabeto
latino](https://en.wikipedia.org/wiki/Latin_alphabet), que consta de 26 letras.
Sin embargo, el español añade la letra `ñ`, que representa un sonido único.
Comparativa rápida:
| Feature | English Character Set | Spanish Character Set |
| ---------------------- | --------------------------------- | ----------------------------------------------------------------------------------------------- |
| **Alphabet** | 26 letters (`a-z`) | 27 letters (`a-z` plus `ñ`) |
| **Diacritics** | None | Includes accents (`á`, `é`, `í`, `ó`, `ú`), diaeresis (`ü`), and special punctuation (`¿`, `¡`) |
| **Special Characters** | Limited to basic Latin characters | Includes additional characters like `ñ` and accented vowels |
Principales diferencias entre los sistemas de escritura del inglés y el español:
* **Letra adicional**: el alfabeto español incluye la `ñ`, inexistente en el
inglés.
* **[Diacríticos](https://en.wikipedia.org/wiki/Diacritic)**: el español usa
varios signos que modifican la pronunciación y la sílaba tónica (p. ej., `é` vs
`e`).
* **Signos de puntuación**: el español emplea signos invertidos (`¿` y `¡`) para
abrir preguntas y exclamaciones, ausentes en inglés.
## Convenciones
### Fecha
Los días de la semana y los meses se escriben con mayúscula en inglés, pero no
en español. Por ejemplo, "Sep 2021" en inglés se traduce como "sept 2021" en
español.
YAMLResume solo usa meses; por ello la tabla de traducción:
| English | Spanish |
| --------------- | ----------------- |
| January (Jan) | enero (ene) |
| February (Feb) | febrero (feb) |
| March (Mar) | marzo (mar) |
| April (Apr) | abril (abr) |
| May (May) | mayo (may) |
| June (Jun) | junio (jun) |
| July (Jul) | julio (jul) |
| August (Aug) | agosto (ago) |
| September (Sep) | septiembre (sept) |
| October (Oct) | octubre (oct) |
| November (Nov) | noviembre (nov) |
| December (Dec) | diciembre (dic) |
### Capitalización
El inglés tiende a poner en mayúscula más palabras; el español es más
conservador y sigue un [conjunto estrictamente limitado de
reglas](https://baselang.com/blog/basic-grammar/capitalization-in-spanish/).
YAMLResume adopta internamente un conjunto fijo de opciones y términos en todas
las plantillas. Por ejemplo, los niveles de fluidez lingüística se basan en las
opciones de
[LinkedIn](https://www.linkedin.com/pulse/language-proficiency-linkedin-duaa-ali/):
* Elementary Proficiency
* Limited Working Proficiency
* Minimum Professional Proficiency
* Full Professional Proficiency
* Native or Bilingual Proficiency
Traducción al español:
* Competencia elemental
* Competencia limitada de trabajo
* Competencia profesional de trabajo
* Competencia profesional plena
* Competencia nativa o bilingüe
Solo la primera palabra va en mayúscula.
## Composición tipográfica
### Puntuación
El español presenta diferencias notables con respecto al inglés:
* **Comillas y signos**: en inglés, puntos y comas suelen ir dentro de las
comillas; en español normalmente van fuera.
* **Signos invertidos**: el español utiliza `¿` y `¡` al inicio y fin de
oraciones interrogativas y exclamativas; el inglés no.
* **Coma serial**: el inglés frecuentemente usa la coma antes de "and" en
listados; el español no emplea coma antes de "y".
* **Formato numérico**: en inglés el separador decimal es el punto (3.14); en
español es la coma (3,14).
## Traducciones
YAMLResume adopta las siguientes traducciones de opciones y términos usados en
currículums en español.
### Grados académicos
| English | Spanish |
| ------------- | -------------------- |
| Middle School | Escuela secundaria |
| High School | Título de secundaria |
| Diploma | Diploma |
| Associate | Grado de asociado |
| Bachelor | Licenciatura |
| Master | Maestría |
| Doctor | Doctorado |
### Idiomas
| English | Spanish |
| ----------- | ----------- |
| Afrikaans | Afrikáans |
| Albanian | Albanés |
| Amharic | Amárico |
| Arabic | Árabe |
| Azerbaijani | Azerbaiyano |
| Belarusian | Bielorruso |
| Bengali | Bengalí |
| Bhojpuri | Bhojpuri |
| Bulgarian | Búlgaro |
| Burmese | Birmano |
| Cantonese | Cantonés |
| Catalan | Catalán |
| Chinese | Chino |
| Croatian | Croata |
| Czech | Checo |
| Danish | Danés |
| Dutch | Neerlandés |
| English | Inglés |
| Estonian | Estonio |
| Farsi | Persa |
| Filipino | Filipino |
| Finnish | Finés |
| French | Francés |
| German | Alemán |
| Greek | Griego |
| Gujarati | Gujarati |
| Hausa | Hausa |
| Hebrew | Hebreo |
| Hindi | Hindi |
| Hungarian | Húngaro |
| Icelandic | Islandés |
| Igbo | Igbo |
| Indonesian | Indonesio |
| Irish | Irlandés |
| Italian | Italiano |
| Japanese | Japonés |
| Javanese | Javanés |
| Kazakh | Kazajo |
| Khmer | Jemer |
| Korean | Coreano |
| Lahnda | Lahnda |
| Latvian | Letón |
| Lithuanian | Lituano |
| Malay | Malayo |
| Mandarin | Mandarín |
| Marathi | Marathi |
| Nepali | Nepalí |
| Norwegian | Noruego |
| Oromo | Oromo |
| Pashto | Pastún |
| Polish | Polaco |
| Portuguese | Portugués |
| Romanian | Rumano |
| Russian | Ruso |
| Serbian | Serbio |
| Shona | Shona |
| Sinhala | Cingalés |
| Slovak | Eslovaco |
| Slovene | Esloveno |
| Somali | Somalí |
| Spanish | Español |
| Sundanese | Sundanés |
| Swahili | Suajili |
| Swedish | Sueco |
| Tagalog | Tagalo |
| Tamil | Tamil |
| Telugu | Telugu |
| Thai | Tailandés |
| Turkish | Turco |
| Ukrainian | Ucraniano |
| Urdu | Urdu |
| Uzbek | Uzbeko |
| Vietnamese | Vietnamita |
| Yoruba | Yoruba |
| Zulu | Zulú |
### Niveles de fluidez
| English | Spanish |
| -------------------------------- | ---------------------------------- |
| Elementary Proficiency | Competencia elemental |
| Limited Working Proficiency | Competencia limitada de trabajo |
| Minimum Professional Proficiency | Competencia profesional de trabajo |
| Full Professional Proficiency | Competencia profesional plena |
| Native or Bilingual Proficiency | Competencia nativa o bilingüe |
### Ubicación (países y regiones)
| English | Spanish |
| ------------------------------------ | -------------------------------------------- |
| Afghanistan | Afganistán |
| Aland Islands | Islas Åland |
| Albania | Albania |
| Algeria | Argelia |
| American Samoa | Samoa Americana |
| Andorra | Andorra |
| Angola | Angola |
| Anguilla | Anguila |
| Antarctica | Antártida |
| Antigua And Barbuda | Antigua y Barbuda |
| Argentina | Argentina |
| Armenia | Armenia |
| Aruba | Aruba |
| Australia | Australia |
| Austria | Austria |
| Azerbaijan | Azerbaiyán |
| Bahrain | Baréin |
| Bangladesh | Bangladés |
| Barbados | Barbados |
| Belarus | Bielorrusia |
| Belgium | Bélgica |
| Belize | Belice |
| Benin | Benín |
| Bermuda | Bermudas |
| Bhutan | Bután |
| Bolivia | Bolivia |
| Bonaire, Sint Eustatius and Saba | Bonaire, San Eustaquio y Saba |
| Bosnia and Herzegovina | Bosnia y Herzegovina |
| Botswana | Botsuana |
| Bouvet Island | Isla Bouvet |
| Brazil | Brasil |
| British Indian Ocean Territory | Territorio Británico del Océano Índico |
| Brunei | Brunéi |
| Bulgaria | Bulgaria |
| Burkina Faso | Burkina Faso |
| Burundi | Burundi |
| Cambodia | Camboya |
| Cameroon | Camerún |
| Canada | Canadá |
| Cape Verde | Cabo Verde |
| Cayman Islands | Islas Caimán |
| Central African Republic | República Centroafricana |
| Chad | Chad |
| Chile | Chile |
| China | China |
| Christmas Island | Isla de Navidad |
| Cocos (Keeling) Islands | Islas Cocos |
| Colombia | Colombia |
| Comoros | Comoras |
| Congo | Congo |
| Cook Islands | Islas Cook |
| Costa Rica | Costa Rica |
| Cote D'Ivoire (Ivory Coast) | Costa de Marfil |
| Croatia | Croacia |
| Cuba | Cuba |
| Curaçao | Curazao |
| Cyprus | Chipre |
| Czech Republic | República Checa |
| Democratic Republic of the Congo | República Democrática del Congo |
| Denmark | Dinamarca |
| Djibouti | Yibuti |
| Dominica | Dominica |
| Dominican Republic | República Dominicana |
| East Timor | Timor Oriental |
| Ecuador | Ecuador |
| Egypt | Egipto |
| El Salvador | El Salvador |
| Equatorial Guinea | Guinea Ecuatorial |
| Eritrea | Eritrea |
| Estonia | Estonia |
| Ethiopia | Etiopía |
| Falkland Islands | Islas Malvinas |
| Faroe Islands | Islas Feroe |
| Fiji Islands | Fiyi |
| Finland | Finlandia |
| France | Francia |
| French Guiana | Guayana Francesa |
| French Polynesia | Polinesia Francesa |
| French Southern Territories | Tierras Australes y Antárticas Francesas |
| Gabon | Gabón |
| Gambia The | Gambia |
| Georgia | Georgia |
| Germany | Alemania |
| Ghana | Ghana |
| Gibraltar | Gibraltar |
| Greece | Grecia |
| Greenland | Groenlandia |
| Grenada | Granada |
| Guadeloupe | Guadalupe |
| Guam | Guam |
| Guatemala | Guatemala |
| Guernsey and Alderney | Guernsey y Alderney |
| Guinea | Guinea |
| Guinea-Bissau | Guinea-Bisáu |
| Guyana | Guyana |
| Haiti | Haití |
| Heard Island and McDonald Islands | Islas Heard y McDonald |
| Honduras | Honduras |
| Hong Kong S.A.R. | Hong Kong |
| Hungary | Hungría |
| Iceland | Islandia |
| India | India |
| Indonesia | Indonesia |
| Iran | Irán |
| Iraq | Irak |
| Ireland | Irlanda |
| Israel | Israel |
| Italy | Italia |
| Jamaica | Jamaica |
| Japan | Japón |
| Jersey | Jersey |
| Jordan | Jordania |
| Kazakhstan | Kazajistán |
| Kenya | Kenia |
| Kiribati | Kiribati |
| Kosovo | Kosovo |
| Kuwait | Kuwait |
| Kyrgyzstan | Kirguistán |
| Laos | Laos |
| Latvia | Letonia |
| Lebanon | Líbano |
| Lesotho | Lesoto |
| Liberia | Liberia |
| Libya | Libia |
| Liechtenstein | Liechtenstein |
| Lithuania | Lituania |
| Luxembourg | Luxemburgo |
| Macau S.A.R. | Macao |
| Madagascar | Madagascar |
| Malawi | Malaui |
| Malaysia | Malasia |
| Maldives | Maldivas |
| Mali | Malí |
| Malta | Malta |
| Man (Isle of) | Isla de Man |
| Marshall Islands | Islas Marshall |
| Martinique | Martinica |
| Mauritania | Mauritania |
| Mauritius | Mauricio |
| Mayotte | Mayotte |
| Mexico | México |
| Micronesia | Micronesia |
| Moldova | Moldavia |
| Monaco | Mónaco |
| Mongolia | Mongolia |
| Montenegro | Montenegro |
| Montserrat | Montserrat |
| Morocco | Marruecos |
| Mozambique | Mozambique |
| Myanmar | Myanmar |
| Namibia | Namibia |
| Nauru | Nauru |
| Nepal | Nepal |
| Netherlands | Países Bajos |
| New Caledonia | Nueva Caledonia |
| New Zealand | Nueva Zelanda |
| Nicaragua | Nicaragua |
| Niger | Níger |
| Nigeria | Nigeria |
| Niue | Niue |
| Norfolk Island | Isla Norfolk |
| North Korea | Corea del Norte |
| North Macedonia | Macedonia del Norte |
| Northern Mariana Islands | Islas Marianas del Norte |
| Norway | Noruega |
| Oman | Omán |
| Pakistan | Pakistán |
| Palau | Palaos |
| Palestinian Territory Occupied | Territorio Palestino Ocupado |
| Panama | Panamá |
| Papua new Guinea | Papúa Nueva Guinea |
| Paraguay | Paraguay |
| Peru | Perú |
| Philippines | Filipinas |
| Pitcairn Island | Islas Pitcairn |
| Poland | Polonia |
| Portugal | Portugal |
| Puerto Rico | Puerto Rico |
| Qatar | Catar |
| Reunion | Reunión |
| Romania | Rumania |
| Russia | Rusia |
| Rwanda | Ruanda |
| Saint Helena | Santa Elena |
| Saint Kitts And Nevis | San Cristóbal y Nieves |
| Saint Lucia | Santa Lucía |
| Saint Pierre and Miquelon | San Pedro y Miquelón |
| Saint Vincent And The Grenadines | San Vicente y las Granadinas |
| Saint-Barthelemy | San Bartolomé |
| Saint-Martin (French part) | San Martín (parte francesa) |
| Samoa | Samoa |
| San Marino | San Marino |
| Sao Tome and Principe | Santo Tomé y Príncipe |
| Saudi Arabia | Arabia Saudita |
| Senegal | Senegal |
| Serbia | Serbia |
| Seychelles | Seychelles |
| Sierra Leone | Sierra Leona |
| Singapore | Singapur |
| Sint Maarten (Dutch part) | San Martín (parte neerlandesa) |
| Slovakia | Eslovaquia |
| Slovenia | Eslovenia |
| Solomon Islands | Islas Salomón |
| Somalia | Somalia |
| South Africa | Sudáfrica |
| South Georgia | Georgia del Sur |
| South Korea | Corea del Sur |
| South Sudan | Sudán del Sur |
| Spain | España |
| Sri Lanka | Sri Lanka |
| Sudan | Sudán |
| Suriname | Surinam |
| Svalbard And Jan Mayen Islands | Svalbard y Jan Mayen |
| Swaziland | Suazilandia |
| Sweden | Suecia |
| Switzerland | Suiza |
| Syria | Siria |
| Taiwan | Taiwán |
| Tajikistan | Tayikistán |
| Tanzania | Tanzania |
| Thailand | Tailandia |
| The Bahamas | Bahamas |
| Togo | Togo |
| Tokelau | Tokelau |
| Tonga | Tonga |
| Trinidad And Tobago | Trinidad y Tobago |
| Tunisia | Túnez |
| Türkiye | Turquía |
| Turkmenistan | Turkmenistán |
| Turks And Caicos Islands | Islas Turcas y Caicos |
| Tuvalu | Tuvalu |
| Uganda | Uganda |
| Ukraine | Ucrania |
| United Arab Emirates | Emiratos Árabes Unidos |
| United Kingdom | Reino Unido |
| United States | Estados Unidos |
| United States Minor Outlying Islands | Islas Ultramarinas Menores de Estados Unidos |
| Uruguay | Uruguay |
| Uzbekistan | Uzbekistán |
| Vanuatu | Vanuatu |
| Vatican City State (Holy See) | Ciudad del Vaticano |
| Venezuela | Venezuela |
| Vietnam | Vietnam |
| Virgin Islands (British) | Islas Vírgenes Británicas |
| Virgin Islands (US) | Islas Vírgenes de los Estados Unidos |
| Wallis And Futuna Islands | Wallis y Futuna |
| Western Sahara | Sahara Occidental |
| Yemen | Yemen |
| Zambia | Zambia |
| Zimbabwe | Zimbabue |
### Nombres de secciones
| English | Spanish |
| ------------ | ------------------- |
| Awards | Premios |
| Basics | Información básica |
| Certificates | Certificados |
| Education | Educación |
| Interests | Intereses |
| Languages | Idiomas |
| Location | Ubicación |
| Profiles | Perfiles |
| Projects | Proyectos |
| Publications | Publicaciones |
| References | Referencias |
| Skills | Competencias |
| Volunteer | Voluntariado |
| Work | Experiencia laboral |
### Niveles de habilidad
| English | Spanish |
| ------------ | ------------ |
| Novice | Novato |
| Beginner | Principiante |
| Intermediate | Intermedio |
| Advanced | Avanzado |
| Expert | Experto |
| Master | Maestro |
### Opciones y términos
| English | Spanish |
| -------- | -------------- |
| Courses | Cursos |
| Keywords | Palabras clave |
| Score | Puntuación |
# Esquema
URL: (/es/docs/compiler/schema)
## Descripción General
Redactar currículums es un proceso largo, aburrido y tedioso. Las personas a
menudo necesitan pasar horas revisando detalles minuciosamente, pero aún ocurren
errores. Por ejemplo, puede haber un error tipográfico en grados de educación,
un formato de correo electrónico puede estar mal, un nombre de curso puede ser
demasiado corto, etc.
Junto con las [definiciones de tipos estáticos](/docs/compiler/types),
YAMLResume proporciona un esquema integrado que puede usarse para validaciones
en tiempo de ejecución. Este es el núcleo que hace de YAMLResume un **compilador
de currículums**—YAMLResume proporciona
**mensajes de advertencia/error estilo clang** que ayudan a detectar errores
\*potenciales en la
etapa temprana de redacción del currículum.
Por ejemplo, para el siguiente currículum:
```yml lineNumbers title="invalid-resume.yml"
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
---
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@pp # [!code highlight]
url: https//ppresume.com/gallery # [!code highlight]
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
region: California
city: S # [!code highlight]
country: United States
postalCode: "95814"
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
startDate: Sep 1, 2016
endDate:
courses:
- D # [!code highlight]
- Programming Language Concepts
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
layouts:
- engine: latex
typography:
fontSize: 13pt # [!code highlight]
```
`yamlresume validate` te dará una lista de errores potenciales, con información
posicional clara que ayuda a identificar la ubicación exacta del error, mientras
tanto, con la ayuda del
[yaml-language-server](https://github.com/redhat-developer/yaml-language-server),
puedes obtener una mejor experiencia de edición con
[autocompletado](/docs/compiler/schema/json#auto-completion), [documentos de
propiedad al pasar el cursor](/docs/compiler/schema/json#property-docs),
[validación de formato](/docs/compiler/schema/json#format-validation), y más.
Bajo el capó, YAMLResume adopta [Zod](https://zod.dev) para validar datos del
currículum en tiempo de ejecución. Zod es una biblioteca de validación de
esquemas con TypeScript primero que te permite definir esquemas para los datos
de tu currículum, que actúa como una red de seguridad robusta, asegurando que
los datos del currículum sean confiables, consistentes y listos para ser
renderizados en un PDF profesional.
La validación de esquema es una herramienta muy poderosa para asegurar la
corrección de los datos del currículum. Puede detectar errores a lo largo de
todo el ciclo de vida de la redacción del currículum, lo cual es muy útil para
evitar errores de bajo nivel desde el principio.
## Aprende Más
# JSON Schema
URL: (/es/docs/compiler/schema/json)
## Descripción General
YAMLResume proporciona un [JSON Schema](https://json-schema.org) oficial para
validar datos de currículum.
El JSON Schema oficial más reciente está alojado en:
[https://yamlresume.com/schema.json](https://yamlresume.com/schema.json). Sin
embargo, si quieres una versión reducida para tu IDE/editor, también puedes usar
la versión canary
[schema.json](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/schema/schema.json)
de nuestro repositorio de GitHub.
Mientras tanto, a medida que YAMLResume evoluciona, el JSON Schema oficial se
actualizará constantemente, por lo que también proporcionamos todas las
versiones archivadas del JSON Schema en:
`https://yamlresume.com/schemas//schema.json`.
Por ahora tenemos versiones archivadas para:
* [v0.11.0](/schemas/v0.11.0/schema.json)
* [v0.10.1](/schemas/v0.10.1/schema.json)
* [v0.10.0](/schemas/v0.10.0/schema.json)
* [v0.9.1](/schemas/v0.9.1/schema.json)
* [v0.8.1](/schemas/v0.8.1/schema.json)
* [v0.5.1](/schemas/v0.5.1/schema.json)
* [v0.6.0](/schemas/v0.6.0/schema.json)
* [v0.7.0](/schemas/v0.7.0/schema.json)
## ¿Qué es JSON Schema?
[JSON Schema](https://json-schema.org) es un formato basado en JSON para definir
la estructura de datos JSON. Es una herramienta poderosa para validar y
documentar datos JSON.
JSON Schema te permite especificar la estructura esperada, tipos y restricciones
de tus datos JSON. Con JSON Schema, puedes definir qué propiedades son
requeridas, qué tipos de valores están permitidos (como cadenas, números,
arreglos u objetos), e incluso establecer reglas para formatos de valores (como
direcciones de correo electrónico o URLs).
Al usar JSON Schema, los desarrolladores y herramientas pueden validar
automáticamente datos JSON para asegurar que coincidan con el formato esperado
antes del procesamiento. Esto ayuda a detectar errores temprano, mejora la
calidad de los datos, y habilita características como autocompletado y
documentación en línea en editores de código modernos.
JSON Schema es ampliamente soportado y puede usarse para archivos de
configuración, cargas útiles de API y, en el caso de YAMLResume, para validar
datos de currículum para asegurar consistencia y corrección.
## Beneficios
Integrar el JSON Schema de YAMLResume en tu IDE/editor al elaborar currículums
trae varios beneficios:
* **Autocompletado:** Cuando comienzas a escribir, tu IDE/editor sugerirá
propiedades y sus tipos esperados, ayudándote a redactar tu currículum más
rápido y con menos errores.
* **Validación de Formato:** Tu IDE/editor resaltará cualquier error de formato
(como fechas o URLs inválidas) mientras escribes, previniendo que envíes
información incorrecta.
* **Documentación de Propiedades:** Obtén documentación en línea para cada
propiedad, explicando su propósito, valores permitidos, y cualquier requisito
especial de formato.
### Autocompletado
Todos los [tipos enum](/es/docs/compiler/types#enum-types)
serán autocompletados al escribir. Puedes simplemente escribir las primeras
letras de la opción y el IDE/editor sugerirá una lista de opciones válidas,
luego puedes usar las teclas de flecha arriba/abajo para seleccionar la
correcta.
### Validación de Formato
Cada par clave-valor será validado en tiempo real contra el esquema predefinido.
Tu IDE/editor te advertirá con un mensaje de error preciso para ayudar a evitar
errores de bajo nivel como formato de correo electrónico incorrecto, opciones de
grado inválidas, errores tipográficos en niveles de fluidez del idioma, etc.
Y si falta una clave requerida, el mensaje de advertencia será escalado a su
objeto padre por defecto, para que puedas encontrar fácilmente la clave
faltante.
### Documentación de Propiedades
Por último, pero no menos importante, puedes obtener documentación en línea para
cada propiedad, explicando su propósito, valores permitidos y cualquier
requisito especial de formato. Puedes pasar el cursor sobre la clave de la
propiedad o el valor para ver la documentación.
## ¿Cómo usar JSON Schema?
Necesitas instalar
[yaml-language-server](https://github.com/redhat-developer/yaml-language-server)
para usar el JSON schema de YAMLResume para tus currículums. Dependiendo de tu
IDE/editor, puede que necesites instalar diferentes
[extensiones](https://github.com/redhat-developer/yaml-language-server?tab=readme-ov-file#clients).
Una vez instalado, necesitas agregar la siguiente línea en la parte superior de
tu archivo de currículum:
```
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
```
Entonces puedes disfrutar de las características de
[autocompletado](#autocompletado), [validación de
formato](#validación-de-formato), y [documentación de
propiedades](#documentación-de-propiedades) todas al alcance de tu mano.
## Ingeniería
Bajo el capó, el JSON schema de YAMLResume es generado con la ayuda de [Zod
v4](https://zod.dev/json-schema), que es una increíble biblioteca de validación
de esquemas con TypeScript primero.
Definimos el esquema en
[schema/resume.ts](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/schema/resume.ts),
y luego generamos el JSON schema en un [caso de
prueba](https://github.com/yamlresume/yamlresume/blob/99de/packages/core/src/schema/resume.test.ts#L272-L277).
¿No es esto genial?
# Esquema Zod
URL: (/es/docs/compiler/schema/zod)
YAMLResume adopta [zod](https://zod.dev) para validar los datos del currículum
en tiempo de ejecución.
Este documento describe todos los esquemas zod usados en YAMLResume. Si te
interesan los detalles de implementación, puedes encontrar el código fuente
[aquí](https://github.com/yamlresume/yamlresume/tree/main/packages/core/src/schema).
## Esquema Resume
Define la validación de la estructura global del currículum, incluyendo
validación de contenido y de layout.
| Prop | Tipo | Requerido |
| ---------- | --------------------------------- | --------- |
| `content` | [`ContentSchema`](#contentschema) | ✅ |
| `layouts?` | [`LayoutsSchema`](#layoutsschema) | ⬜️ |
| `locale?` | [`LocaleSchema`](#localeschema) | ⬜️ |
### ContentSchema
Define la estructura de validación para todo el contenido del currículum.
| Prop | Tipo | Requerido |
| --------------- | --------------------------------------------------- | --------- |
| `basics` | [`BasicsItemSchema`](#basicsitemschema) | ✅ |
| `education` | [`EducationItemSchema[]`](#educationitemschema) | ✅ |
| `awards?` | [`AwardItemSchema[]`](#awarditemschema) | ⬜️ |
| `certificates?` | [`CertificateItemSchema[]`](#certificateitemschema) | ⬜️ |
| `interests?` | [`InterestItemSchema[]`](#interestitemschema) | ⬜️ |
| `languages?` | [`LanguageItemSchema[]`](#languageitemschema) | ⬜️ |
| `location?` | [`LocationItemSchema`](#locationitemschema) | ⬜️ |
| `projects?` | [`ProjectItemSchema[]`](#projectitemschema) | ⬜️ |
| `profiles?` | [`ProfileItemSchema[]`](#profileitemschema) | ⬜️ |
| `publications?` | [`PublicationItemSchema[]`](#publicationitemschema) | ⬜️ |
| `references?` | [`ReferenceItemSchema[]`](#referenceitemschema) | ⬜️ |
| `skills?` | [`SkillItemSchema[]`](#skillitemschema) | ⬜️ |
| `volunteer?` | [`VolunteerItemSchema[]`](#volunteeritemschema) | ⬜️ |
| `work?` | [`WorkItemSchema[]`](#workitemschema) | ⬜️ |
#### AwardItemSchema
Valida un único premio, honor o reconocimiento recibido.
| Prop | Tipo | Requerido | Reglas de validación |
| ---------- | -------- | --------- | ------------------------------------- |
| `awarder` | `string` | ✅ | 2-128 caracteres |
| `title` | `string` | ✅ | 2-128 caracteres |
| `date?` | `string` | ⬜️ | ver [date schema](#date-schema) |
| `summary?` | `string` | ⬜️ | ver [summary schema](#summary-schema) |
#### BasicsItemSchema
Valida la información personal y de contacto principal.
| Prop | Tipo | Requerido | Reglas de validación |
| ----------- | -------- | --------- | ------------------------------------- |
| `name` | `string` | ✅ | 2-128 caracteres |
| `email?` | `string` | ⬜️ | ver [email schema](#email-schema) |
| `headline?` | `string` | ⬜️ | 2-128 caracteres |
| `phone?` | `string` | ⬜️ | ver [phone schema](#phone-schema) |
| `summary?` | `string` | ⬜️ | ver [summary schema](#summary-schema) |
| `url?` | `string` | ⬜️ | ver [url schema](#url-schema) |
#### CertificateItemSchema
Valida una certificación, credencial o calificación profesional.
| Prop | Tipo | Requerido | Reglas de validación |
| -------- | -------- | --------- | ------------------------------- |
| `issuer` | `string` | ✅ | 2-128 caracteres |
| `name` | `string` | ✅ | 2-128 caracteres |
| `date?` | `string` | ⬜️ | ver [date schema](#date-schema) |
| `url?` | `string` | ⬜️ | ver [url schema](#url-schema) |
#### EducationItemSchema
Valida una experiencia o programa educativo.
| Prop | Tipo | Requerido | Reglas de validación |
| ------------- | ------------------- | --------- | ----------------------------------------------- |
| `area` | `string` | ✅ | 2-64 caracteres |
| `degree` | [`Degree`](#degree) | ✅ | Debe estar en las [opciones de degree](#degree) |
| `institution` | `string` | ✅ | 2-128 caracteres |
| `startDate` | `string` | ✅ | ver [date schema](#date-schema) |
| `courses?` | `string[]` | ⬜️ | Cada ítem 2-128 caracteres |
| `endDate?` | `string` | ⬜️ | ver [date schema](#date-schema) |
| `summary?` | `string` | ⬜️ | ver [summary schema](#summary-schema) |
| `score?` | `string` | ⬜️ | 2-32 caracteres |
| `url?` | `string` | ⬜️ | ver [url schema](#url-schema) |
#### InterestItemSchema
Valida un interés, hobby o actividad personal.
| Prop | Tipo | Requerido | Reglas de validación |
| ----------- | ---------- | --------- | --------------------------------------- |
| `name` | `string` | ✅ | 2-128 caracteres |
| `keywords?` | `string[]` | ⬜️ | ver [keywords schema](#keywords-schema) |
#### LanguageItemSchema
Valida un ítem de competencia lingüística.
| Prop | Tipo | Requerido | Reglas de validación |
| ----------- | ----------------------- | --------- | ------------------------------------------- |
| `fluency` | [`Fluency`](#fluency) | ✅ | Debe estar en [fluency options](#fluency) |
| `language` | [`Language`](#language) | ✅ | Debe estar en [language options](#language) |
| `keywords?` | `string[]` | ⬜️ | Cada ítem 1-32 caracteres |
#### LocationItemSchema
Valida información de localización y dirección.
| Prop | Tipo | Requerido | Reglas de validación |
| ------------- | --------------------- | --------- | ----------------------------------------- |
| `city` | `string` | ✅ | 2-128 caracteres |
| `address?` | `string` | ⬜️ | 2-128 caracteres |
| `country?` | [`Country`](#country) | ⬜️ | Debe estar en [country options](#country) |
| `postalCode?` | `string` | ⬜️ | 2-128 caracteres |
| `region?` | `string` | ⬜️ | 2-128 caracteres |
#### ProfileItemSchema
Valida un perfil online o presencia en redes.
| Prop | Tipo | Requerido | Reglas de validación |
| ---------- | --------------------- | --------- | ----------------------------------------- |
| `network` | [`Network`](#network) | ✅ | Debe estar en [network options](#network) |
| `username` | `string` | ✅ | 2-128 caracteres |
| `url?` | `string` | ⬜️ | URL válida, máximo 256 caracteres |
#### ProjectItemSchema
Valida un proyecto, pieza de portfolio o trabajo técnico.
| Prop | Tipo | Requerido | Reglas de validación |
| -------------- | ---------- | --------- | ------------------------------------- |
| `name` | `string` | ✅ | 2-128 caracteres |
| `startDate` | `string` | ✅ | ver [date schema](#date-schema) |
| `summary` | `string` | ✅ | ver [summary schema](#summary-schema) |
| `description?` | `string` | ⬜️ | 4-128 caracteres |
| `endDate?` | `string` | ⬜️ | ver [date schema](#date-schema) |
| `keywords?` | `string[]` | ⬜️ | Cada ítem 1-32 caracteres |
| `url?` | `string` | ⬜️ | URL válida, máximo 256 caracteres |
#### PublicationItemSchema
Valida una publicación, trabajo de investigación o artículo académico.
| Prop | Tipo | Requerido | Reglas de validación |
| -------------- | -------- | --------- | ------------------------------------- |
| `name` | `string` | ✅ | 2-128 caracteres |
| `publisher` | `string` | ✅ | 2-128 caracteres |
| `releaseDate?` | `string` | ⬜️ | ver [date schema](#date-schema) |
| `summary?` | `string` | ⬜️ | ver [summary schema](#summary-schema) |
| `url?` | `string` | ⬜️ | URL válida, máximo 256 caracteres |
#### ReferenceItemSchema
Valida una referencia profesional o recomendación.
| Prop | Tipo | Requerido | Reglas de validación |
| --------------- | -------- | --------- | ------------------------------------- |
| `name` | `string` | ✅ | 2-128 caracteres |
| `summary` | `string` | ✅ | ver [summary schema](#summary-schema) |
| `email?` | `string` | ⬜️ | ver [email schema](#email-schema) |
| `phone?` | `string` | ⬜️ | Formato de teléfono válido |
| `relationship?` | `string` | ⬜️ | 2-128 caracteres |
#### SkillItemSchema
Valida una habilidad o capacidad técnica.
| Prop | Tipo | Requerido | Reglas de validación |
| ----------- | ----------------- | --------- | ------------------------------------- |
| `level` | [`Level`](#level) | ✅ | Debe estar en [level options](#level) |
| `name` | `string` | ✅ | 2-128 caracteres |
| `keywords?` | `string[]` | ⬜️ | Cada ítem 1-32 caracteres |
#### VolunteerItemSchema
Valida una experiencia de voluntariado o servicio comunitario.
| Prop | Tipo | Requerido | Reglas de validación |
| -------------- | -------- | --------- | ------------------------------------- |
| `organization` | `string` | ✅ | 2-128 caracteres |
| `position` | `string` | ✅ | 2-128 caracteres |
| `startDate` | `string` | ✅ | ver [date schema](#date-schema) |
| `summary` | `string` | ✅ | ver [summary schema](#summary-schema) |
| `endDate?` | `string` | ⬜️ | ver [date schema](#date-schema) |
| `url?` | `string` | ⬜️ | URL válida, máximo 256 caracteres |
#### WorkItemSchema
Valida una experiencia laboral o puesto.
| Prop | Tipo | Requerido | Reglas de validación |
| ----------- | ---------- | --------- | ------------------------------------- |
| `name` | `string` | ✅ | 2-128 caracteres |
| `position` | `string` | ✅ | 2-128 caracteres |
| `startDate` | `string` | ✅ | ver [date schema](#date-schema) |
| `summary` | `string` | ✅ | ver [summary schema](#summary-schema) |
| `endDate?` | `string` | ⬜️ | ver [date schema](#date-schema) |
| `keywords?` | `string[]` | ⬜️ | Cada ítem 1-32 caracteres |
| `url?` | `string` | ⬜️ | URL válida, máximo 256 caracteres |
### LocaleSchema
Valida la configuración regional para internacionalización y localización.
| Prop | Tipo | Requerido | Reglas de validación |
| ----------- | ----------------------------------- | --------- | ---------------------------------------------------------- |
| `language?` | [`LocaleLanguage`](#localelanguage) | ⬜️ | Debe estar en [opciones de idioma local](#locale-language) |
### LayoutsSchema
Define la configuración general de validación del layout.
| Prop | Tipo | Requerido | Reglas de validación |
| ----------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------- | ------------------------------- |
| `layouts[]` | [`HtmlLayoutSchema`](#htmllayoutschema) \| [`LatexLayoutSchema`](#latexlayoutschema) \| [`MarkdownLayoutSchema`](#markdownlayoutschema) | ⬜️ | Array de configuraciones layout |
#### Esquemas de Layout Comunes
##### MarginsSchema
Valida los márgenes de página.
| Prop | Tipo | Requerido | Reglas de validación |
| --------- | -------- | --------- | --------------------------------------------- |
| `top?` | `string` | ⬜️ | ver [margin size schema](#margin-size-schema) |
| `bottom?` | `string` | ⬜️ | ver [margin size schema](#margin-size-schema) |
| `left?` | `string` | ⬜️ | ver [margin size schema](#margin-size-schema) |
| `right?` | `string` | ⬜️ | ver [margin size schema](#margin-size-schema) |
##### SectionsSchema
Valida la configuración de personalización de secciones.
| Prop | Tipo | Requerido | Reglas de validación |
| ---------- | --------------------------- | --------- | ------------------------------------------------------------------- |
| `aliases?` | `Record` | ⬜️ | Claves deben ser IDs de sección válidos, valores strings (2-128 ch) |
| `order?` | `OrderableSectionID[]` | ⬜️ | Array de IDs de sección ordenables válidos |
#### HtmlLayoutSchema
Valida la configuración del layout HTML.
| Prop | Tipo | Requerido |
| ------------- | ----------------------------------------------- | --------- |
| `engine` | `'html'` | ✅ |
| `advanced?` | [`HtmlAdvancedSchema`](#htmladvancedschema) | ⬜️ |
| `sections?` | [`SectionsSchema`](#sectionsschema) | ⬜️ |
| `template?` | [`HtmlTemplateSchema`](#htmltemplateschema) | ⬜️ |
| `typography?` | [`HtmlTypographySchema`](#htmltypographyschema) | ⬜️ |
##### HtmlAdvancedSchema
Valida opciones de configuración avanzada de HTML.
| Prop | Tipo | Requerido | Reglas de validación |
| -------------- | --------- | --------- | -------------------- |
| `showIcons?` | `boolean` | ⬜️ | true/false |
| `title?` | `string` | ⬜️ | - |
| `footer?` | `string` | ⬜️ | - |
| `description?` | `string` | ⬜️ | - |
| `keywords?` | `string` | ⬜️ | - |
##### HtmlTemplateSchema
Valida la configuración de plantilla HTML.
| Prop | Tipo | Requerido | Reglas de validación |
| ---------- | ------------------------------- | --------- | ---------------------------------------------------------- |
| `template` | [`HtmlTemplate`](#htmltemplate) | ⬜️ | Debe ser una de las [opciones de plantilla](#htmltemplate) |
##### HtmlTypographySchema
Valida la configuración de tipografía HTML.
| Prop | Tipo | Requerido | Reglas de validación |
| ------------- | ------------------------------- | --------- | ----------------------------------------------------------------- |
| `fontFamily?` | `string` | ⬜️ | Una lista de familias de fuentes separada por comas. |
| `fontSize?` | [`HtmlFontSize`](#htmlfontsize) | ⬜️ | Debe ser una de las [opciones de tamaño de fuente](#htmlfontsize) |
#### LatexLayoutSchema
Valida la configuración del layout LaTeX.
| Prop | Tipo | Requerido | Reglas de validación |
| ------------- | ------------------------------------------------- | --------- | --------------------------------------------------- |
| `advanced?` | [`LatexAdvancedSchema`](#latexadvancedschema) | ⬜️ | Ver [esquema avanzado](#latexadvancedschema) |
| `engine` | `'latex'` | ✅ | Debe ser "latex" |
| `page?` | [`LatexPageSchema`](#latexpageschema) | ⬜️ | Ver [esquema de página](#latexpageschema) |
| `sections?` | [`SectionsSchema`](#sectionsschema) | ⬜️ | Ver [esquema de secciones](#sectionsschema) |
| `template?` | [`LatexTemplate`](#latextemplate) | ⬜️ | Debe estar en [opciones de plantilla](#template) |
| `typography?` | [`LatexTypographySchema`](#latextypographyschema) | ⬜️ | Ver [esquema de tipografía](#latextypographyschema) |
##### LatexAdvancedSchema
Valida opciones de configuración avanzada de LaTeX.
| Prop | Tipo | Requerido | Reglas de validación |
| ------------ | ------------------------------------ | --------- | -------------------------------------------------------------- |
| `fontspec?` | `{ numbers?: LatexFontspecNumbers }` | ⬜️ | Debe estar en [opciones de números fontspec](#fontspecnumbers) |
| `showIcons?` | `boolean` | ⬜️ | true/false |
##### LatexPageSchema
Valida opciones a nivel de página para la presentación.
| Prop | Tipo | Requerido | Reglas de validación |
| ------------------ | --------------------------------- | --------- | ------------------------------------------------------- |
| `margins?` | [`MarginsSchema`](#marginsschema) | ⬜️ | Ver [esquema de márgenes](#marginsschema) |
| `paperSize?` | [`PaperSize`](#papersize) | ⬜️ | Debe estar en [opciones de tamaño de papel](#papersize) |
| `showPageNumbers?` | `boolean` | ⬜️ | true/false |
##### LatexTypographySchema
Valida opciones tipográficas para el formato del documento.
| Prop | Tipo | Requerido | Reglas de validación |
| ------------- | ------------------------- | --------- | ------------------------------------------------------- |
| `fontSize?` | `string` | ⬜️ | Debe estar en [opciones de tamaño de fuente](#fontsize) |
| `fontFamily?` | `string` | ⬜️ | Una lista de familias de fuentes separada por comas. |
| `links?` | `{ underline?: boolean }` | ⬜️ | true/false |
#### MarkdownLayoutSchema
Valida la configuración del layout Markdown.
| Prop | Tipo | Requerido | Reglas de validación |
| ----------- | ----------------------------------- | --------- | ------------------------------------------- |
| `engine` | `'markdown'` | ✅ | Debe ser "markdown" |
| `sections?` | [`SectionsSchema`](#sectionsschema) | ⬜️ | Ver [esquema de secciones](#sectionsschema) |
## Enum Validation Schemas
### Country
Tipo unión que incluye todos los posibles países y regiones del mundo.
**Reglas de validación:**
* Debe ser una de las opciones de país predefinidas
* Ejemplos: `United States`, `China`, `United Kingdom`, `Germany`
### Degree
Tipo unión que incluye todos los posibles grados académicos.
**Reglas de validación:**
* Debe ser uno de: `Associate`, `Bachelor`, `Diploma`, `Doctor`, `High School`, `Master`, `Middle School`
### Fluency
Tipo unión que incluye todos los posibles niveles de competencia lingüística.
**Reglas de validación:**
* Debe ser uno de:
* `Elementary Proficiency`
* `Full Professional Proficiency`
* `Limited Working Proficiency`
* `Minimum Professional Proficiency`
* `Native or Bilingual Proficiency`
### Language
Tipo unión que incluye todos los idiomas soportados.
**Reglas de validación:**
* Debe ser una de las opciones de idioma predefinidas
* Ejemplos: `English`, `Chinese`, `Spanish`, `French`, `German`
### Level
Tipo unión que incluye todos los posibles niveles de dominio de habilidades.
**Reglas de validación:**
* Debe ser uno de: `Advanced`, `Beginner`, `Expert`, `Intermediate`, `Master`, `Novice`
### Network
Tipo unión que incluye todas las posibles opciones de redes sociales.
**Reglas de validación:**
* Must be one of the predefined network options
* Examples: `GitHub`, `LinkedIn`, `Twitter`, `Facebook`, `Instagram`
### HtmlFontSize
Tipo unión que incluye todas las posibles opciones de tamaño de fuente HTML.
**Reglas de validación:**
* Debe ser uno de: `10px`, `11px`, `12px`, `13px`, `14px`, `15px`, `16px`, `17px`, `18px`, `19px`, `20px`, `21px`, `22px`, `23px`, `24px`
* El motor HTML soporta tamaños de fuente de 10px a 24px
* `16px` es el tamaño de fuente por defecto
### HtmlTemplate
Tipo unión que incluye todas las posibles opciones de plantilla HTML.
**Reglas de validación:**
* Debe ser uno de: `calm`
* Ver también: [templates](/es/docs/layouts/html/templates)
### LatexTemplate
Tipo unión que incluye todas las posibles opciones de plantilla.
**Reglas de validación:**
* Debe ser uno de: `moderncv-banking`, `moderncv-casual`, `moderncv-classic`
* Ver también: [templates](/es/docs/layouts/latex/templates)
### LocaleLanguage
Tipo unión que incluye todos los posibles códigos de lenguaje local.
**Reglas de validación:**
* Debe ser uno de: `en`, `es`, `zh-hans`, `zh-hant-hk`, `zh-hant-tw`
* Ver también: [multi-languages](/es/docs/locale)
### LatexFontspecNumbers
Tipo unión que incluye todas las posibles opciones de números de fontspec de LaTeX.
**Reglas de validación:**
* Debe ser uno de:
* `Auto` - permite que el estilo se determine automáticamente según el
`LocaleLanguage` seleccionado (por defecto)
* `Lining` - cifras lining estándar (por defecto para idiomas CJK)
* `OldStyle` - cifras old style con alturas variables (por defecto para
idiomas latinos)
### LatexFontSize
Tipo unión que incluye todas las posibles opciones de tamaño de fuente.
**Reglas de validación:**
* Debe ser uno de: `10pt`, `11pt`, `12pt`
* `10pt` es el tamaño de fuente por defecto
### PaperSize
Tipo unión que incluye todas las posibles opciones de tamaño de papel LaTeX.
**Reglas de validación:**
* Debe ser uno de: `a4`, `letter`
# Motor HTML
URL: (/es/docs/layouts/html)
El motor HTML genera versiones HTML limpias y listas para la web de su
currículum. Esto es particularmente útil para incrustar su currículum en sitios
web, compartirlo en línea o crear un portafolio basado en la web.
## Configuración
Para usar el motor HTML, especifique `engine: html` en su configuración de
diseño.
```yaml
layouts:
- engine: html
template: calm
# ... otras opciones
```
## Secciones
La opción `sections` le permite personalizar los títulos de las secciones y su
orden. Para obtener más información, consulte la [documentación de
secciones](./sections).
```yml lineNumbers
layouts:
- engine: html
sections:
aliases:
work: "Experiencia Profesional"
education: "Educación"
skills: "Habilidades"
order:
- basics
- work
- education
```
## Plantillas
La opción `template` le permite elegir entre una variedad de plantillas. Cada
plantilla tiene un diseño y una disposición únicos. Puede encontrar una lista de
plantillas disponibles en la [documentación de plantillas](./html/templates).
```yml lineNumbers
layouts:
- engine: html
template: calm
```
## Tipografía
La opción `typography` le permite personalizar los estilos de fuente utilizados
en su currículum.
### Tamaño de fuente
La opción `fontSize` le permite establecer el tamaño de fuente base para el documento.
El motor HTML admite tamaños de fuente desde `14px` hasta `20px`.
### Familia de fuentes
La opción `fontFamily` le permite especificar una lista priorizada de nombres de familias
de fuentes y/o nombres genéricos de familias. Esto funciona exactamente como la
propiedad CSS `font-family`.
```yaml
layouts:
- engine: html
typography:
fontSize: 16px
fontFamily: "Merriweather, serif"
```
## Avanzado
La opción `advanced` le permite configurar ajustes avanzados para el motor HTML.
```yml lineNumbers
layouts:
- engine: html
advanced:
showIcons: true
# Título personalizado para el documento HTML.
title: "Mi Título de Currículum Personalizado"
# Pie de página personalizado para el documento HTML.
footer: "Generado por YAMLResume"
# Meta descripción para el documento HTML.
description: "Una breve descripción del currículum para SEO."
# Meta palabras clave para el documento HTML.
keywords: "currículum, cv, yamlresume"
```
# Motor LaTeX
URL: (/es/docs/layouts/latex)
El motor LaTeX es el motor central de YAMLResume, diseñado para producir currículums en PDF de alta calidad y aspecto profesional utilizando plantillas LaTeX.
## Configuración
Para usar el motor LaTeX, especifique `engine: latex` en su configuración de diseño.
```yaml
layouts:
- engine: latex
template: moderncv-banking
# ... otras opciones
```
## Página
La opción `page` le permite personalizar la configuración de la página, como el
tamaño del papel, los márgenes y si mostrar los números de página.
```yml lineNumbers
layouts:
- engine: latex
page:
showPageNumbers: true
# a4 o letter
paperSize: a4
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
```
## Secciones
La opción `sections` le permite personalizar los títulos de las secciones y su orden. Para obtener más información, consulte la [documentación de secciones](./sections).
```yml lineNumbers
layouts:
- engine: latex
sections:
aliases:
work: "Experiencia Profesional"
education: "Educación"
skills: "Habilidades"
order:
- basics
- work
- education
```
## Plantillas
La opción `template` le permite elegir entre una variedad de plantillas. Cada plantilla tiene un diseño y una disposición únicos. Puede encontrar una lista de plantillas disponibles en la [documentación de plantillas](./latex/templates).
```yml lineNumbers
layouts:
- engine: latex
template: moderncv-banking
```
## Tipografía
La opción `typography` le permite personalizar los estilos de fuente utilizados en su currículum.
### Tamaño de fuente
La opción `fontSize` le permite establecer el tamaño de fuente base para el documento.
El motor LaTeX solo admite `10pt`, `11pt` y `12pt`.
### Familia de fuentes
La opción `fontFamily` le permite especificar una lista priorizada de nombres de familias
de fuentes. Esto funciona de manera similar a la propiedad CSS `font-family`.
```yaml
layouts:
- engine: latex
typography:
fontSize: 11pt
fontFamily: "Merriweather, serif"
```
## Avanzado
La opción `advanced` le permite configurar ajustes avanzados para el motor
LaTeX.
```yml lineNumbers
layouts:
- engine: latex
advanced:
showIcons: true
fontspec:
numbers: Lining
```
# Motor Markdown
URL: (/es/docs/layouts/markdown)
El motor markdown genera una versión en Markdown plano de su currículum. Esto es
particularmente útil cuando necesita copiar y pegar el contenido de su currículum
en sistemas de seguimiento de candidatos (ATS) u otros formularios que no
admiten la carga de PDF.
## Configuración
Para usar el motor markdown, especifique `engine: markdown` en su configuración
de diseño.
```yml
layouts:
- engine: markdown
```
La salida de markdown se generará junto con su PDF (si también tiene un diseño
LaTeX configurado) o como un archivo independiente.
A diferencia del [diseño LaTeX](./latex), el diseño Markdown es un diseño simple
que no tiene configuraciones adicionales excepto por los [alias de
secciones](/docs/layouts/sections/aliases) y la [reordenación de
secciones](/docs/layouts/sections/reorder).
```yml lineNumbers title="resume.yml"
---
content:
# ...
locale:
language: en
layouts:
- engine: markdown
sections:
aliases:
work: Professional Experience
education: Academic Background
skills: Technical Skills
order:
- basics
- work
- education
- skills
```
Los `aliases` y `order` de las secciones se respetarán en la salida markdown
final.
# Alias
URL: (/es/docs/layouts/sections/aliases)
YAMLResume proporciona títulos predeterminados para [todas las secciones del
currículum excepto](#secciones-aliasables) `location` y `profiles`, que se
[traducen](docs/locale) automáticamente según el [idioma
local](/docs/layouts#locale) seleccionado. Sin embargo, es posible que desees
personalizar estos títulos para que se adapten mejor a tu perfil o industria. La
característica de `alias de sección` te permite sobrescribir los títulos de
sección predeterminados con tus propios nombres personalizados.
Por ejemplo, podrías preferir "Professional Experience" en lugar de "Work" para
la sección `work`, o "Technical Proficiencies" en lugar de "Skills" para la
sección `skills`.
## Cómo Usar
Puedes definir alias de sección dentro de la configuración `layouts.[].sections` de tu
archivo `resume.yml`. Agrega un objeto `sections` a tu layout, y dentro de él,
un mapa `aliases`.
Las claves en el mapa `aliases` son los IDs de sección estándar, y los valores
son los títulos personalizados que quieres usar.
## Ejemplo
Así es como puedes cambiar los títulos para las secciones `work`, `education` y
`skills`:
```yml lineNumbers title="resume.yml"
---
content:
# ...
layouts:
- engine: latex
sections:
aliases:
work: Professional Experience
education: Academic Background
skills: Technical Skills
```
Cuando construyas tu currículum con esta configuración, el PDF generado usará
"Professional Experience", "Academic Background" y "Technical Skills" como los
títulos para estas secciones, sobrescribiendo los nombres predeterminados o
específicos del idioma local.
Si no se proporciona un alias para una sección, YAMLResume recurrirá al título
predeterminado para el idioma local configurado.
## Secciones Aliasables
Puedes proporcionar alias para las siguientes secciones:
* `basics`
* `education`
* `work`
* `volunteer`
* `awards`
* `certificates`
* `publications`
* `skills`
* `languages`
* `interests`
* `references`
* `projects`
## Reglas y Restricciones
* Un alias debe tener entre 2 y 128 caracteres de longitud.
# Secciones
URL: (/es/docs/layouts/sections)
YAMLResume proporciona opciones flexibles para personalizar las secciones del
currículum. Puedes cambiar el título de cualquier sección y reordenar las
secciones para que se ajusten mejor a tu perfil profesional. Estas
personalizaciones se manejan dentro de la configuración `layouts.[].sections` en tu
archivo `resume.yml`.
```yml lineNumbers title="resume.yml"
---
content:
# ...
layouts:
- engine: latex
sections:
aliases:
work: "Professional Experience"
education: "Academic Background"
skills: "Technical Skills"
order:
- work
- education
- awards
- volunteer
```
## Aprende Más
# Reordenar
URL: (/es/docs/layouts/sections/reorder)
Por defecto, YAMLResume organiza las secciones en un orden estándar. Sin
embargo, puedes cambiar esto fácilmente proporcionando una lista `order`
personalizada. Esto te permite destacar tu información más importante primero.
## Cómo Usar
Por ejemplo, si quieres colocar tus secciones de "Skills" y "Projects" antes de
tu experiencia "Work", puedes definir el orden así:
```yml lineNumbers title="resume.yml"
---
content:
# ...
layouts:
- engine: latex
sections:
order:
- skills
- projects
- work
```
Cualquier sección incluida en la lista `order` aparecerá primero, en la
secuencia que hayas especificado. Las secciones no incluidas en la lista se
agregarán después, siguiendo su orden predeterminado.
## Ejemplos
### Priorizar Experiencia Laboral
```yml lineNumbers
layouts:
- engine: latex
sections:
order:
- work
- education
```
Resultado: la experiencia laboral aparece primero, seguida de educación, luego
todas las demás secciones en orden predeterminado.
### Destacar Habilidades e Idiomas
```yml lineNumbers
layouts:
- engine: latex
sections:
order:
- skills
- languages
- work
```
Resultado: habilidades e idiomas aparecen prominentemente en la parte superior,
seguidos de experiencia laboral, luego las secciones restantes.
### Enfoque Académico
```yml lineNumbers
layouts:
- engine: latex
sections:
order:
- education
- publications
- awards
- certificates
```
Resultado: las secciones académicas aparecen primero, seguidas de otras
secciones en orden predeterminado.
## Orden de Sección Predeterminado
Cuando no se especifica un orden personalizado, las secciones se renderizan en
este orden predeterminado:
1. `basics` (por defecto renderizado en la parte superior del currículum como una sección de resumen)
2. `education`
3. `work`
4. `languages`
5. `skills`
6. `awards`
7. `certificates`
8. `publications`
9. `references`
10. `projects`
11. `interests`
12. `volunteer`
## Detalles de Implementación
* **Prioridad**: Las secciones especificadas en `order` aparecen primero en la
secuencia especificada
* **Respaldo**: Las secciones restantes siguen en el orden predeterminado
* **Deduplicación**: Las secciones duplicadas en el arreglo order se deduplican
(se mantiene la primera ocurrencia)
* **Secciones Vacías**: Las secciones sin contenido se filtran automáticamente
* **Flexibilidad**: Los usuarios pueden especificar cualquier subconjunto de
secciones ordenables
## Secciones Ordenables
Las siguientes secciones pueden ser reordenadas:
* `basics`
* `education`
* `work`
* `volunteer`
* `awards`
* `certificates`
* `publications`
* `skills`
* `languages`
* `interests`
* `references`
* `projects`
# Calm
URL: (/es/docs/layouts/html/templates/calm)
## Implementación
Calm es una plantilla HTML limpia y moderna inspirada en la plantilla LaTeX
moderncv. Presenta un diseño minimalista con separación clara de secciones y un
diseño elegante optimizado para visualización web.
Internamente, la plantilla utiliza:
* **Reinicio CSS**: Una hoja de estilos de reinicio personalizada para
renderizado consistente entre navegadores
* **Tipografía**: Tamaños de fuente personalizables que van desde 14px hasta
20px
* **Diseño Responsivo**: Diseño limpio que se adapta a diferentes tamaños de
pantalla
* **HTML Semántico**: Estructura HTML5 adecuada para mejor accesibilidad y SEO
## Configuración
```yml lineNumbers title="resume.yml"
content:
# ...
layouts:
- engine: html
template: calm # [!code highlight]
typography:
fontSize: 16px
```
## Características
* **Diseño Limpio**: Diseño minimalista enfocado en la legibilidad del contenido
* **Tipografía Moderna**: Fuentes profesionales con tamaños personalizables
* **Listo para Web**: Puede incrustarse directamente en sitios web o compartirse
mediante URL
* **Apto para Impresión**: Optimizado para imprimir a PDF desde navegadores web
* **Secciones Personalizables**: Orden y nomenclatura flexible de secciones
## Vista Previa
La plantilla Calm proporciona una apariencia profesional adecuada para diversas
industrias y niveles de experiencia. Su diseño limpio garantiza que su contenido
sea el centro de atención mientras mantiene el atractivo visual.
# Plantillas
URL: (/es/docs/layouts/html/templates)
YAMLResume proporciona plantillas HTML listas para usar, puede listar todas las
plantillas con el comando `yamlresume templates list`.
```console
$ yamlresume templates list
| layouts.[].template | Engine | Template Name | Description |
| ------------------- | ------ | ---------------- | ------------------------------------------------- |
| moderncv-banking | latex | ModernCV Banking | ModernCV template with banking style |
| moderncv-casual | latex | ModernCV Casual | ModernCV template with casual style |
| moderncv-classic | latex | ModernCV Classic | ModernCV template with classic style |
| calm | html | Calm | Clean and minimalist design suitable for all professionals. |
| vscode | html | VS Code | Dark theme inspired by Visual Studio Code, tailored for developers. |
```
Por defecto, YAMLResume utiliza la plantilla [calm](./templates/calm) para la
salida HTML. Puede cambiar la plantilla configurando `layouts.[].template` en
su currículum YAML.
```yml lineNumbers title="resume.yml"
content:
# ...
layouts:
- engine: html
# ...
template: calm # [!code highlight]
# ...
```
Consulte las siguientes plantillas para obtener más detalles:
# VS Code
URL: (/es/docs/layouts/html/templates/vscode)
## Implementación
VS Code es un tema oscuro inspirado en el esquema de colores "Dark+" de Visual
Studio Code. Está diseñado específicamente para desarrolladores, ingenieros de
software y profesionales técnicos que desean que su currículum refleje su entorno
de codificación.
La plantilla adopta una estética de "Currículum como Código", tratando diferentes
partes de tu perfil como elementos de código:
* **Nombre**: Decorado como una `class` (ej., `class JohnDoe {`)
* **Encabezado**: Representado como un comentario de código (ej.,
`// Full Stack Engineer`)
* **Secciones**: Representadas como llamadas a funciones (ej., `experience()`)
* **Habilidades/Idiomas**: Estilizados como claves de propiedad de objeto (ej.,
`JavaScript: Expert`)
Bajo el capó, la plantilla utiliza:
* **Tipografía**: Utiliza una pila de fuentes monoespaciadas (`Consolas`,
`Monaco`, `Courier New`, `monospace`) para una sensación de IDE auténtica
* **Resaltado de Sintaxis**: Utiliza la paleta de colores oficial de VS Code
Dark+ para palabras clave, cadenas, clases y funciones
* **Sangría de Diseño**: Presenta guías de sangría vertical (borde izquierdo)
para representar visualmente el alcance de cada sección
## Configuración
```yml lineNumbers title="resume.yml"
content:
# ...
layouts:
- engine: html
template: vscode # [!code highlight]
typography:
fontSize: 16px
```
## Características
* **Centrado en el Desarrollador**: Perfecto para señalar competencia técnica y
pasión por la programación
* **Modo Oscuro por Defecto**: Tema oscuro de alto contraste, agradable a la
vista
* **Estructura Tipo Código**: Metáforas visuales únicas que hacen que los
currículums técnicos destaquen
* **Responsivo**: Totalmente adaptado para visualización tanto en escritorio
como en dispositivos móviles con semántica de código consistente
* **Estilo de Sintaxis**: Utiliza colores familiares de IDE para diferenciar
entre roles, fechas y descripciones
## Vista Previa
La plantilla VS Code ofrece un aspecto distintivo y moderno que conecta de
inmediato con reclutadores técnicos y gerentes de contratación. Transforma tu
historial profesional en un "archivo fuente" limpio, legible y visualmente
familiar.
# Plantillas
URL: (/es/docs/layouts/latex/templates)
YAMLResume proporciona varias plantillas listas para usar, puede listar todas las plantillas con el comando `yamlresume templates list`.
```console
$ yamlresume templates list
| `layouts.[].template` | `Engine` | `Template Name` | `Description` |
| --------------------- | -------- | ------------------ | -------------------------------------- |
| `moderncv-banking` | `latex` | `ModernCV Banking` | `ModernCV template with banking style` |
| `moderncv-casual` | `latex` | `ModernCV Casual` | `ModernCV template with casual style` |
| `moderncv-classic` | `latex` | `ModernCV Classic` | `ModernCV template with classic style` |
```
Por defecto, YAMLResume utiliza la plantilla [moderncv-banking](./moderncv-banking). Puede cambiar la plantilla configurando `layouts.[].template` en su currículum YAML.
```yml lineNumbers title="resume.yml"
content:
# ...
layouts:
- engine: latex
# ...
template: moderncv-classic # [!code highlight]
# ...
```
Consulte las siguientes plantillas para obtener más detalles:
# Moderncv Banking
URL: (/es/docs/layouts/latex/templates/moderncv-banking)
## Implementación
Moderncv banking es una plantilla de currículum moderna y limpia basada en
[xdanaux/moderncv](https://github.com/xdanaux/moderncv).
Bajo el capó, usamos el siguiente código para el preámbulo de LaTeX:
```latex lineNumbers
\documentclass[a4paper, serif, 11pt]{moderncv}
%% moderncv
% style and color
\moderncvstyle{banking}
\moderncvcolor{black}
% needed by moderncv for showing icons
\usepackage{fontawesome5}
```
Para el estilo moderncv banking, también adoptamos algunos procesamientos
especiales para puntuación con el fin de hacerlo funcionar con CJK.
Técnicamente hablando, el inglés y el chino tienen diferentes dos puntos. Los
dos puntos en inglés son `:`, con Unicode `U+003A`, mientras que los dos puntos
en chino son `:`, con Unicode `U+FF1A`. Entonces, cuando el idioma del
currículum es chino, adoptaríamos los dos puntos chinos para moderncv
sobrescribiendo algunas macros mágicas de LaTeX:
```latex lineNumbers
% renew moderncv command to adapt for CJK colon
\renewcommand*{\cvitem}[3][.25em]{%
\ifstrempty{#2}{}{\hintstyle{#2}<= &templateTranslations.punctuations.Colon =>}{#3}%
\par\addvspace{#1}}
\renewcommand*{\cvitemwithcomment}[4][.25em]{%
\savebox{\cvitemwithcommentmainbox}{\ifstrempty{#2}{}{\hintstyle{#2}<= &templateTranslations.punctuations.Colon =>}#3}%
\setlength{\cvitemwithcommentmainlength}{\widthof{\usebox{\cvitemwithcommentmainbox}}}%
\setlength{\cvitemwithcommentcommentlength}{\maincolumnwidth-\separatorcolumnwidth-\cvitemwithcommentmainlength}%
\begin{minipage}[t]{\cvitemwithcommentmainlength}\usebox{\cvitemwithcommentmainbox}\end{minipage}%
\hfill% fill of \separatorcolumnwidth
\begin{minipage}[t]{\cvitemwithcommentcommentlength}\raggedleft\small\itshape#4\end{minipage}%
\par\addvspace{#1}}
```
Consulta nuestro
[post](https://blog.ppresume.com/posts/multi-languagues-support#colon) del blog
para más detalles.
## Vista Previa
# Moderncv Casual
URL: (/es/docs/layouts/latex/templates/moderncv-casual)
## Implementación
Moderncv casual es una plantilla de currículum moderna y casual basada en
[xdanaux/moderncv](https://github.com/xdanaux/moderncv).
Bajo el capó, usamos el siguiente código para el preámbulo de LaTeX:
```latex lineNumbers
\documentclass[a4paper, serif, 11pt]{moderncv}
%% moderncv
% style and color
\moderncvstyle{casual}
\moderncvcolor{black}
% needed by moderncv for showing icons
\usepackage{fontawesome5}
```
## Vista Previa
# Moderncv Classic
URL: (/es/docs/layouts/latex/templates/moderncv-classic)
## Implementación
Moderncv classic es una plantilla de currículum moderna y clásica basada en
[xdanaux/moderncv](https://github.com/xdanaux/moderncv).
Bajo el capó, usamos el siguiente código para el preámbulo de LaTeX:
```latex lineNumbers
\documentclass[a4paper, serif, 11pt]{moderncv}
%% moderncv
% style and color
\moderncvstyle{classic}
\moderncvcolor{black}
% needed by moderncv for showing icons
\usepackage{fontawesome5}
```
## Vista Previa
# 1000 Stars
URL: (/en/blog/1000-stars)
YAMLResume just crossed a huge milestone: [1000 GitHub
stars](https://github.com/yamlresume/yamlresume/stargazers)—roughly half a year
after [open sourcing the project](/blog/introducing-yamlresume). Thank you for
every star, issue, discussion, contribution, and word-of-mouth share. It's a
small badge, but one that reflects real momentum for "resume as code", great
typesetting, and a developer-first workflow.
In June we celebrated [500 stars](/blog/500-stars), today we're back with 1000.
In between, YAMLResume matured significantly—especially across three releases
that many of you followed and adopted quickly:
[v0.5](/blog/yamlresume-compiler), [v0.6](/blog/section-customization), and
[v0.7](/blog/dev-mode). This post recaps the most important things we shipped,
then lays out a pragmatic roadmap for the next leg of the journey.
## Recap
### v0.5: The Resume Compiler you can trust
[v0.5](/blog/yamlresume-compiler) reframed YAMLResume not just as a formatter,
but as a compiler. That single conceptual shift—treating a resume YAML like
source code—unlocked correctness, consistency, and a brutally simple CLI
workflow.
Key ideas we shipped in v0.5:
* [Compiler architecture](/docs/compiler/architecture) and standard [data
model](/docs/compiler/schema): We formalized the resume structure so any
downstream renderer or template gets clean, predictable data. This reduced
footguns and improved template portability.
* Strong validation at two levels: [JSON Schema for editor
integration](/docs/compiler/schema/json) (auto-completion, hover docs, early
format checks) and [Zod for runtime safety and detailed
diagnostics](/docs/compiler/schema/zod). Editors feel smart; builds feel safe.
* New commands that shorten loops: [`yamlresume validate`](/docs/cli#validate)
for quick checks, and improved `build` that always validates first. With the
`--no-validate` opt-out, you stay in motion during big edits.
* [Clang-style error output](https://asciinema.org/a/728098): Clear errors tied
to filenames and lines save minutes for every iteration.
v0.5 made YAMLResume a tool you can trust—even under deadlines. If
you haven't yet, skim the examples and videos in the v0.5 blog; they show the
validator, schema hints, and diagnostics in action.
### v0.6: Section customization that matches how you tell your story
[v0.6](/blog/section-customization) focused on something deceptively simple but
incredibly powerful: expressing your narrative in your own voice and order,
without forking templates or hacking LaTeX.
What shipped:
* [Section aliases](/docs/layouts/sections/aliases): Rename canonical sections
(e.g., turn `work` into "Professional Experience," `education` into "Academic
Background") using `layout.sections.aliases`. This is especially useful for
tone, region/culture, or role targeting.
* [Section reordering](/docs/layouts/sections/reorder): Bring the most relevant
sections to the top with `layout.sections.order`. Put `skills` ahead of `work`,
or surface `projects` first for portfolio-heavy roles.
* Practical resilience: Improvements like tolerating invalid dates (falling back
to strings)
Why it matters:
* Hiring contexts differ. A PhD applying to a postdoc wants `education` first; a
staff engineer wants `work` first. v0.6 puts that choice one YAML edit away.
* Language and tone shape perception. Aliasing lets you match industry norms
("Experience," "Selected Publications," "Open Source") without template surgery.
In short: v0.6 made YAMLResume adaptable to your narrative, not the other way around.
### v0.7: Dev mode, because resumes deserve modern DX too
[v0.7](/blog/dev-mode) shipped a watch-mode development flow that feels like hot
reloading for resumes. Save your YAML, and the PDF rebuilds automatically. Small
changes stop costing big context switches.
What shipped:
* [`yamlresume dev`](/docs/cli#dev): A persistent process that watches your
resume file and rebuilds on save. Pair it with a side-by-side PDF viewer for
instant feedback.
* Robust watch internals: We adopted
[chokidar](https://github.com/paulmillr/chokidar) and added [coalescing
logic](https://github.com/yamlresume/coalescifn) so we never storm builds on
quick successive saves. Only one build at a time; the latest state always wins.
* Practical flags in dev: `--no-pdf` when you only need `.tex` for debugging,
`--no-validate` during large refactors when speed matters most.
Why it matters:
* You iterate faster and write better.
* The tool takes the tedium, you keep the flow. That's the whole point of DX.
If you're used to `npm run dev`, you'll feel right at home.
### YAMLResume with Homebrew
Last but not least, YAMLResume is now available on [Homebrew](https://brew.sh):
```sh
brew install yamlresume
```
We've published a new blog post to explain how to use it in detail: [YAMLResume
Lands in Homebrew](/blog/yamlresume-homebrew).
## Looking ahead
YAMLResume has come a long way from the tiny core engine of
[PPResume](https://ppresume.com) to a powerful resume compiler today. But we
still have lots of work to do to further enhance YAMLResume's capabilities and
make it the ideal tool for resume crafting.
### Multiple layouts
Right now YAMLResume only supports LaTeX output. We're going to extend the
compiler-to-renderer pipeline to support multiple layout engines and output
formats, starting with Markdown, then HTML.
Here are the features we're going to ship:
* [Markdown output](https://github.com/yamlresume/yamlresume/issues/110): A
clean, structured Markdown artifact that mirrors your resume's sections and
content. Useful for READMEs, job portals that accept Markdown, or handoffs to
other resume builders that accept markdown.
* [HTML output](https://github.com/yamlresume/yamlresume/issues/45): HTML is the
most popular output format for web resumes. The day YAMLResume supports HTML
output, you can host your resume anywhere, share it with anyone and open it on
any device.
One data model, many outputs. The compiler's validation remains the spine;
renderers become plugins. You pick the output(s) per audience: PDF for formal
submissions, HTML for web presence, Markdown for dev-facing channels.
### GitHub Actions
Some people adopted YAMLResume to [build and host their resumes on
GitHub](https://github.com/yamlresume/yamlresume/discussions/50), each of them
has their own workflow to generate PDF though.
We're going to ship an official GitHub YAMLResume action so that people can
validate, build, host and publish their resume, without having to write their
own workflow.
With a dedicated GitHub Action, updates become push-and-done.
### More languages
YAMLResume v0.7 already supports
[English](/docs/locale/english),
[Chinese](/docs/locale/chinese),
[Norwegian](/docs/locale/norwegian) and
[Spanish](/docs/locale/spanish), we are going to expand the
list to support more languages, making YAMLResume even more accessible to more
people around the world.
French, German, Japanese will be the first batch of languages we're going to
support in the next few months.
## Regards
1000 stars is not an end but another start. It came from your early adoption,
bug reports, language contributions, and thoughtful requests that shaped the
roadmap. Thank you for your support and contributions.
Here's how to keep momentum going:
* Try the latest CLI: `npm install -g yamlresume@latest` or `brew install
yamlresume` on macOS.
* Use dev mode for your next edit loop: `yamlresume dev my-resume.yml`.
* File issues and ideas: [https://github.com/yamlresume/yamlresume/issues](https://github.com/yamlresume/yamlresume/issues)
* Join discussions: [https://github.com/yamlresume/yamlresume/discussions](https://github.com/yamlresume/yamlresume/discussions)
We'll keep shipping pragmatic features that make resume writing calmer, faster,
and better-looking—while staying true to a single, validated source of truth.
Onward to the next milestone.
# 500 Stars
URL: (/en/blog/500-stars)
YAMLResume has achieved a significant milestone—500 stars on GitHub in just
about a month.
Here is the timeline:
* Mar 29: Decided to open source the engine behind
[PPResume](https://ppresume.com)
* Apr 2: Got a local [CLI
demo](https://x.com/xiaohanyu1988/status/1907427362259771748)
* Apr 10: Achieved [100% test
coverage](https://x.com/xiaohanyu1988/status/1910193021989368311)
* Apr 25: Got a [local npm
package](https://x.com/PPResumeX/status/1915789536610967741)
* May 8: Officially [open sourced
yamlresume](https://x.com/PPResumeX/status/1920294577497387493)
* May 17: Reached [200
stars](https://x.com/PPResumeX/status/1923635538046955662)
* May 23: Reached [300
stars](https://x.com/PPResumeX/status/1925834873723396131)
* May 30: Reached [400
stars](https://x.com/PPResumeX/status/1928347464693862635)
* Jun 11: Reached [500
stars](https://x.com/PPResumeX/status/1932716523401150840)
In the meantime, we received our first [pull
request](https://github.com/yamlresume/yamlresume/pull/2), merged [another pull
request](https://github.com/yamlresume/yamlresume/pull/19), and addressed our
first [bug report](https://github.com/yamlresume/yamlresume/issues/13). Special
thanks to [@jizusun](https://github.com/jizusun),
[@koo6666](https://github.com/koo6666), and
[@luyuhuang](https://github.com/luyuhuang) for your kind contributions!
## Why Open Source?
The first line of code for YAMLResume was actually written in 2023. It began as
the core typesetting engine for [PPResume](https://ppresume.com)—a
[LaTeX](https://www.latex-project.org/)-based, commercial, pixel-perfect resume
builder that has already helped thousands of people create beautifully typeset
resumes.
While I am not ready to open source PPResume itself, I do want to give users
full control over their resumes. In December 2024, PPResume enabled users to
download the generated LaTeX code for their resumes, ensuring our [no vendor
lock-in](https://blog.ppresume.com/posts/no-vendor-lock-in) promise and giving
users complete ownership of their data.
Moreover, the development of PPResume has greatly benefited from the open source
community. I have learned a lot from it myself, and now it is time to give back.
There are very few open source tools that use YAML as a resume format. [JSON
Resume](https://jsonresume.org) is a good try—as we all know, YAML is a superset
of JSON. However, JSON Resume does not provide an opinionated solution for
resume typesetting, layout, or output, making it far less practical. YAML, on
the other hand, is a [much better choice than
JSON](/docs/comparisons#json-resume) for resume formatting.
Open sourcing YAMLResume was clearly the right decision. Check out the download
trends for YAMLResume on NPM:
## What's Next?
Although YAMLResume has been used by a commercial resume builder for almost two
years, it is still in the early stages of development, and there is much more to
be done.
[Docker support](./yamlresume-docker) was one of the most requested features,
and I am pleased to say it is now [available](/docs/installation#docker-users).
Another important feature is data validation. Unlike PPResume, which provides a
carefully crafted and designed form for users to fill out and validate their
resume data, YAMLResume accepts unconstrained input—any `.yaml` file. We must
provide a way to [validate
input](https://github.com/yamlresume/yamlresume/issues/10) to ensure the program
handles all forms of input gracefully.
Feature-wise, we plan to support [section
aliases](https://github.com/yamlresume/yamlresume/issues/11) and [section
reordering](https://github.com/yamlresume/yamlresume/issues/12), making the PDF
output more adaptable and flexible.
For developer experience, we aim to [support a `dev`
sub-command](https://github.com/yamlresume/yamlresume/issues/25) so users can
modify resumes and see PDF changes in near real time.
Finally, some users have raised concerns about ATS compatibility. We are
committed to ensuring that the PDF output is [ATS
compatible](https://github.com/yamlresume/yamlresume/issues/23).
Stay tuned!
# YAMLResume v0.7: Dev Mode
URL: (/en/blog/dev-mode)
I am super excited to introduce [YAMLResume
v0.7](https://github.com/yamlresume/yamlresume/releases/tag/v0.7.0), a release
focused on enhancing your developer experience (DX). The centerpiece of this
update is the new [`dev` mode](/docs/cli#dev)—a feature that brings a
seamless, real-time development workflow to your resume creation process.
Gone are the days of the tedious edit-save-build cycle. With `dev` mode,
YAMLResume now watches your resume file for changes and automatically rebuilds
the PDF in near real-time. This seemingly simple addition transforms the
experience of crafting a resume into a fluid, interactive, and much more
enjoyable process.
## The Friction of the Old Workflow
Before v0.7, creating a resume with YAMLResume, while powerful, involved a
repetitive, manual process. You would:
1. Open your `my-resume.yml` file in your favorite text editor.
2. Make a change—perhaps updating a job description or adding a new skill.
3. Save the file.
4. Switch to your terminal.
5. Run the `yamlresume build my-resume.yml` command.
6. Wait for the command to finish.
7. Switch to your PDF viewer and refresh it to see the result.
8. Notice a small typo or a formatting issue.
9. Repeat the entire cycle.
This loop, illustrated below, introduced significant friction into the resume
creation process. Each change, no matter how small, required a context switch
and a manual command execution. This constant interruption breaks the creative
flow and slows down the process of refining your resume.
B{Save File};
B --> C[Switch to Terminal];
C --> D[Run 'yamlresume build'];
D --> E{Wait for Build};
E --> F[Switch to PDF Viewer];
F --> G{Refresh PDF};
G --> H{Review Changes};
H -- Correction Needed --> A;
H -- Looks Good --> I[Done];
subgraph Manual Build Cycle
A
B
C
D
E
F
G
H
end
`}
/>
In the world of modern software development, we've become accustomed to tools
that provide instant feedback. Web developers have
[hot-reloading](https://webpack.js.org/concepts/hot-module-replacement/), which
updates the browser automatically as they change the code. This tight feedback
loop is crucial for productivity and is a core tenet of a great developer
experience. We believed that crafting your resume as code should be no
different.
## The Solution: A Seamless Dev Mode
The `yamlresume dev` command eliminates the manual build cycle entirely. You
start it once, and it works quietly in the background, watching for your
changes and rebuilds the resume automatically.
To start the development mode, simply run:
```bash
yamlresume dev my-resume.yml
```
Now, you can open your `my-resume.yml` file and your PDF side-by-side. Every
time you save a change to your YAML file, YAMLResume will automatically detect
it and trigger a rebuild. Your PDF viewer will update moments later, showing you
the latest version of your resume.
The new workflow is significantly simpler and more efficient:
B[Edit my-resume.yml];
B --> C{Save File};
C --> D{PDF Automatically Rebuilt};
D --> E{Review Changes in PDF};
E -- Correction Needed --> B;
E -- Looks Good --> F[Stop Dev Mode];
subgraph Real-Time Workflow
B
C
D
E
end
`}
/>
This instant feedback loop allows you to iterate quickly, experiment with
different phrasing, and perfect the layout of your resume without the constant
context switching. It makes the process feel less like a chore and more like a
creative endeavor.
Here is a live demo of the `dev` mode in action:
You can watch the [youtube demo](https://youtu.be/xytlzedEQ_w) for more details.
## How It Works: A Look Under the Hood
While the `dev` mode is simple to use, there's some interesting technology
working behind the scenes to ensure it's both robust and efficient.
### The File Watcher: `chokidar`
At the heart of the `dev` mode is a file watcher. A naive approach would be to
use Node.js's built-in [`fs.watch`
API](https://nodejs.org/docs/latest/api/fs.html#fswatchfilename-options-listener).
However, `fs.watch` has known limitations and inconsistencies across different
operating systems. More importantly, it struggles with certain text editor
behaviors.
For example, editors like Vim use an "atomic save" strategy. When you save a
file, Vim doesn't directly write to the original file. Instead, it writes the
changes to a temporary file (the well-known `.swp` file), then renames that
temporary file to replace the original. This process can confuse basic file
watchers, which might miss the change entirely or trigger multiple events.
To provide a reliable experience, we adopted
**[chokidar](https://github.com/paulmillr/chokidar)**, a popular and
battle-tested file-watching library. Chokidar abstracts away the cross-platform
inconsistencies and is specifically designed to handle these tricky editor
behaviors gracefully. We've configured it to wait until a file has finished
writing before triggering a rebuild, ensuring that we don't try to build a
partially saved file.
### Preventing Build Storms: `coalescifn`
What happens if you save the file multiple times in quick succession? A simple
implementation might try to start a new build for every single save event. This
could lead to a "build storm," where multiple build processes are running
concurrently, consuming unnecessary system resources and potentially leading to
race conditions.
To solve this, we wrote and open sourced a clever little utility called
[coalescifn](https://github.com/yamlresume/coalescifn). This utility helps us
**coalesce** multiple calls into one. Here's how it works in the context of
`dev` mode:
1. When the first file change is detected, we immediately start a build.
2. If more changes are detected *while that build is running*, we don't start
new builds. We simply make a note that the file has changed again.
3. Once the initial build is complete, we check if any more changes occurred
during that time.
4. If there were subsequent changes, we run exactly *one* more build to ensure
the final PDF reflects the latest version of the file. If there were no new
changes, we do nothing and wait for the next save event.
This strategy ensures that there is only one build running at a time, and it
guarantees that the final build always uses the most recent version of your
resume file. It's an efficient approach that keeps the `dev` mode responsive and
light on system resources.
Here is a diagram illustrating the coalescing logic:
>Watcher: Save file (t=0s)
Watcher->>Coalesce: Trigger build
Coalesce->>Builder: Start Build #1
User->>Watcher: Save file (t=1s)
Watcher->>Coalesce: Trigger build (ignored, build in progress)
User->>Watcher: Save file (t=2s)
Watcher->>Coalesce: Trigger build (ignored, build in progress)
Builder-->>Coalesce: Finish Build #1 (t=3s)
Coalesce->>Builder: Start Build #2 (with latest file content)
Builder-->>Coalesce: Finish Build #2 (t=6s)
`}
/>
## Advanced Control
The `dev` command also comes with options to give you more control over the
build process, mirroring the flags available on the `build` command.
### Skipping PDF Generation
Sometimes, you might only want to inspect the intermediate LaTeX (`.tex`) file
that YAMLResume generates. This can be useful for debugging or for those who
want to manually tweak the LaTeX code. Generating the PDF is the most
time-consuming part of the build process. If you don't need it, you can tell
`dev` mode to skip it:
```bash
yamlresume dev my-resume.yml --no-pdf
```
With this flag, `dev` mode will still watch for changes and regenerate the
`.tex` file instantly, but it won't run the `xelatex` command. This makes the
rebuild process almost instantaneous.
### Disabling Validation
As of [v0.5](/blog/yamlresume-compiler), YAMLResume includes a powerful schema
validation step that catches potential errors in your resume during building.
While this is incredibly useful for ensuring correctness, there might be times
when you want to temporarily disable it. For example, you might be in the middle
of a large refactoring of your resume structure and don't want to be interrupted
by validation errors.
You can disable validation with the `--no-validate` flag:
```bash
yamlresume dev my-resume.yml --no-validate
```
This allows you to work more freely, with the understanding that you should
re-enable validation later to ensure your resume is well-formed.
## A New DX for "Resume as Code"
The introduction of `dev` mode is more than just a new feature; it's a step
towards fulfilling the true promise of "Resume as Code." It elevates the
experience from a static, command-line-driven process to a dynamic, interactive
one that feels much more like modern software development.
You might be used to `npm run build` and `npm run dev` in the past? YAMLResume
now has the same workflow built in.
By closing the feedback loop, we're making it easier and faster for you to
create beautiful, professional resumes. We believe this will encourage more
experimentation and allow you to focus on what truly matters: the content of
your resume and how it tells your professional story.
We invite you to update to YAMLResume v0.7 and experience the new `dev` mode for
yourself.
* **Install or update** to the latest version: `npm install -g yamlresume@latest`
* **Try it out** with your existing resume: `yamlresume dev my-resume.yml`
* **Join our community** on
[GitHub](https://github.com/yamlresume/yamlresume/discussions) to share your
feedback, ask questions, or contribute to the future of YAMLResume.
We're committed to building the best possible developer experience for resume
creation, and we can't wait to hear what you think of this new release!
# How to Hide Icons in moderncv
URL: (/en/blog/hide-moderncv-icons)
When you build a PDF resume with [LaTeX](https://www.latex-project.org/), small
visual details carry a lot of weight. The
[`moderncv`](https://ctan.org/pkg/moderncv) class adds icons next to contact
fields (phone, email, homepage, and so on), which is great for a polished look,
but not everyone wants icons in their header. Some people prefer a cleaner, more
minimal style, or need to match a corporate template that forbids pictograms.
This post explains what `moderncv` is, which icon library it relies on, how to
hide its icons, and how the LaTeX `\renewcommand` macro makes it all possible.
## 1. What is moderncv?
[`moderncv`](https://ctan.org/pkg/moderncv) is a LaTeX document class designed
specifically for CVs and resumes. It provides a consistent, professional layout
and a set of high-level macros to format common resume elements: name, title,
contact details, section headings, and entries for work and education. Compared
to a raw LaTeX document, `moderncv` gives you a purpose-built layout system with
a few style variants (such as `banking`, `classic`, or `casual`, etc.)
A typical `moderncv` header might look like this:
```latex
\name{}{Andy Dufresne}
\title{Software Engineer}
\phone[mobile]{+1 555 123 456}
\email{jane@example.com}
\homepage{https://example.com}
```
The class takes these commands and renders them in a neat header. By default,
`moderncv` also shows icons alongside each item, which can make contact info
easier to scan.
## 2. What is the icons lib used by moderncv?
`moderncv` ships with icon support through the
[`fontawesome5`](https://ctan.org/pkg/fontawesome5) package.
[Font Awesome](https://fontawesome.com/) is a popular icon set, and
`fontawesome5` exposes it to LaTeX with commands like `\faEnvelope`,
`\faMobileAlt`, and `\faGlobe`. In `moderncv`, those icons are wired into
“symbol” macros such as `\emailsymbol` and `\homepagesymbol`. When you call
`\email{...}` or `\homepage{...}`, the class prepends the corresponding symbol
macro, which in turn uses a Font Awesome glyph.
Because the icons are routed through these symbol macros, you can replace or
remove them without changing the actual contact content. This design is
important: the content and the decoration are separate, so you can opt into a
cleaner style with a few overrides.
## 3. How to hide icons in moderncv
The cleanest way to remove icons is to redefine the symbol macros to empty
strings. In LaTeX, `\renewcommand` lets you replace an existing macro with new
behavior. If you set each `moderncv` symbol macro to nothing, the labels remain,
but the icons disappear.
Here is the minimal snippet you can place in the preamble, after loading
`moderncv`:
```latex
% disable icons
\renewcommand*{\addresssymbol}{}
\renewcommand*{\mobilephonesymbol}{}
\renewcommand*{\fixedphonesymbol}{}
\renewcommand*{\faxphonesymbol}{}
\renewcommand*{\emailsymbol}{}
\renewcommand*{\homepagesymbol}{}
```
This mirrors the approach used in [YAMLResume](https://yamlresume.dev/)’s
`moderncv` renderer. In YAMLResume [v0.10](/blog/v0.10), the LaTeX preamble
[optionally
inserts](https://github.com/yamlresume/yamlresume/commit/b53f73d9b4b04bf04b90236ef01da56062f8ca1f)
exactly these `\renewcommand*` lines when a layout option under `advanced`
config named `showIcons` is set to `false`. That means the PDF output can toggle
icons without touching resume content.
Here the moderncv resume without icons:
If you are using YAMLResume, you can control this behavior via layout settings
and let the renderer inject those overrides automatically. If you are writing
raw LaTeX, you can copy the snippet into your preamble. Either way, the end
result is the same: your header keeps the text but loses the pictograms.
### Why this works
`moderncv` defines a set of macros for each icon. For example, `\emailsymbol` is
used to display the email icon. When you redefine that macro to `{}`, LaTeX
still expands it, but there’s nothing to print. You are not removing the email
itself; you are only overriding the decoration that precedes it.
### Extra tip: hiding social icons
If you are manually adding icons in custom fields (for example, using
`\faGithub` or `\faTwitter` in a custom line), you can also remove them by
simply not calling those commands. In YAMLResume’s renderer, this is handled by
checking a `showIcons` flag before inserting the Font Awesome glyphs for social
profiles. The pattern is the same: keep the `\href` content, but omit the icon
prefix.
## 4. What is the \renewcommand macro?
LaTeX uses macros to define how commands behave. The `\newcommand` macro creates
a new command, while `\renewcommand` redefines an existing one. Think of it as
“override this command with a new implementation.”
The syntax is:
```latex
\renewcommand{\commandname}{replacement}
```
The starred version `\renewcommand*` behaves similarly, but it tells LaTeX not
to allow a paragraph break in the replacement text. For short symbol macros like
`\emailsymbol`, the star makes little practical difference, but it is common in
class files and templates.
In `moderncv`, the icon macros are already defined, so you must use
`\renewcommand` rather than `\newcommand`. If you try to redefine an existing
macro with `\newcommand`, LaTeX will throw an error. That is why the patch uses:
```latex
\renewcommand*{\emailsymbol}{}
```
This line says: “Replace the existing definition of `\emailsymbol` with an empty
string.” The rest of the class keeps working, because `\email{...}` still
expands correctly; it just doesn’t prepend the icon anymore.
## Putting it all together
To summarize:
* `moderncv` is a LaTeX class for CVs and resumes with structured macros and
nice defaults.
* It uses the `fontawesome5` package for icons, exposed through symbol macros
like `\emailsymbol` and `\homepagesymbol`.
* You can hide icons by redefining those symbol macros to empty strings with
`\renewcommand*`.
* `\renewcommand` is the LaTeX mechanism for overriding existing macros safely.
If you want a minimal, text-only header, the override approach is the most
robust. It’s also future-proof: if you later switch to a new `moderncv` style or
add new contact fields, you can keep the same pattern by redefining the
corresponding symbol macros. And if you are using a renderer like YAMLResume, a
simple flag can toggle the entire block for you. And by the way, this
`advanced.showIcons` works for both [HTML](/docs/layouts/html) and
[LaTeX](/docs/layouts/latex) engine.
# YAMLResume v0.9: HTML Output
URL: (/en/blog/html-output)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
We're excited to announce the release of
[YAMLResume v0.9](https://github.com/yamlresume/yamlresume/releases/tag/v0.9.0),
introducing first-class support for [HTML output](/docs/layouts/html). Following
our [v0.8 release](/blog/markdown-output) that brought [Markdown
output](/docs/layouts/markdown), we're now taking another major step forward in
making your resume data truly versatile and web-native.
With v0.9, you can now compile your YAML resume directly into a standalone,
responsive HTML file—perfect for hosting on your personal website, GitHub Pages,
or any static hosting platform. No more converting PDFs or manually maintaining
separate web versions of your resume.
For now we only provide one template for HTML layout—the
[calm](/docs/layouts/html/templates/calm) template, which is inspired by the
moderncv LaTeX template. It features a minimalist design with clear section
separation and an elegant layout optimized for web viewing. Here is the preview:
A quick demo for how to use YAMLResume v0.9 to generate HTML resume:
[](https://asciinema.org/a/763505)
## Why HTML?
When we introduced the [multiple layouts architecture](/docs/layouts) in v0.8,
we envisioned a world where your single `resume.yml` could be rendered into any
format you need. We started with [LaTeX/PDF](/docs/layouts/latex) for
professional applications and [Markdown](/docs/layouts/markdown) for
interoperability and LLM workflows. Now, HTML completes the trinity of essential
resume formats.
HTML offers unique advantages:
**Web-Native**: HTML is the language of the web. Your resume becomes a first-class
citizen on the internet, not just a document you have to embed or convert.
**Responsive Design**: Unlike PDFs that require pinching and zooming on mobile
devices, HTML resumes adapt seamlessly to any screen size—from desktop monitors
to smartphones.
**SEO-Friendly**: Search engines can index your HTML resume, making your skills
and experience discoverable. This is impossible with PDF-only resumes.
**Interactive**: HTML enables clickable links, smooth scrolling, and other
interactive elements that enhance the user experience beyond static documents.
**Zero Dependencies**: The HTML output is a self-contained file with inline CSS.
Drop it anywhere—S3, Netlify, GitHub Pages—and it just works.
## Getting Started
If you have `yamlresume` installed (version 0.9.0 or higher), adding HTML output
to your resume is as simple as updating your layouts configuration.
### Step 1: Update Your Resume Configuration
Add the HTML layout to your `resume.yml`:
```yml lineNumbers
layouts:
- engine: latex
template: moderncv-banking
typography:
fontSize: 11pt
- engine: markdown
- engine: html #[! code highlight]
template: calm #[! code highlight]
typography: #[! code highlight]
fontSize: 16px #[! code highlight]
```
The HTML engine supports customizable [typography](/docs/layouts/html#typography)
with font sizes ranging from 14px to 20px. The default `calm` template is
inspired by the popular LaTeX `moderncv` package, providing a clean, professional
look.
### Step 2: Build Your Resume
Run the build command:
```console
$ yamlresume build my-resume.yml
✔ Generated resume tex file successfully: my-resume.tex
◐ Generating resume pdf file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume pdf file successfully: my-resume.pdf
✔ Generated resume markdown file successfully: my-resume.md
✔ Generated resume html file successfully: my-resume.html
```
That's it! You now have three output files from a single source of truth.
## The Calm Template
The initial release includes the `calm` template, a carefully designed layout
that balances professionalism with readability. The template features:
* **Clean Typography**: Optimized font sizes and line heights for both screen and
print.
* **Responsive Layout**: Automatically adapts from wide desktop screens to narrow
mobile displays.
* **Semantic HTML**: Uses proper HTML5 semantic elements for better accessibility
and SEO.
* **Print-Friendly**: While designed for the web, the template includes print
styles so it looks great when saved as PDF from the browser.
The design philosophy of the `calm` template mirrors the aesthetic of the LaTeX
`moderncv` templates—modern, uncluttered, and focused on content.
## HTML Layout Features
### Typography Customization
The HTML engine currently supports customization of font size:
```yml lineNumbers
layouts:
- engine: html
template: calm
typography:
fontSize: 16px # Range: 14px to 20px
```
Font size adjustments affect the entire document proportionally, maintaining
visual hierarchy and readability. We chose a range of 14px to 20px based on web
typography best practices—ensuring legibility without sacrificing design.
### Self-Contained Output
The generated HTML file is completely self-contained. All CSS styles are inlined,
meaning you don't need to worry about external stylesheets, CDN links, or missing
dependencies. Upload the single `.html` file anywhere and it will render
perfectly.
### Standards-Compliant
The HTML output follows modern web standards:
* Valid HTML5 markup
* CSS for styling and responsive design
* UTF-8 encoding for international character support
* Semantic elements (``, ``) for better structure
## Use Cases
### Personal Website
Host your resume as a `/resume` or `/cv` page on your personal domain. Since the
HTML file is static, it loads instantly and requires no backend infrastructure.
```console
$ yamlresume build resume.yml
$ cp resume.html ~/my-website/public/cv/index.html
$ git add . && git commit -m "Update CV"
$ git push
```
Your updated resume is now live.
### GitHub Pages
Combine YAMLResume with GitHub Actions to automatically publish your resume to
GitHub Pages whenever you update your `resume.yml`:
```yaml
name: Deploy Resume
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install YAMLResume
run: npm install -g yamlresume
- name: Build Resume
run: yamlresume build --no-pdf -o public resume.yml
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public
```
### Responsive Portfolio
Embed your resume directly into your portfolio. Since the HTML is
self-contained, you can even iframe it or extract the styles for deeper
integration.
### Quick Sharing
Email the HTML file or share it via Dropbox/Google Drive. Recipients can open it
in any browser without needing PDF readers or special software.
## Technical Architecture
The [HTML
renderer](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/renderer/html/renderer.ts)
is built with the same rigorous engineering standards as our LaTeX/Markdown
engine. Under the hood:
1. **Type-Safe Rendering**: The renderer is written in TypeScript with full type
safety through [Zod schemas](/docs/compiler/schema/zod).
2. **Template System**: Templates are modular and extensible. While we ship with
`calm` initially, the architecture supports multiple templates. Future
templates can be added easily.
3. **CSS Methodology**: We use a combination of CSS Reset (based on modern-normalize)
and scoped template styles to ensure consistent rendering across browsers.
4. **Escape Handling**: All content is [properly
HTML-escaped](https://github.com/yamlresume/yamlresume/blob/v0.9.1/packages/core/src/utils/string.ts#L34-L44)
to prevent injection vulnerabilities and ensure special characters render
correctly.
5. **Comprehensive Testing**: The HTML renderer includes over 1,000 lines of
[test
cases](https://github.com/yamlresume/yamlresume/blob/v0.9.1/packages/core/src/renderer/html/renderer.test.ts)
which achieves 100% test coverage and guarantees the renderer works as
expected.
## Comparison: LaTeX vs Markdown vs HTML
Let's see how the three engines compare:
| Feature | LaTeX (PDF) | Markdown | HTML |
| ----------------- | ---------------- | ------------------- | ----------- |
| **Use Case** | Job applications | AI/LLMs, content | Web hosting |
| **Formatting** | Pixel-perfect | Minimal | Responsive |
| **Portability** | Universal | Universal | Web-native |
| **Customization** | Extensive | Limited | Growing |
| **File Size** | \~50-200 KB | \~5-20 KB | \~20-50 KB |
| **Dependencies** | LaTeX toolchain | None | None |
| **Interactive** | No | No | Yes |
| **SEO** | No | When published | Yes |
| **Responsive** | No | Depends on renderer | Yes |
Each engine excels in its domain. The beauty of YAMLResume's architecture is that
you don't have to choose—generate all three from the same source file and use
each where it fits best.
## What's Next?
The v0.9 HTML engine has set a solid foundation, but we have ambitious plans for
future enhancements:
### More Templates
We'll be adding additional templates with different design aesthetics—minimalist,
creative, corporate, etc. Want to contribute a template? Check out our
[contribution guide](/docs/contributing).
### Extended Customization
Future releases will expand typography options to include font families, color
schemes, and spacing controls, giving you more control over the visual
presentation.
### Dark Mode
Built-in dark mode support using CSS variables and `prefers-color-scheme` media
queries.
### Accessibility Enhancements
While the current implementation uses semantic HTML, we plan to add comprehensive
ARIA labels and keyboard navigation support to make resumes accessible to all
users.
## Conclusion
YAMLResume v0.9 brings HTML layout support, completing the core output format
trilogy. Now, from a single `resume.yml` file, you can generate:
* A professional PDF via LaTeX for job applications
* A clean Markdown file for LLMs and content workflows
* A responsive HTML page for web hosting and online portfolios
This release reinforces our commitment to the "Resume as Code" philosophy: write
once, render anywhere. Your resume data remains the single source of truth, and
the outputs are just different views optimized for different contexts.
We invite you to upgrade to v0.9 and experience the flexibility of web-native
resumes:
```console
$ npm install -g yamlresume@latest
$ pnpm install -g yamlresume@latest
$ yarn global add yamlresume@latest
$ bun add -g yamlresume@latest
$ brew install yamlresume
```
Have feedback or ideas for new templates? Join the discussion on
[GitHub](https://github.com/yamlresume/yamlresume/discussions) or reach out on
[X/Twitter](https://x.com/xiaohanyu1988). We can't wait to see how you use HTML
layouts in your workflow!
# Introducing YAMLResume
URL: (/en/blog/introducing-yamlresume)
import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
Every developer needs a resume unless you are a world-famous professional.
Writing a resume may not be hard, but it is definitely not fun and tedious. Many
spend days crafting their resumes, chasing after a 100% typo-free, grammar
checked resumes with professional layout and typesetting.
[YAMLResume](https://yamlresume.dev) allows you to create and version control
your resumes using [YAML](https://yaml.org/) and generate professional looking
PDFs with beautiful typesetting in a breeze.
It started as the core typesetting engine for [PPResume](https://ppresume.com)—a
[LaTeX](https://www.latex-project.org/) based, commercial, pixel perfect resume
builder—which already helps thousands of people create beautifully typeset
resumes. Without too much hesitation, we decided to open source it so that
people can always have the right to say [no to vendor
lock-in](https://blog.ppresume.com/posts/no-vendor-lock-in).
## Quick Start
YAMLResume provides a [CLI tool](https://www.npmjs.com/package/yamlresume),
besides, it has a mandatory dependency on a typesetting engine in order to
generate PDF. In other words, you should [install a typesetting
engine](/docs/installation#typesetting-engine) first if you want to generate
PDF.
Installing `yamlresume` CLI is a breeze. You can install it using your favourite
Node.js package manager:
<>
```console
npm install -g yamlresume
```
```console
pnpm add -g yamlresume
```
```console
yarn global add yamlresume
```
```console
bun add -g yamlresume
```
>
Verify `yamlresume` is installed successfully:
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build build a resume to LaTeX and PDF
languages i18n and l10n support
templates manage resume templates
help [command] display help for command
```
We also recommend that you install [Linux
Libertine](http://yamlresume.dev/docs/installation#linux-libertine) font in
order to get the best looking PDFs.
Last but not least, if you want to create a CJK resume, we also recommend that
you install [Google Noto fonts](https://fonts.google.com/noto/) for [best
unicode coverage](https://github.com/ppresume/community/issues/63).
### Create a New Resume
You can create a new resume with a one-liner:
```console
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
Under the hood `yamlresume new` would clone a sample resume from
[here](https://github.com/yamlresume/yamlresume/blob/main/packages/cli/resources/resume.yml).
Then you can get a PDF with a one-liner again:
```console
$ yamlresume build my-resume.yml
◐ Generating resume PDF with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume PDF successfully.
```
You are done! Check out the generated resume PDF:
You can check [PPResume Gallery](https://ppresume.com/gallery) for more examples
powered by YAMLResume as the typesetting engine.
### Troubleshooting
YAMLResume CLI provides a verbose flag `-v`/`--verbose` to show more detailed
logging information. If you have trouble building a resume, you can try to run
the commands again with this verbose flag and paste the output into [github
issues](https://github.com/yamlresume/yamlresume/issues), I will take a look and
get back to you.
## How Does It Work?
Under the hood, YAMLResume works like a mini compiler, i.e, it takes an input,
parses it to an [AST](https://en.wikipedia.org/wiki/Abstract_syntax_tree) and
then generates an output.
The core design principle of YAMLResume is [separation of
concerns](https://en.wikipedia.org/wiki/Separation_of_concerns). One of the most
famous examples that follows this principle is HTML & CSS, which are the
foundation of the modern web—HTML is used to organize the content in a webpage,
CSS is used to define the content presentation style.
Following the core principle, YAMLResume is designed based on the following
requirements:
* the resume content should be written in plain text, which is version control
friendly
* the plain text should use a fully structured format, which gives us more
control and flexibility
* YAML is better than JSON because it is more human-readable and human-writable
* the YAML plain text is then rendered into a PDF with a pluggable typesetting
engine
* an opinionated layout should be provided out of the box, while still allowing
people to adjust options accordingly like font sizes, page margins, etc.
## Why YAML?
[JSON Resume](https://jsonresume.org/) is another project that allows people to
create resumes in a structured format. However, most developers would agree that
YAML is better than JSON with regard to human readability and writability. For
example, it is quite inconvenient to represent multi-line strings in JSON, while
YAML has native support for it.
Compare a resume snippet in JSON and YAML:
```json
{
"content": {
"basics": {
"name": "Andy Dufresne",
"headline": "Headed for the Pacific",
"phone": "(213) 555-9876",
"email": "hi@ppresume.com",
"url": "https://ppresume.com/gallery",
"summary": "- Computer Science major with strong foundation in data structures, algorithms, and software development\n- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites\n- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)\n- Team player, with detail-oriented mindset and a keen eye for design and user experiences"
}
}
}
```
```yml lineNumbers
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@ppresume.com
url: https://ppresume.com/gallery
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
```
Which one is more readable and writable? The answer is obvious.
JSON Resume has no concern about the layout of the resume. In the real world,
you can't just send a JSON file to recruiters right? The structured resume
format needs to be converted to a human-readable document format like docx, PDF,
etc. YAMLResume offers an opinionated layout configuration, and guarantees
pixel perfect PDF output.
At the time of writing, YAMLResume's opinionated layout supports:
* locale languages
* English
* Simplified Chinese
* Traditional Chinese
* Spanish
* margins
* top
* left
* right
* bottom
* page numbers
* template
* typography
* font size
Here is a sample code snippet for layout configuration in YAMLResume:
```yml lineNumbers
layout:
locale:
language: en
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
page:
showPageNumbers: true
template: moderncv-banking
typography:
fontSize: 11pt
```
## Why Not Markdown?
[Markdown](https://en.wikipedia.org/wiki/Markdown) is a another popular choice
for writing resumes, there are also some resume builders that adopt markdown as
the main input format. However, markdown is a general-purpose markup language
for creating formatted text, while resumes only use a very limited set of
markdown features.
For example, the following markdown syntax are very unlikely to be used in a
resume:
* blockquote
* code block
* horizontal rules
* images
* tables
* html markup
* etc.
Second, markdown is far too flexible, often giving users more freedom than they
need to create a resume. It would be pretty hard to reliably parse a generic
markdown document as a resume.
Third, features like templates switching, precise layout control (like `\hfill`
and `\hspace` in LaTeX) is very hard to implement in markdown.
In conclusion, using a fully structured format such as YAML/JSON gives us more
control and reliability over formatting and layout for resumes.
## Why still LaTeX?
[LaTeX](https://www.latex-project.org/) is a very mature and stable typesetting
engine that can produce extremely high-quality PDFs. However, many LaTeX users,
even LaTeX enthusiasts, would agree that the LaTeX language is somewhat
outdated—its error messages are often quite confusing, and the reliance on
global variables often leads to conflicts between packages, the compilation
speed is slow for large documents and often quite complicated, and it produces
ugly intermediate files (`.aux`, `.log`, etc.).
Some suggest to replace LaTeX with [typst](https://github.com/typst/typst),
which is a modern typesetting engine, with much better DX and much faster
compilation. However, after careful evaluation, I decided to stick with LaTeX.
The deal breaker here is that, YAMLResume is designed to support multi languages
with the best possible typesetting quality, however, typst [CJK
support](https://blog.ppresume.com/posts/on-typesetting-engines#cjk-3) is still
unstable and lacking.
Later on I may add a new
[renderer](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/renderer/base.ts)
backend to support typst.
## Rich Text Support
Although we have decided not to use markdown as the resume input format, we do
support a limited set of markdown rich text syntax for the `summary` field in
various sections.
For now, we support the following markdown syntax:
* `**bold**`
* `*italic*`
* `[link](https://www.google.com)`
* ordered list
* unordered list
* nested list
* paragraphs
For example, this is a sample snippet for the `content.basics.summary` field:
```yml lineNumbers
---
content:
basics:
# ...
summary: |
This is a sample YAML resume that support limited set of markdown rich text syntax (bold, italics, links, lists):
- Computer Science major with **strong foundation** in data structures, *algorithms*, and software development
1. Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
2. Experiened in databases (SQL, NoSQL), familiar with server-side technologies ([Node.js](https://nodejs.org/en), Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
```
And this is the generated PDF:
You can see that the rich text syntax is rendered correctly with bold, italics,
links, lists, pretty solid, right?
## Roadmap
Overall the project is still in a very early stage, we have a long way to go.
I've already planned a list of features to do in the near future:
1. more languages, Japanese, Germany, French, etc
2. more templates
3. [section alias](https://github.com/yamlresume/yamlresume/issues/11)
4. [section reordering](https://github.com/yamlresume/yamlresume/issues/12)
5. [schema validation](https://github.com/yamlresume/yamlresume/issues/10)
For any trouble, you can:
* raise an [issue](https://github.com/yamlresume/yamlresume/issues/)
* open a [discussion](https://github.com/yamlresume/yamlresume/discussions)
* leave a [message](https://discord.gg/9SyT7mVV4K)
Stay tuned!
# YAMLResume v0.8: Markdown Output
URL: (/en/blog/markdown-output)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
We are thrilled to announce the release of
[YAMLResume v0.8](https://github.com/yamlresume/yamlresume/releases/tag/v0.8.0),
a significant milestone in our journey to make "Resume as Code" the standard for
developers and professionals worldwide.
Since its inception, YAMLResume has focused on one core mission: allowing you to
craft resumes in a clean, version-controlled YAML format and compile them into
beautifully typeset, pixel perfect PDFs. While PDF remains the gold standard for
job applications, we realized that our users often need their resume data in
other formats—for their personal websites, for pasting into applicant tracking
systems (ATS), or even for feeding into Large Language Models (LLMs) for
optimization.
With v0.8, we are introducing a powerful new architecture: [multiple
layouts](/docs/layouts), and with it, first-class support for [Markdown
output](/docs/layouts/markdown).
TL;DR, a quick demo:
[](https://asciinema.org/a/759578)
## YAMLResume with Layouts
In previous versions of YAMLResume, the compilation pipeline was linear and
singular. You provided a YAML file, and the engine spit out a PDF. If you wanted
a different [template](/docs/layouts/latex#templates), you changed the
`layout.template` field. If you wanted a different font size, you tweaked the
[typography](/docs/layouts/latex#typography) settings. But ultimately, the
destination was always a PDF file generated via the [LaTeX](/docs/layouts/latex)
engine.
This worked well, but it was limiting. What if you wanted to generate a PDF for
emailing recruiters, but also a plain text version for a legacy form? What if
you wanted a [Markdown](/docs/layouts/markdown) version to publish on your
[Hugo](https://gohugo.io/) or [Next.js](https://nextjs.org/) blog?
In v0.8, we've completely redesigned the [layouts
schema](/docs/compiler/schema/zod#layoutsschema) to support [multiple
layouts](/docs/layouts). Instead of a single set of output settings, you can now
define a list of layouts in your resume's YAML file. Each layout specifies an
`engine` (like `latex` or `markdown`) and its own specific configuration
options.
This means a single [`yamlresume build`](/docs/cli#build) command can now
produce multiple artifacts—a PDF, a Markdown file, and in the future, HTML or
docx files—simultaneously. This adheres to the "Source of Truth" principle: your
`resume.yml` remains the single source of truth, while the outputs are just
derived representations tailored for different delivery channels.
Here is how the new configuration looks in your YAML file:
```yml lineNumbers
# Multiple output layouts configuration
layouts:
- engine: latex
page:
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
showPageNumbers: true
template: moderncv-banking
typography:
fontSize: 11pt
- engine: markdown
```
As you can see, we have defined two layouts here. The first one uses the
[`latex`](/docs/layouts/latex) engine (our classic PDF generator) with specific template,
page margins and typography settings, etc. The second one uses the new
[`markdown`](/docs/layouts/markdown) engine. The beauty of this approach is that
you can add or remove layouts as needed without touching the actual content of
your resume.
## Markdown as the New Output
Why markdown? Markdown has become the lingua franca of the developer world. It
is lightweight, readable, and universally supported. By adding Markdown as an
output target, YAMLResume bridges the gap between a formal resume document and
the flexible, web-first world.
Let's see it in action. If you have `yamlresume` installed (version 0.8.0 or
higher), you can generate a new resume and build it with just two commands.
### Step 1: Create a New Resume
First, let's generate a boilerplate resume using the [CLI](/docs/cli):
```console
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
This creates a `my-resume.yml` file with the default configuration, which now
includes both [LaTeX](/docs/layouts/latex) and
[Markdown](/docs/layouts/markdown) layouts by default.
Here is the content of a sample resume file `my-resume.yml`—you can ignore the
`content` and take a look for the last line to see the
`markdown` layout configuration:
```yml lineNumbers
---
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@ppresume.com
url: https://ppresume.com/gallery
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
city: Sacramento
region: California
country: United States
postalCode: "95814"
profiles:
- network: Line
url: https://line.com/PPResumeX
username: PPResumeX
- network: Twitter
url: https://twitter.com/PPResumeX
username: PPResumeX
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
startDate: Sep 1, 2016
endDate: Jul 1, 2020
courses:
- Discrete Methods in Computer Science
- Programming Language Concepts
- Data Structures and Object-Oriented Design
- Operating Systems
- Computer Architecture
- Database Systems
- Computer Networking
- Introduction to the Theory of Computing
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
work:
- name: PPResume
url: https://ppresume.com
startDate: Dec 1, 2022
endDate:
position: Senior Software Engineer
summary: |
- Developed and implemented efficient and scalable code, ensuring high-quality and maintainable web applications
- Collaborated with cross-functional teams to gather project requirements and translate them into technical solutions
- Conducted thorough testing and debugging to identify and resolve any issues or bugs in the software
- Actively participated in code reviews, providing valuable feedback to improve code quality and adherence to best practices
- Mentored and guided junior developers, fostering a collaborative and growth-oriented team environment
keywords:
- Scalability
- Growth
- Quality
- Mentorship
- name: PPResume
url: https://ppresume.com
startDate: Sep 1, 2020
endDate: Dec 1, 2022
position: Software Engineer
summary: |
- Created reusable React components to ensure code efficiency and maintainability
- Integrated with RESTful APIs to fetch and display dynamic data on the frontend
- Implemented client-side routing using React Router for smooth navigation between pages
- Actively participated in Agile development methodologies, attending daily stand-up meetings and sprint planning sessions
keywords:
- RESTful
- React
- Agile
languages:
- language: English
fluency: Native or Bilingual Proficiency
keywords:
- TOEFL 110
- IELTS 7.5
- language: Chinese
fluency: Elementary Proficiency
keywords: []
skills:
- name: Web Development
level: Expert
keywords:
- Python
- Ruby
- CSS
- React
- JavaScript
- name: DevOps
level: Intermediate
keywords:
- Python
- Kubernetes
- Docker
- Shell
- Ansible
- name: Design
level: Intermediate
keywords:
- Sketch
- Figma
- Photoshop
awards:
- title: Dean's List
awarder: University of Southern California
date: Oct 2016
summary: |
Awarded to students who achieve a high academic standing by maintaining a specified grade point average (GPA) during a semester.
certificates:
- name: AWS Certified Developer - Associate
url: https://aws.amazon.com/certification/
issuer: AWS
date: Mar 2021
publications:
- publisher: ACM Transactions on Interactive Intelligent Systems
url: https://dl.acm.org/journal/tiis
name: Enhancing Human-Computer Interaction through Augmented Reality
releaseDate: Dec 2017
summary: |
- Explores the potential of augmented reality (AR) in improving interaction between humans and computers
- Highlights benefits of AR in various areas such as gaming, education, healthcare, and design
- Discusses challenges and future directions of AR technology in enhancing user experience
references:
- name: Dr. Amanda Reynolds
phone: "(555) 123-4567"
relationship: Computer Science Professor
email: amanda.reynolds@usc.edu
summary: |
Andy Dufresne shows exceptional problem-solving skills and a solid understanding of programming concepts, he would bring immense value to any team or organization he becomes a part of.
projects:
- name: EduWeb
url: https://www.eduweb.xyz/
description: A web-based educational platform for interactive learning
startDate: Sep 2016
endDate: Dec 2016
summary: |
- Designed to enhance online learning experiences
- Facilitates students' engagement and collaboration through interactive features and user-friendly interface
- Offers a wide range of courses across various subjects
- Aims to improve the way students learn through the power of the web
keywords:
- Education
- Online Learning
- HCI
interests:
- name: Sports
keywords:
- Soccer
- Swimming
- Bicycling
- Hiking
- name: Music
keywords:
- Piano
- Guitar
volunteer:
- organization: USC Computer Science and Engineering Society
url: https://www.usccsesociety.org/
position: Tech Mentor
startDate: Sep 2015
endDate: Jul 2023
summary: |
- Volunteered as a Tech Mentor at USC Computer Science and Engineering Society
- Provided guidance and assistance to fellow students in their technical projects and coursework
- Assisted in organizing workshops, coding competitions, and networking events for the society members
- Contributed to fostering a collaborative and supportive environment within the student community
locale:
language: en
layouts:
- engine: latex
page:
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
showPageNumbers: true
template: moderncv-banking
typography:
fontSize: 11pt
- engine: markdown #[!code highlight]
```
### Step 2: Build the Resume
Now, run the build command:
```console lineNumbers
$ yamlresume build my-resume.yml
✔ Generated resume tex file successfully: my-resume.tex
◐ Generating resume pdf file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume pdf file successfully: my-resume.pdf
✔ Generated resume markdown file successfully: my-resume.md
```
Notice the last line:
`✔ Generated resume markdown file successfully: my-resume.md`. The CLI has
automatically detected the [`markdown`](/docs/layouts/markdown) layout in your
YAML configuration and generated the corresponding `.md` file alongside the PDF.
### The Resulting Markdown
Let's look at the generated `my-resume.md`. The engine intelligently transforms
your structured YAML data into a clean, well-formatted Markdown document using
standard syntax headers, lists, and links.
```markdown lineNumbers
# Andy Dufresne
Headline: Headed for the Pacific
- Email: hi@ppresume.com
- Phone: (213) 555-9876
- URL: https://ppresume.com/gallery
Location: 123 Main Street, Sacramento, California, United States, 95814
Profiles:
- Line: [@PPResumeX](https://line.com/PPResumeX)
- Twitter: [@PPResumeX](https://twitter.com/PPResumeX)
## Basics
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
## Education
### University of Southern California
Bachelor, Computer Engineering and Computer Science, Score: 3.8, Sep 2016–Jul 2020
URL: https://www.cs.usc.edu/
Courses: Discrete Methods in Computer Science, Programming Language Concepts, Data Structures and Object-Oriented Design, Operating Systems, Computer Architecture, Database Systems, Computer Networking, Introduction to the Theory of Computing
Summary:
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
## Work
### Senior Software Engineer
PPResume, Dec 2022–Present
URL: https://ppresume.com
Keywords: Scalability, Growth, Quality, Mentorship
Summary:
- Developed and implemented efficient and scalable code, ensuring high-quality and maintainable web applications
- Collaborated with cross-functional teams to gather project requirements and translate them into technical solutions
- Conducted thorough testing and debugging to identify and resolve any issues or bugs in the software
- Actively participated in code reviews, providing valuable feedback to improve code quality and adherence to best practices
- Mentored and guided junior developers, fostering a collaborative and growth-oriented team environment
### Software Engineer
PPResume, Sep 2020–Dec 2022
URL: https://ppresume.com
Keywords: RESTful, React, Agile
Summary:
- Created reusable React components to ensure code efficiency and maintainability
- Integrated with RESTful APIs to fetch and display dynamic data on the frontend
- Implemented client-side routing using React Router for smooth navigation between pages
- Actively participated in Agile development methodologies, attending daily stand-up meetings and sprint planning sessions
## Languages
- English: Native or Bilingual Proficiency, Keywords: TOEFL 110, IELTS 7.5
- Chinese: Elementary Proficiency
## Skills
- Web Development: Expert, Keywords: Python, Ruby, CSS, React, JavaScript
- DevOps: Intermediate, Keywords: Python, Kubernetes, Docker, Shell, Ansible
- Design: Intermediate, Keywords: Sketch, Figma, Photoshop
## Awards
### Dean's List
University of Southern California, Oct 2016
Summary:
Awarded to students who achieve a high academic standing by maintaining a specified grade point average (GPA) during a semester.
## Certificates
### AWS Certified Developer - Associate
AWS, Mar 2021
URL: https://aws.amazon.com/certification/
## Publications
### Enhancing Human-Computer Interaction through Augmented Reality
ACM Transactions on Interactive Intelligent Systems, Dec 2017
URL: https://dl.acm.org/journal/tiis
Summary:
- Explores the potential of augmented reality (AR) in improving interaction between humans and computers
- Highlights benefits of AR in various areas such as gaming, education, healthcare, and design
- Discusses challenges and future directions of AR technology in enhancing user experience
## References
### Dr. Amanda Reynolds
Computer Science Professor, amanda.reynolds@usc.edu, (555) 123-4567
Summary:
Andy Dufresne shows exceptional problem-solving skills and a solid understanding of programming concepts, he would bring immense value to any team or organization he becomes a part of.
## Projects
### EduWeb
A web-based educational platform for interactive learning, Sep 2016–Dec 2016
URL: https://www.eduweb.xyz/
Keywords: Education, Online Learning, HCI
Summary:
- Designed to enhance online learning experiences
- Facilitates students' engagement and collaboration through interactive features and user-friendly interface
- Offers a wide range of courses across various subjects
- Aims to improve the way students learn through the power of the web
## Interests
- Sports: Soccer, Swimming, Bicycling, Hiking
- Music: Piano, Guitar
## Volunteer
### USC Computer Science and Engineering Society
Tech Mentor, Sep 2015–Jul 2023
URL: https://www.usccsesociety.org/
Summary:
- Volunteered as a Tech Mentor at USC Computer Science and Engineering Society
- Provided guidance and assistance to fellow students in their technical projects and coursework
- Assisted in organizing workshops, coding competitions, and networking events for the society members
- Contributed to fostering a collaborative and supportive environment within the student community
```
## Benefits of Markdown
You might be wondering, "I already have a nice PDF, why do I need a Markdown
version?" The benefits of having a structured, plain-text representation of your
resume are immense, especially in the modern AI-driven world.
### 1. LLM Friendly
This is perhaps the most significant advantage today. We are living in the era
of Large Language Models (LLMs). Tools like ChatGPT, Claude, and Gemini are
incredibly good at analyzing text, but they might have a hard time with binary
PDF files or complex LaTeX source code.
By generating a clean Markdown version of your resume, you have the perfect
input for an LLM. You can copy-paste your `resume.md` into ChatGPT and ask it
to:
* "Tailor my resume for this Job Description..."
* "Critique my summary section and suggest improvements..."
* "Extract my key skills and format them for a cover letter..."
Because Markdown is semantically structured (headers, lists, bold text), LLMs
can "understand" the hierarchy and content of your resume much better than they
can with raw text or PDF conversions.
### 2. Interoperability and Web Publishing
Markdown is the native content format for the web. If you have a personal
portfolio or blog built with Next.js, Hugo, Jekyll, or Gatsby, you can drop your
`resume.md` directly into your content folder.
With the new Markdown output, you can automate your personal branding workflow:
1. Update your `resume.yml` with your latest job or project.
2. Run `yamlresume build`.
3. The generated `resume.pdf` goes to your download link.
4. The generated `resume.md` updates your "About Me" page on your website.
No more manual copying and pasting or maintaining two separate versions of your
resume.
### 3. Human Readability and Git Diffs
While YAML is readable, Markdown is even more so for long-form text. It serves
as a great intermediate format for reviewing your content without the "noise" of
YAML syntax or LaTeX commands.
Furthermore, because the output is deterministic plain text, you can track
changes easily in Git. If you change a job description, the diff in `resume.md`
will clearly show the text change, which is much friendlier for peer reviews
(e.g., in a GitHub Pull Request) than trying to diff a binary PDF.
### 4. Universal Portability
Markdown can be easily converted into almost any other document format using
tools like [Pandoc](https://pandoc.org/). Need a `.docx` file for a recruiter
who insists on Word? `pandoc resume.md -f gfm -o resume.docx`. Need an HTML
snippet? `pandoc resume.md -f gfm -o resume.html`. The Markdown output acts as
a versatile "pivot" format that unlocks compatibility with the entire document
ecosystem.
## Next Thing: HTML Layout
The introduction of the layout system and Markdown engine is just the beginning.
We are actively working on an [HTML layout
engine](https://github.com/yamlresume/yamlresume/issues/45).
Imagine running `yamlresume build` and getting a fully responsive,
SEO-optimized, standalone HTML file that looks just as good as your PDF but is
native to the browser. This will allow you to host your resume as a simple
static page on GitHub Pages, Vercel, or Netlify with zero overhead.
The HTML layout will support:
* Responsive design for mobile viewing (no more pinching and zooming PDFs on
phones).
* SEO metadata automatically generated from your resume content.
* Theming support via CSS variables.
* Interactive elements (e.g., clickable project links, collapsible sections).
We believe that your resume data belongs to you, and you should be able to
render it in whatever format best suits your needs—whether that's a
pixel-perfect PDF for print, a clean Markdown file for AI, or a responsive HTML
page for the web.
## Conclusion
YAMLResume v0.8 is a major step forward in flexibility. By decoupling the
content (YAML) from the presentation (layouts), we are empowering developers to
use their resume data in new and creative ways.
We invite you to upgrade to v0.8, add the `markdown` engine to your layouts, and
experience the freedom of having your resume available in the format you need,
when you need it.
Give it a try:
```console lineNumbers
$ npm install -g yamlresume@latest
$ pnpm install -g yamlresume@latest
$ yarn global add yamlresume@latest
$ bun add -g yamlresume@latest
$ brew install yamlresume
```
# YAMLResume v0.6: Section Customization
URL: (/en/blog/section-customization)
YAMLResume [v0.6](https://github.com/yamlresume/yamlresume/releases/tag/v0.6.0)
is here, and it brings two powerful features for customizing your resume's
structure: [section aliases](/docs/layouts/sections/aliases) and [section
reorder](/docs/layouts/sections/reorder). These features allow you to rename
section titles and control their sequence in the final PDF, giving you greater
flexibility to tailor your resume.
Let's dive into how they work.
## Section Aliases
The default section titles in YAMLResume (e.g., `education`, `work`) are
automatically [translated](/docs/locale)
based on your chosen [locale language](/docs/layouts#locale). However, you might
prefer a different title. For instance, you might want to change "Work" to
"Professional Experience" for the `work` section.
To define aliases, use the `layout.sections.aliases` map in your `resume.yml`.
```yml lineNumbers title="resume.yml"
---
content:
# ...
layout: # [!code focus]
sections: # [!code focus]
aliases: # [!code focus]
work: Professional Experience # [!code focus]
education: Academic Background # [!code focus]
skills: Technical Skills # [!code focus]
```
## Section Reordering
By default, sections are rendered in a [standard
order](/docs/layouts/sections/reorder#default-section-order). The
`layout.sections.order` feature lets you change this sequence to highlight your
most important information first.
For example, to place your "Skills" and "Projects" sections before your "Work"
experience, you can define the order like this:
```yml lineNumbers title="resume.yml"
---
content:
# ...
layout: #[!code focus]
sections: #[!code focus]
order: #[!code focus]
- skills #[!code focus]
- projects #[!code focus]
- work #[!code focus]
```
Sections in the `order` list will appear first, followed by the remaining
sections in their default order.
## Putting It All Together: A Complete Example
Let's create a one-page resume that uses both features. We will alias and
reorder some sections at the same time.
```yml lineNumbers title="resume.yml"
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
---
layout:
sections: # [!code highlight]
aliases: # [!code highlight]
work: Professional Experience # [!code highlight]
education: Academic Background # [!code highlight]
skills: Technical Skills # [!code highlight]
order: # [!code highlight]
- basics # [!code highlight]
- work # [!code highlight]
- education # [!code highlight]
- skills # [!code highlight]
template: moderncv-banking
typography:
fontSize: 11pt
content:
basics:
name: Jane Doe
headline: Senior Software Engineer
email: jane.doe@example.com
phone: "555-123-4567"
summary: |
A passionate and experienced software engineer with a proven track record
of designing, developing, and deploying robust web applications. Skilled
in both front-end and back-end development, with a keen eye for detail and
a dedication to writing clean, efficient code.
education:
- institution: Tech University
area: Software Engineering
degree: Master
startDate: 2018-09-01
endDate: 2020-06-01
summary: Specialized in distributed systems and cloud computing.
- institution: State University
area: Computer Science
degree: Bachelor
startDate: 2014-09-01
endDate: 2018-06-01
summary: |
- Graduated with honors.
- Focused on algorithms, data structures, and distributed systems.
courses:
- Data Structures & Algorithms
- Operating Systems
- Computer Networks
- Database Systems
work:
- name: Tech Solutions Inc.
position: Senior Software Engineer
startDate: 2020-07-01
summary: |
- Led the development of a new microservices-based architecture, improving system scalability and reliability.
- Mentored junior engineers, providing guidance on best practices and code quality.
- Optimized application performance, reducing API response times by 30%.
- name: Innovate Corp.
position: Software Engineer
startDate: 2018-07-01
endDate: 2020-06-30
summary: |
- Developed and maintained features for a large-scale e-commerce platform using React and Node.js.
- Collaborated with product managers and designers to deliver high-quality user experiences.
- Participated in on-call rotation to ensure application stability.
- name: Data Systems LLC
position: Software Engineer Intern
startDate: 2017-06-01
endDate: 2017-08-31
summary: |
- Assisted in the development of a data processing pipeline.
- Wrote unit tests to ensure code quality.
- Gained experience with Agile development methodologies.
skills:
- name: Programming Languages
level: Expert
keywords:
- JavaScript (ES6+)
- TypeScript
- Python
- Go
- name: Technologies & Frameworks
level: Advanced
keywords:
- React
- Node.js
- Express
- Docker
- Kubernetes
- PostgreSQL
- name: Developer Tools
level: Advanced
keywords:
- Git & GitHub
- Webpack
- Jest
- CircleCI
languages:
- language: English
fluency: Native or Bilingual Proficiency
- language: Spanish
fluency: Limited Working Proficiency
```
Here we alias the `work`, `education`, and `skills` sections, and reorder the
sections by assigning higher priority to `work` than `education`, followed by
the `skills` section:
Now, let's build the resume:
```bash
yamlresume build resume.yml
```
You will get a PDF file with the following content—I highlighted the sections
with customizations:
Great, it works as expected! Isn't this cool?
## In Summary
With section aliases and reordering, you now have fine-grained control over your
resume's structure. We hope these features help you create even more
personalized and effective resumes.
The best part of section customization is that you can always extend [YAMLResume's
i18n capabilities to support more
languages](/docs/layouts/sections/reorder#default-section-order) on your own. By
default, the default section titles will be translated to the target locale
language (set via `layout.locale.language`) automatically. However, there are
always cases where YAMLResume [hasn't supported your target language
yet](https://github.com/yamlresume/yamlresume/discussions/36), so you can
override the default section titles with your own.
Meanwhile, people with different backgrounds have different preferences for the
section order. For example, candidates looking for an industry job may order
`work` in front of `education`, while postdoc researchers looking for an
academic position would order `education` in front of `work`.
Hope you enjoy these new features!
# YAMLResume v0.10: VS Code Template & Dutch Support
URL: (/en/blog/v0.10)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
We are thrilled to announce the release of
[YAMLResume v0.10](https://github.com/yamlresume/yamlresume/releases/tag/v0.10.0).
This release focuses on expanding our layout ecosystem with a developer-favorite
theme, broadening our international support, and adding fine-grained control
over document formatting.
## New HTML Template: VS Code
For developers, your code editor is your home. Now your resume can feel just as
familiar. We've introduced a new [VS Code
template](/docs/layouts/html/templates/vscode) for the HTML engine, featuring a
dark theme inspired by the "Dark+" color scheme of Visual Studio Code.
It features syntax-highlighting aesthetics—treating your name like a class, your
skills like objects, and your experience like functions. To use it, simply
update your layout configuration:
```yml lineNumbers
layouts:
- engine: html
template: vscode #[!code highlight]
```
This template is perfect for software engineers, devops professionals, and
anyone who wants to signal their technical roots immediately.
## Dutch Language Support
YAMLResume continues to grow globally. Thanks to the contribution from
[MattiaPun](https://github.com/MattiaPun), we now support [Dutch
(nl)](/docs/locale/dutch)!
This brings our supported languages count to six:
* [English (en)](/docs/locale/english)
* [Chinese (zh)](/docs/locale/chinese)
* [Spanish (es)](/docs/locale/spanish)
* [French (fr)](/docs/locale/french)
* [Norwegian (no)](/docs/locale/norwegian)
* [Dutch (nl)](/docs/locale/dutch)
To generate your resume in Dutch, set the locale in your `resume.yml`:
```yml lineNumbers
locale:
language: nl
```
This will automatically translate section headers (e.g., "Werkervaring",
"Opleidingen"), date formats, and country names.
## LaTeX Paper Size Support
We've added explicit control over paper sizes for the LaTeX/PDF engine. While A4
is the standard in many parts of the world, US Letter is essential for North
America.
You can now specify your preferred paper size directly in the configuration:
```yml lineNumbers
layouts:
- engine: latex
page:
# Options: 'a4' (default) or 'letter'
paperSize: letter #[!code highlight]
```
This ensures your PDF resume prints perfectly regardless of your region. Special
thanks to [djryanj](https://github.com/djryanj) for driving this feature!
## Toggle Icons
Sometimes less is more. While icons add visual flair, certain formal or
ATS-focused contexts might require a stricter text-only presentation.
We've introduced a `showIcons` option under the `advanced` settings for both HTML
and LaTeX engines. This gives you the flexibility to toggle icons for contact
details and social profiles on or off.
```yml lineNumbers
layouts:
- engine: html
advanced:
showIcons: false #[!code highlight]
- engine: latex
advanced:
showIcons: false #[!code highlight]
```
## Conclusion
YAMLResume v0.10 is about giving you more choices—from how your resume looks to
how it fits your local standards.
Upgrade today to explore the new features:
```console
$ npm install -g yamlresume@latest
# or
$ brew upgrade yamlresume
```
As always, we welcome your feedback and contributions on
[GitHub](https://github.com/yamlresume/yamlresume). Happy building!
# YAMLResume v0.5: The Resume Compiler
URL: (/en/blog/yamlresume-compiler)
We are thrilled to announce the release of [YAMLResume
v0.5](https://github.com/yamlresume/yamlresume/releases/tag/v0.8.1), a
significant milestone that transforms YAMLResume from a simple tool into a
full-fledged **resume compiler**. This release introduces a robust
architecture, powerful schema validation, and an enhanced CLI to make your
resume creation process more reliable, efficient, and error-free.
## The Problem with Manual Resume Writing
Drafting a resume is often a tedious and error-prone process. Whether you're
using a word processor or a simple markup language, it's easy to make
mistakes:
* A typo in a key field like `degree` or `fluency`.
* An incorrectly formatted email address or URL.
* Inconsistent date formats.
* Forgetting a required field for a job application.
These small errors can lead to a frustrating cycle of editing, generating, and
proofreading. The core issue is the lack of a system to enforce structure and
validate data *before* the final document is generated.
## The Solution: A Resume Compiler
Inspired by programming language compilers, [YAMLResume
v0.5](https://github.com/yamlresume/yamlresume/releases/tag/v0.8.1) introduces
a new compiler architecture that treats your resume's source file (in YAML) as
code. This "code" is then processed through a pipeline to produce a polished,
professional PDF.
This new architecture defines two core components:
1. A [standard data format](/docs/compiler/types) for a resume, along with a
[schema](/docs/compiler/schema) to validate the data.
2. A reference [compiler](/docs/compiler) that implements the data format and
schema validation.
This approach brings several key advantages:
* **Separation of Concerns**: You focus solely on the **content** of your
resume. The compiler handles the **presentation**—layout, typography, and
formatting.
* **Early Error Detection**: The compiler validates your resume against a
predefined schema, catching errors instantly with clear, actionable
feedback.
* **Consistency and Reliability**: By enforcing a standard structure, the
compiler ensures your resume data is always consistent and ready for any
template.
### See It in Action
For example, consider the following resume with several common errors:
```yml lineNumbers title="invalid-resume.yml"
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
---
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@pp # [!code highlight]
url: https//ppresume.com/gallery # [!code highlight]
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
region: California
city: S # [!code highlight]
country: United States
postalCode: "95814"
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
startDate: Sep 1, 2016
endDate:
courses:
- D # [!code highlight]
- Programming Language Concepts
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
layout:
typography:
fontSize: 13pt # [!code highlight]
```
We have several issues:
1. `email: hi@pp` - format is invalid
2. `url: https//ppresume.com/gallery` - protocol part is missing a `:`
3. `city: S` - too short, should be 2 characters or more, is there any city in the
world whose name is only 1 character?
4. `- D` - the first course is just too short, should be 2 characters or
more
5. `fontSize: 13pt` - should be 10pt, 11pt or 12pt, 13pt is just too large and make
little sense in resume drafting scenario
These errors, which might have gone unnoticed previously, are now caught
instantly. You can run `yamlresume validate my-resume.yml` or simply `yamlresume
build my-resume.yml`. YAMLResume will report all issues in the widely adopted
[clang-style error format](https://clang.llvm.org/diagnostics.html), allowing
you to fix them before the final PDF is generated.
## At the Heart of the Compiler: The Schema
The cornerstone of this new release is the **[YAMLResume
Schema](/docs/compiler/schema)**. We provide a comprehensive schema that
defines the structure and rules for every piece of data in your resume.
We use two powerful technologies for this:
* **[Zod](https://zod.dev)**: For runtime validation within the compiler,
providing a robust safety net and detailed error messages.
* **[JSON Schema](https://json-schema.org)**: For editor and IDE integration.
By adding a single line to your YAML file, you unlock auto-completion,
inline on-hover property documentation, and real-time format validation
right in your editor.
If you have a resume created prior to v0.5, you can still take advantage of
schema validation. Just add the following line to your resume file and install
the [YAML Language
Server](https://github.com/redhat-developer/yaml-language-server) for your
editor.
```yml lineNumbers
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
```
This integration provides a suite of benefits that dramatically improve the
resume writing experience:
### Auto-Completion
Spend less time looking up field names. Your editor will suggest valid
properties as you type, ensuring you use the correct fields every time.
### Real-time Format Validation
Catch errors as they happen. The schema validation provides instant feedback on
everything from simple typos to incorrect email formats or missing required
fields.
If a required key is missing, the warning is escalated to its parent object,
making it easy to spot and fix.
### Inline Property Documentation
No more guessing what a field does. Hover over any property to get instant
documentation explaining its purpose, expected format, and allowed values.
## The Enhanced CLI
The `yamlresume` [CLI](/docs/cli) is now more powerful than ever. The
[build](/docs/cli#build) command runs the entire compiler pipeline, from
validation to PDF generation, while the new [validate](/docs/cli#validate)
command lets you check your resume without building it.
[](https://asciinema.org/a/728098)
This seamless workflow transforms your resume creation process, making it more
efficient and reliable while minimizing errors.
## What This Means for You
With [YAMLResume
v0.5](https://github.com/yamlresume/yamlresume/releases/tag/v0.8.1), you can:
* **Write with Confidence**: Know that your resume's structure is sound and
your data is valid.
* **Save Time**: Catch errors early and eliminate the tedious proofreading
cycle.
* **Stay Flexible**: Swap between different resume templates effortlessly.
* **Enjoy a Better Editing Experience**: Get real-time feedback and
auto-completion in your favorite editor.
We invite you to experience the power and simplicity of the new YAMLResume
compiler:
* **Install or update** to the latest version: `npm install -g
yamlresume@latest`
* **Read the new [Compiler Documentation](/docs/compiler)** to learn more about
the architecture and schema.
* **Join our community** on
[GitHub](https://github.com/yamlresume/yamlresume/discussions) to ask
questions, report issues, or contribute.
We believe this release marks a new era for resume creation, bringing the power
and reliability of compilers to everyone. We can't wait to see the amazing
resumes you'll build!
And don't forget, you can try out the new compiler with our [Docker
image](/blog/yamlresume-docker):
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
```
# YAMLResume in Docker
URL: (/en/blog/yamlresume-docker)
I am super excited to announce that YAMLResume now has a [docker
image](https://hub.docker.com/r/yamlresume/yamlresume), and you can [run
YAMLResume instantly with docker](https://asciinema.org/a/722057).
## Why Docker?
YAMLResume is a Node.js CLI tool and a
[library](https://www.npmjs.com/package/@yamlresume/core). Installing YAMLResume
itself is not difficult since it only requires Node.js. In fact, we can even compile it
to a binary and run it directly without installing Node.js.
However, YAMLResume has a mandatory dependency on LaTeX, which brings some new
problems:
* Installing LaTeX takes time; it usually takes about 5–10 minutes to download a
proper LaTeX distribution and configure it.
* LaTeX is not a single binary program; it is a collection of programs. Some
users [dislike installing many programs on their
machines](https://github.com/yamlresume/yamlresume/issues/6#issuecomment-2916479009).
Although we already provide a very comprehensive [installation
guide](/docs/installation) covering macOS, Windows, Ubuntu, and RHEL, even with
instructions on installing YAMLResume and LaTeX and making them work together,
the process can still be painful for some users.
Docker is a great solution to these problems: it can package everything into a
single image, making installation and configuration easy.
## How To Use It
A picture is worth a thousand words. Here is a screenshot showing how to use it:
Our [docker image](https://hub.docker.com/r/yamlresume/yamlresume) has
everything pre-packaged, including:
* [Node.js](/docs/installation#nodejs)
* [yamlresume CLI](/docs/installation#yamlresume)
* [XeTeX](/docs/installation#xetex)
* [some recommended fonts](/docs/installation#font)
You can create a new resume instantly with the following command:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
```
Edit `my-resume.yml` accordingly and then build the resume from YAML to PDF:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
```
#### Under the Hood
If you are familiar with docker, you may already know how this works. If not,
here is a quick explanation:
1. `docker run ... yamlresume/yamlresume` - runs a new container from the
`yamlresume/yamlresume` image. If this image does not exist on your local
machine, it will pull it from the [docker
Hub](https://hub.docker.com/r/yamlresume/yamlresume).
2. `--rm` - automatically removes the container when it exits.
3. `-v $(pwd):/home/yamlresume` - mounts the current directory (`$(pwd)`) into
the container at `/home/yamlresume`, allowing the container to access local
files.
4. `new my-resume.yml` or `build my-resume.yml` - runs the yamlresume CLI
[new](/docs/cli#new) or [build](/docs/cli#build) sub-command to create or
build a resume with the filename `my-resume.yml`.
Basically, you can call all of the `yamlresume` [CLI sub-commands](/cli) in this
way—just append the sub-command after `yamlresume/yamlresume` and then follow
the corresponding usage guide.
The `-v` flag is quite important because it mounts the current directory
(`$(pwd)`) into the container at `/home/yamlresume`, allowing two-way file sync
between the local directory and the container. Without this flag, the build
output artifact will be lost after the container exits.
## Engineering
Building a docker image is not difficult if you know docker a bit. However,
wrapping YAMLResume in docker is not as easy as it sounds. Here are some of the
challenges.
### LaTeX Configuration is Tedious
Installing a workable LaTeX distribution takes time; it usually takes about 5–10
minutes to download and configure a proper LaTeX distribution. In GitHub Action
runners, this process is [even longer—up to 20+
minutes](https://github.com/yamlresume/yamlresume/actions/runs/15438395862/job/43450134447).
```docker
RUN apt update && \
apt install -y \
texlive-xetex \
texlive-fonts-extra \
texlive-lang-all \
fonts-noto-cjk \
fonts-noto-cjk-extra \
```
We make it a 3-step process to build [yamlresume's docker
image](https://hub.docker.com/r/yamlresume/yamlresume):
1. Start from a Node.js image as the base.
2. Install and configure a LaTeX distribution.
3. Install the yamlresume CLI.
As mentioned, step 2 is the most time-consuming part. If we had to start over
every time we needed to update the docker image, it would take 30 minutes to
build the docker image in a github action runner.
To avoid this, we use a multi-stage build to cache the LaTeX distribution, so we
don't need to install it from scratch every time we update the docker image.
Therefore, we created a new
[yamlresume/yamlresume-base](https://hub.docker.com/r/yamlresume/yamlresume-base),
which is a base image that has Node.js and a LaTeX distribution installed. This
base image is stable and won't be updated too often, and our `yamlresume/yamlresume`
image is built on top of this base image. It only takes 3 minutes to pull down
the `yamlresume/yamlresume-base` image and install the yamlresume CLI on it,
which drastically reduces the iteration time.
### Multi-Platform Support
Another challenge is to support [multi-platform
builds](https://docs.docker.com/build/building/multi-platform/). As we know,
macOS M1 and later are ARM-based machines. Although they can run docker images
with AMD64 architecture by emulation, the performance is 10x poorer.
Hence, we have to support multi-platform images for `yamlresume/yamlresume`.
Luckily, docker officially provides a detailed guide about how to [build
multi-platform images in github
actions](https://docs.docker.com/build/ci/github-actions/multi-platform/).
YAMLResume's docker image supports [two
platforms](https://hub.docker.com/r/yamlresume/yamlresume/tags): `linux/amd64`
and `linux/arm64`, which should be sufficient to cover most desktop and server
machines.
Enjoy YAMLResume with docker!
# YAMLResume Lands in Homebrew
URL: (/en/blog/yamlresume-homebrew)
YAMLResume has just been
[accepted](https://github.com/Homebrew/homebrew-core/pull/246949) by
[Homebrew](https://brew.sh) (the most popular package manager on macOS). That
means macOS users can now install and keep YAMLResume up to date with a single,
trustworthy command—no manual [Node.js](https://nodejs.org) global installs, no
path juggling. This post shows a more detailed step-by-step yamlresume setup with
Homebrew and a typesetting engine for best PDF output.
## Why This Matters
Previously, the typical path of getting YAMLResume CLI for macOS users was:
1. [install Node.js](/docs/installation#nodejs),
2. [install `yamlresume` CLI](/docs/installation#yamlresume-cli) by Node.js
package managers (npm/pnpm/yarn/bun)
3. [install a typesetting engine](/docs/installation#typesetting-engine) in
order to generate PDF
A [Homebrew formula](https://formulae.brew.sh/formula/yamlresume) can merge step
1 and 2 into one, since Homebrew can manage the Node.js dependency for you.
This reduces environment configuration issues and simplifies upgrades (`brew
upgrade yamlresume`).
## Quick Install
```sh
brew install yamlresume
```
Homebrew will install Node.js as a dependency if you don't have it yet.
Then verify:
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build a resume on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
If you see the help output, the CLI binary is available in your `PATH`.
YAMLResume depends on a typesetting engine to generate PDF, you can either
install [MacTeX](/docs/installation#xetex) or
[Tectonic](/docs/installation#tectonic) via Homebrew.
### Option A: Full TeX Live (XeTeX)
Install via MacTeX cask (includes XeTeX):
```sh
# install the full mactex
brew install mactex
# or if you want to save some disk space
brew install mactex-no-gui
```
After installation, ensure the TeX binaries are on `PATH` (Homebrew usually
symlinks them under `/Library/TeX/texbin`). Test:
```console
$ xelatex --version
XeTeX 3.141592653-2.6-0.999994 (TeX Live 2022)
kpathsea version 6.3.4
Copyright 2022 SIL International, Jonathan Kew and Khaled Hosny.
There is NO warranty. Redistribution of this software is
covered by the terms of both the XeTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the XeTeX source.
Primary author of XeTeX: Jonathan Kew.
Compiled with ICU version 70.1; using 70.1
Compiled with zlib version 1.2.11; using 1.2.11
Compiled with FreeType2 version 2.11.1; using 2.11.1
Compiled with Graphite2 version 1.3.14; using 1.3.14
Compiled with HarfBuzz version 3.4.0; using 3.4.0
Compiled with libpng version 1.6.37; using 1.6.37
Compiled with pplib version v2.05 less toxic i hope
Using Mac OS X Core Text and Cocoa frameworks
```
### Option B: Tectonic (Lightweight)
```console
$ brew install tectonic
$ tectonic --version
```
Which one should you pick?
| Engine | Pros | Cons |
| -------- | ---------------------------------------------------- | -------------------------------------- |
| XeTeX | maximal compatibility; mature ecosystem | large download (4-6 GBs) |
| Tectonic | tiny initial footprint; auto-fetches needed packages | occasional compatibility gaps vs XeTeX |
If you run into unexplained LaTeX package issues or advanced font handling edge
cases, fall back to XeTeX.
## Create and Build a Resume
As usual, you can create a starter YAML resume by:
```console
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
Inspect and edit `my-resume.yml` in your editor, then build to PDF:
```console
$ yamlresume build my-resume.yml
◐ Generating resume PDF with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume PDF successfully.
```
Under the hood YAMLResume will:
1. transforms `my-resume.yml` into LaTeX (`my-resume.tex`).
2. invokes your typesetting engine (`xelatex` or `tectonic`).
3. produces `my-resume.pdf`.
## Upgrading
Stay current (new templates, fixes, i18n improvements):
```console
$ brew update
$ brew upgrade yamlresume
```
## Uninstalling
```console
$ brew uninstall yamlresume
```
Remove optional dependencies only if you no longer need them (fonts, TeX engine,
etc.).
## Troubleshooting
Verbose mode helps diagnose resume build issues:
```console
$ yamlresume build --verbose my-resume.yml
```
Common fixes:
* missing typesetting engine: install MacTeX or use Tectonic.
* permission denied writing files: ensure you are in a writable directory (avoid
system paths).
* engine mismatch/weird LaTeX errors on Tectonic: fall back to XeTeX (`brew
install mactex`).
## Final Notes
Being included in Homebrew lowers the barrier for new users and signals project
maturity. If you run into any edge cases, open an
[issue](https://github.com/yamlresume/yamlresume/issues/) or
[discussion](https://github.com/yamlresume/yamlresume/discussions)—we iterate
quickly. Happy hacking and may your resumes be always pixel perfect!
Last but not least, credit to [@chenrui333](https://github.com/chenrui333) again
for his initial [PR](https://github.com/Homebrew/homebrew-core/pull/246949) to
include YAMLResume in Homebrew.
# 1000 颗星
URL: (/zh-cn/blog/1000-stars)
YAMLResume 刚刚跨越了一个重要的里程碑:[GitHub 上的 1000 颗星](https://github.com/yamlresume/yamlresume/stargazers)——这大约是在[开源项目](/zh-cn/blog/introducing-yamlresume)半年后。感谢每一颗星、每一个 issue、每一次讨论、每一份贡献和每一次口碑分享。这是一个小小的徽章,但它反映了"简历即代码"、出色的排版和以开发者为先的工作流程的真正动力。
六月我们庆祝了[500 颗星](/zh-cn/blog/500-stars),今天我们带着 1000 颗星回来了。在这期间,YAMLResume 显著成熟——特别是在三个版本中,许多人都快速跟进和采用:[v0.5](/zh-cn/blog/yamlresume-compiler)、[v0.6](/zh-cn/blog/section-customization) 和 [v0.7](/zh-cn/blog/dev-mode)。这篇文章回顾了我们发布的最重要的内容,然后为下一段旅程制定了务实的路线图。
## 回顾
### v0.5:你可以信赖的简历编译器
[v0.5](/zh-cn/blog/yamlresume-compiler) 将 YAMLResume 重新定位为不仅是一个格式化工具,而是一个编译器。这个单一的概念转变——将简历 YAML 视为源代码——解锁了正确性、一致性和极其简单的 CLI 工作流程。
我们在 v0.5 中发布的关键想法:
* [编译器架构](/zh-cn/docs/compiler/architecture)和标准[数据模型](/zh-cn/docs/compiler/schema):我们正式化了简历结构,以便任何下游渲染器或模板都能获得干净、可预测的数据。这减少了错误并提高了模板的可移植性。
* 两个层面的强验证:[用于编辑器集成的 JSON Schema](/zh-cn/docs/compiler/schema/json)(自动完成、悬停文档、早期格式检查)和[用于运行时安全和详细诊断的 Zod](/zh-cn/docs/compiler/schema/zod)。编辑器感觉智能;构建感觉安全。
* 缩短迭代的新命令:[`yamlresume validate`](/zh-cn/docs/cli#validate) 用于快速检查,以及改进的 `build`,它总是先验证。使用 `--no-validate` 选项,你可以在大编辑期间保持进度。
* [Clang 风格的错误输出](https://asciinema.org/a/728098):与文件名和行号关联的清晰错误每次迭代都能节省数分钟。
v0.5 使 YAMLResume 成为一个你可以信赖的工具——即使在截止日期压力下也是如此。如果你还没有,请浏览 v0.5 博客中的示例和视频;它们展示了验证器、架构提示和诊断的实际应用。
### v0.6:与你讲述故事方式相匹配的章节自定义
[v0.6](/zh-cn/blog/section-customization) 专注于看似简单但极其强大的功能:用你自己的声音和顺序表达你的叙事,而无需 fork 模板或 hack LaTeX。
发布的内容:
* [章节别名](/zh-cn/docs/layouts/sections/aliases):重命名预定义章节(例如,将 `work` 改为"专业经验",将 `education` 改为"学术背景")使用 `layout.sections.aliases`。这对于语调、地区/文化或角色定位特别有用。
* [章节重排序](/zh-cn/docs/layouts/sections/reorder):使用 `layout.sections.order` 将最相关的章节带到顶部。将 `skills` 放在 `work` 之前,或者为作品集重的角色首先展示 `projects`。
* 容错更佳实用:改进如容忍无效日期(回退到字符串)
为什么重要:
* 招聘环境不同。申请博士后的博士希望 `education` 在前;高级工程师希望 `work` 在前。v0.6 将这个选择放在一次 YAML 编辑的距离。
* 语言和语调塑造感知。别名让你可以匹配行业规范("经验"、"精选出版物"、"开源"),而无需微调模板。
简而言之:v0.6 使 YAMLResume 适应你的叙述,而不是相反。
### v0.7:开发模式,因为简历也值得现代化的开发体验
[v0.7](/zh-cn/blog/dev-mode) 发布了一个监视模式的开发流程,感觉就像简历的热重载。保存你的 YAML,PDF 会自动重建。小改动不再需要大的上下文切换。
发布的内容:
* [`yamlresume dev`](/zh-cn/docs/cli#dev):一个持久进程,监视你的简历文件并在保存时重建。将其与并排的 PDF 查看器配对以获得即时反馈。
* 强大的监视器实现:我们采用了 [chokidar](https://github.com/paulmillr/chokidar) 并添加了[合并逻辑](https://github.com/yamlresume/coalescifn),这样我们永远不会在快速连续保存时过载构建。一次只进行一次构建;最新状态总是获胜。
* dev 中的实用标志:当你只需要 `.tex` 进行调试时使用 `--no-pdf`,在大型重构期间速度最重要时使用 `--no-validate`。
为什么重要:
* 迭代更快,写得更好。
* 工具承担了繁琐的工作,而你保持了流畅的流程。这就是开发体验的全部意义。
如果你习惯使用 `npm run dev`,你会感到宾至如归。
### 使用 Homebrew 的 YAMLResume
最后但同样重要的是,YAMLResume 现在已经被 [Homebrew](https://brew.sh) 收录:
```sh
brew install yamlresume
```
我们发布了一篇新的博客文章来详细解释如何使用它:[YAMLResume 登陆 Homebrew](/zh-cn/blog/yamlresume-homebrew)。
## 展望未来
YAMLResume 已经从 [PPResume](https://ppresume.com) 的小型核心引擎发展到今天强大的简历编译器,尽管走过了很长的路。但我们仍然有很多工作要做,以进一步增强 YAMLResume 的能力,使其成为简历制作的理想工具。
### 多种布局
目前 YAMLResume 仅支持 LaTeX 输出。我们将扩展编译器到渲染器的管道,以支持多种布局引擎和输出格式,从 Markdown 开始,然后是 HTML。
以下是我们将要发布的功能:
* [Markdown 输出](https://github.com/yamlresume/yamlresume/issues/110):一个干净、结构化的 Markdown 文档,反映你简历的章节和内容。适用于 README、接受 Markdown 的工作门户,或传递给接受 markdown 的其他简历构建器。
* [HTML 输出](https://github.com/yamlresume/yamlresume/issues/45):HTML 是网络简历最流行的输出格式。当 YAMLResume 支持 HTML 输出的那一天,你可以在任何地方托管你的简历,与任何人分享,并在任何设备上打开它。
一个数据模型,多种输出。编译器的验证仍然是核心;渲染器成为插件。你根据受众选择输出:PDF 用于正式提交,HTML 用于网络存在,Markdown 用于面向开发者的渠道。
### GitHub Actions
一些人采用 YAMLResume 来[在 GitHub 上构建和托管他们的简历](https://github.com/yamlresume/yamlresume/discussions/50),他们每个人都有自己生成 PDF 的工作流程。
我们将发布一个官方的 GitHub YAMLResume action,以便人们可以验证、构建、托管和发布他们的简历,而无需编写自己的工作流。
有了专用的 GitHub Action,简历更新变成了推送即完成。
### 更多语言
YAMLResume v0.7 已经支持[英语](/zh-cn/docs/locale/english)、[中文](/zh-cn/docs/locale/chinese)、[挪威语](/zh-cn/docs/locale/norwegian)和[西班牙语](/zh-cn/docs/locale/spanish),我们将扩展列表以支持更多语言,使 YAMLResume 对世界各地更多人更加易用。
法语、德语和日语将是我们接下来几个月要支持的第一批语言。
## 致谢
1000 颗星不是终点,而是另一个开始。它来自你的早期采用、错误报告、语言贡献和塑造路线图的深思熟虑的请求。感谢你的支持和贡献。
以下是如何保持势头:
* 尝试最新的 CLI:`npm install -g yamlresume@latest` 或在 macOS 上使用 `brew install yamlresume`。
* 在下一个编辑循环中使用开发模式:`yamlresume dev my-resume.yml`。
* 提交问题和想法:[https://github.com/yamlresume/yamlresume/issues](https://github.com/yamlresume/yamlresume/issues)
* 加入讨论:[https://github.com/yamlresume/yamlresume/discussions](https://github.com/yamlresume/yamlresume/discussions)
我们将继续发布务实的功能,使简历写作更平静、更快、更美观——同时坚持单一、经过验证的真实来源。继续前进,迈向下一个里程碑。
# 500 颗星
URL: (/zh-cn/blog/500-stars)
YAMLResume 实现了一个重要里程碑——在短短一个月内在 GitHub 上达到了 500 颗星。
时间线如下:
* 3 月 29 日:决定开源 [PPResume](https://ppresume.com) 背后的引擎
* 4 月 2 日:获得了本地 [CLI 演示](https://x.com/xiaohanyu1988/status/1907427362259771748)
* 4 月 10 日:实现了 [100% 测试覆盖率](https://x.com/xiaohanyu1988/status/1910193021989368311)
* 4 月 25 日:获得了[本地 npm 包](https://x.com/PPResumeX/status/1915789536610967741)
* 5 月 8 日:正式[开源 yamlresume](https://x.com/PPResumeX/status/1920294577497387493)
* 5 月 17 日:达到 [200 颗星](https://x.com/PPResumeX/status/1923635538046955662)
* 5 月 23 日:达到 [300 颗星](https://x.com/PPResumeX/status/1925834873723396131)
* 5 月 30 日:达到 [400 颗星](https://x.com/PPResumeX/status/1928347464693862635)
* 6 月 11 日:达到 [500 颗星](https://x.com/PPResumeX/status/1932716523401150840)
与此同时,我们收到了第一个 [Pull Request](https://github.com/yamlresume/yamlresume/pull/2),合并了[另一个 Pull Request](https://github.com/yamlresume/yamlresume/pull/19),并解决了我们的第一个[错误报告](https://github.com/yamlresume/yamlresume/issues/13)。特别感谢 [@jizusun](https://github.com/jizusun)、[@koo6666](https://github.com/koo6666) 和 [@luyuhuang](https://github.com/luyuhuang) 的友好贡献!
## 为什么要开源?
YAMLResume 的第一行代码实际上是在 2023 年编写的。它最初是 [PPResume](https://ppresume.com) 的核心排版引擎——一个基于 [LaTeX](https://www.latex-project.org/) 的商业像素级完美简历构建器,已经帮助数千人创建了精美排版的简历。
虽然我还没有准备好开源 PPResume 本身,但我确实希望给用户完全控制他们简历的权力。2024年12月,PPResume 使用户能够下载他们简历的生成 LaTeX 代码,确保我们的[无供应商锁定](https://blog.ppresume.com/posts/no-vendor-lock-in)承诺,并给用户对其数据的完全所有权。
此外,PPResume 的开发极大地受益于开源社区。我自己从中学到了很多,现在是回馈的时候了。
很少有开源工具使用 YAML 作为简历格式。[JSON Resume](https://jsonresume.org) 是一个不错的尝试——众所周知,YAML 是 JSON 的超集。但是,JSON Resume 没有为简历排版、布局或输出提供固执己见的解决方案,使其远不如实用。另一方面,YAML 是比 JSON 更好的简历格式选择。
开源 YAMLResume 显然是正确的决定。查看 NPM 上 YAMLResume 的下载趋势:
## 下一步是什么?
虽然 YAMLResume 已被商业简历构建器使用了将近两年,但它仍处于开发的早期阶段,还有很多工作要做。
[Docker 支持](./yamlresume-docker)是最受欢迎的功能之一,我很高兴地说它现在[可用](/zh-cn/docs/installation#docker-users)。
另一个重要功能是数据验证。与 PPResume 不同,PPResume 为用户提供精心制作和设计的表单来填写和验证他们的简历数据,YAMLResume 接受无约束输入——任何 `.yaml` 文件。我们必须提供一种[验证输入](https://github.com/yamlresume/yamlresume/issues/10)的方法,以确保程序优雅地处理所有形式的输入。
在功能方面,我们计划支持[章节别名](https://github.com/yamlresume/yamlresume/issues/11)和[章节重排](https://github.com/yamlresume/yamlresume/issues/12),使 PDF 输出更具适应性和灵活性。
对于开发者体验,我们的目标是[支持 `dev` 子命令](https://github.com/yamlresume/yamlresume/issues/25),以便用户可以修改简历并近实时看到 PDF 更改。
最后,一些用户对 ATS 兼容性表示担忧。我们致力于确保 PDF 输出是[ATS 兼容](https://github.com/yamlresume/yamlresume/issues/23)的。
敬请期待!
# YAMLResume v0.7: 开发模式
URL: (/zh-cn/blog/dev-mode)
我非常兴奋地介绍 [YAMLResume v0.7](https://github.com/yamlresume/yamlresume/releases/tag/v0.7.0),这是一个专注于提升您开发者体验(DX)的版本。此次更新的核心是新的 [`dev` 模式](/zh-cn/docs/cli#dev)——一个为您的简历创建过程带来无缝、实时开发工作流程的功能。
繁琐的编辑-保存-构建循环的日子已经一去不复返了。通过 `dev` 模式,YAMLResume 现在会监视您的简历文件变化,并近乎实时地自动重新构建 PDF。这个看似简单的添加将制作简历的体验转变为一个流畅、互动且更加愉快的过程。
## 旧工作流程的摩擦
在 v0.7 之前,使用 YAMLResume 创建简历虽然功能强大,但涉及一个重复的手动过程。您需要:
1. 在您喜欢的文本编辑器中打开 `my-resume.yml` 文件。
2. 进行更改——也许是更新工作描述或添加新技能。
3. 保存文件。
4. 切换到终端。
5. 运行 `yamlresume build my-resume.yml` 命令。
6. 等待命令完成。
7. 切换到 PDF 查看器并刷新以查看结果。
8. 注意到一个小错字或格式问题。
9. 重复整个循环。
下面展示的这个循环为简历创建过程引入了显著的摩擦。每个更改,无论多么微小,都需要上下文切换和手动命令执行。这种持续的中断会破坏创作流程并减慢完善简历的过程。
B{保存文件};
B --> C[切换到终端];
C --> D[运行 'yamlresume build'];
D --> E{等待构建};
E --> F[切换到 PDF 查看器];
F --> G{刷新 PDF};
G --> H{查看更改};
H -- 需要修正 --> A;
H -- 看起来不错 --> I[完成];
subgraph 手动构建循环
A
B
C
D
E
F
G
H
end
`}
/>
在现代软件开发的世界中,我们已经习惯了提供即时反馈的工具。Web 开发者有[热重载](https://webpack.js.org/concepts/hot-module-replacement/),当代码更改时浏览器会自动更新。这种紧密的反馈循环对生产力至关重要,是优秀开发者体验的核心原则。我们相信,将简历作为代码制作应该没有什么不同。
## 解决方案:无缝的开发模式
`yamlresume dev` 命令完全消除了手动构建循环。您启动一次,它就会在后台安静地工作,监视您的更改并自动重新构建简历。
要启动开发模式,只需运行:
```bash
yamlresume dev my-resume.yml
```
现在,您可以并排打开 `my-resume.yml` 文件和您的 PDF。每次您保存对 YAML 文件的更改时,YAMLResume 都会自动检测并触发重新构建。您的 PDF 查看器将在片刻后更新,显示您简历的最新版本。
新的工作流程显著更简单、更高效:
B[编辑 my-resume.yml];
B --> C{保存文件};
C --> D{PDF 自动重新构建};
D --> E{在 PDF 中查看更改};
E -- 需要修正 --> B;
E -- 看起来不错 --> F[停止开发模式];
subgraph 实时工作流程
B
C
D
E
end
`}
/>
这种即时反馈循环允许您快速迭代、尝试不同的措辞,并在没有持续上下文切换的情况下完善简历的布局。它使这个过程感觉不那么像琐事,更像是一种创作努力。
以下是 `dev` 模式的实际演示:
您可以观看 [YouTube 演示](https://youtu.be/xytlzedEQ_w) 了解更多详情。
## 工作原理:深入了解
虽然 `dev` 模式使用简单,但背后有一些有趣的技术来确保它既强大又高效。
### 文件监视器:`chokidar`
`dev` 模式的核心是文件监视器。一个天真的方法是使用 Node.js 内置的 [`fs.watch` API](https://nodejs.org/docs/latest/api/fs.html#fswatchfilename-options-listener)。然而,`fs.watch` 有已知的限制和跨不同操作系统的不一致性。更重要的是,它在某些文本编辑器行为方面存在困难。
例如,像 Vim 这样的编辑器使用"原子保存"策略。当您保存文件时,Vim 不会直接写入原始文件。相反,它将更改写入临时文件(著名的 `.swp` 文件),然后将该临时文件重命名以替换原始文件。这个过程可能会混淆基本的文件监视器,它们可能会完全错过更改或触发多个事件。
为了提供可靠的体验,我们采用了 **[chokidar](https://github.com/paulmillr/chokidar)**,一个流行且经过实战考验的文件监视库。Chokidar 抽象了跨平台的不一致性,专门设计用于优雅地处理这些棘手的编辑器行为。我们配置它在文件完成写入之前等待,确保我们不会尝试构建部分保存的文件。
### 防止构建风暴:`coalescifn`
如果您快速连续保存文件多次会发生什么?一个简单的实现可能会为每个保存事件尝试启动新的构建。这可能导致"构建风暴",其中多个构建进程并发运行,消耗不必要的系统资源并可能导致竞争条件。
为了解决这个问题,我们编写并开源了一个巧妙的小工具 [coalescifn](https://github.com/yamlresume/coalescifn)。这个工具帮助我们**合并**多个调用为一个。以下是在 `dev` 模式上下文中的工作原理:
1. 当检测到第一个文件更改时,我们立即开始构建。
2. 如果在该构建运行时检测到更多更改,我们不会启动新构建。我们只是记录文件再次更改。
3. 一旦初始构建完成,我们检查在那段时间是否发生了更多更改。
4. 如果有后续更改,我们运行恰好**一个**更多构建以确保最终 PDF 反映文件的最新版本。如果没有新更改,我们什么都不做,等待下一个保存事件。
这种策略确保一次只有一个构建在运行,并保证最终构建始终使用您简历文件的最新版本。这是一种高效的方法,使 `dev` 模式响应迅速且对系统资源消耗较少。
以下是说明合并逻辑的图表:
>Watcher: 保存文件 (t=0s)
Watcher->>Coalesce: 触发构建
Coalesce->>Builder: 开始构建 #1
User->>Watcher: 保存文件 (t=1s)
Watcher->>Coalesce: 触发构建 (忽略,构建进行中)
User->>Watcher: 保存文件 (t=2s)
Watcher->>Coalesce: 触发构建 (忽略,构建进行中)
Builder-->>Coalesce: 完成构建 #1 (t=3s)
Coalesce->>Builder: 开始构建 #2 (使用最新文件内容)
Builder-->>Coalesce: 完成构建 #2 (t=6s)
`}
/>
## 高级控制
`dev` 命令还带有选项,让您对构建过程有更多控制,镜像 `build` 命令上可用的标志。
### 跳过 PDF 生成
有时,您可能只想检查 YAMLResume 生成的中间 LaTeX (`.tex`) 文件。这对于调试或对于那些想要手动调整 LaTeX 代码的人很有用。生成 PDF 是构建过程中最耗时的部分。如果您不需要它,您可以告诉 `dev` 模式跳过它:
```bash
yamlresume dev my-resume.yml --no-pdf
```
使用此标志,`dev` 模式仍会监视更改并即时重新生成 `.tex` 文件,但不会运行 `xelatex` 命令。这使得重新构建过程几乎瞬间完成。
### 禁用验证
从 [v0.5](/zh-cn/blog/yamlresume-compiler) 开始,YAMLResume 包含一个强大的模式验证步骤,在构建过程中捕获您简历中的潜在错误。虽然这对于确保正确性非常有用,但有时您可能想要暂时禁用它。例如,您可能正在进行简历结构的大型重构,不想被验证错误打断。
您可以使用 `--no-validate` 标志禁用验证:
```bash
yamlresume dev my-resume.yml --no-validate
```
这允许您更自由地工作,但理解您应该稍后重新启用验证以确保您的简历格式良好。
## "简历即代码"的新 DX
`dev` 模式的引入不仅仅是一个新功能;它是朝着实现"简历即代码"真正承诺迈出的一步。它将体验从静态的、命令行驱动的过程提升为动态的、互动的过程,感觉更像现代软件开发。
您可能过去习惯使用 `npm run build` 和 `npm run dev`?YAMLResume 现在内置了相同的工作流程。
通过关闭反馈循环,我们让您更容易、更快地创建美观、专业的简历。我们相信这将鼓励更多实验,让您专注于真正重要的:简历的内容以及它如何讲述您的专业故事。
我们邀请您更新到 YAMLResume v0.7 并亲自体验新的 `dev` 模式:
* **安装或更新**到最新版本:`npm install -g yamlresume@latest`
* **试用**您现有的简历:`yamlresume dev my-resume.yml`
* **加入我们的社区**在 [GitHub](https://github.com/yamlresume/yamlresume/discussions) 分享您的反馈、提问或为 YAMLResume 的未来做出贡献。
我们致力于为简历创建构建最佳的开发者体验,我们迫不及待想听到您对这个新版本的看法!
# 如何在 moderncv 中隐藏图标
URL: (/zh-cn/blog/hide-moderncv-icons)
使用 [LaTeX](https://www.latex-project.org/) 生成 PDF 简历时,细小的视觉细节会极大影响整体观感。[`moderncv`](https://ctan.org/pkg/moderncv) 类会在联系方式(电话、邮箱、主页等)旁边显示图标,效果很精致,但并不是所有人都希望头部带图标。有的人追求更极简的风格,有的人需要符合不允许图标的公司模板。本文会解释 `moderncv` 是什么、它使用的图标库、如何隐藏图标,以及让这一切成为可能的 LaTeX `\renewcommand` 宏。
## 1. moderncv 是什么?
[`moderncv`](https://ctan.org/pkg/moderncv) 是一个专为简历和履历设计的 LaTeX 文档类。它提供一致、专业的布局,并给出一组高层宏来格式化常见简历元素:姓名、头衔、联系方式、章节标题以及工作与教育条目。相比手写 LaTeX,`moderncv` 自带成熟的布局体系和多种样式(如 `banking`、`classic`、`casual`),视觉层级很适合一页式简历。
一个典型的 `moderncv` 头部写法如下:
```latex
\name{}{Andy Dufresne}
\title{Software Engineer}
\phone[mobile]{+1 555 123 456}
\email{jane@example.com}
\homepage{https://example.com}
```
类文件会把这些命令渲染成整洁的头部。默认情况下,`moderncv` 还会在每个条目前显示图标,让联系方式更容易扫读。
## 2. moderncv 使用的图标库是什么?
`moderncv` 通过 [`fontawesome5`](https://ctan.org/pkg/fontawesome5) 包提供图标支持。[Font Awesome](https://fontawesome.com/) 是常见的图标库,`fontawesome5` 将其暴露为 LaTeX 命令,例如 `\faEnvelope`、`\faMobileAlt`、`\faGlobe`。在 `moderncv` 中,这些图标被封装进“符号”宏里,比如 `\emailsymbol` 和 `\homepagesymbol`。当你调用 `\email{...}` 或 `\homepage{...}` 时,类会先插入对应的符号宏,再显示具体内容。
由于图标被这些符号宏统一管理,你可以在不改动内容的前提下替换或移除图标。也就是说,内容与装饰是分离的,所以只需少量重定义就能获得更清爽的风格。
## 3. 如何在 moderncv 中隐藏图标
最简单的方式是把符号宏重定义为空字符串。LaTeX 的 `\renewcommand` 能让你替换已有宏的行为。如果你把每个 `moderncv` 符号宏都改成空值,文字还在,图标就消失了。
把下面这段最小化代码放在 preamble(加载 `moderncv` 之后):
```latex
% disable icons
\renewcommand*{\addresssymbol}{}
\renewcommand*{\mobilephonesymbol}{}
\renewcommand*{\fixedphonesymbol}{}
\renewcommand*{\faxphonesymbol}{}
\renewcommand*{\emailsymbol}{}
\renewcommand*{\homepagesymbol}{}
```
这正是 [YAMLResume](https://yamlresume.dev/) 的 `moderncv` 渲染器所使用的方案。在 YAMLResume [v0.10](/zh-cn/blog/v0.10) 中,LaTeX preamble 会在 `advanced` 配置下的 `showIcons` 选项为 `false` 时,[按需插入](https://github.com/yamlresume/yamlresume/commit/b53f73d9b4b04bf04b90236ef01da56062f8ca1f) 这些 `\renewcommand*` 行。这样就能在不改简历内容的情况下切换 PDF 输出是否显示图标。
这里是隐藏图标后的 moderncv 简历:
对应的 LaTeX 块如下:
如果你使用 YAMLResume,可以通过布局配置来控制,让渲染器自动注入这些覆盖规则。如果你手写 LaTeX,直接把代码贴进 preamble 即可。两种方式的结果一致:头部文字保留,图标被隐藏。
### 为什么这样有效
`moderncv` 为每个图标定义了一个宏。比如 `\emailsymbol` 用来显示邮箱图标。当你把它重定义为 `{}` 时,LaTeX 仍会展开这个宏,但不会输出任何内容。你并没有删除邮箱文本,只是去掉了前面的装饰。
### 补充:隐藏社交图标
如果你在自定义行里直接使用 `\faGithub` 或 `\faTwitter`,只要不调用这些命令,图标就不会出现。YAMLResume 的渲染器也是在插入社交图标前检查 `showIcons` 开关。思路一致:保留 `\href` 内容,省略图标前缀。
## 4. 什么是 \renewcommand 宏?
LaTeX 使用宏来定义命令的行为。`\newcommand` 用于创建新命令,而 `\renewcommand` 用于重定义已有命令。可以把它理解为“用新实现覆盖这个命令”。
语法如下:
```latex
\renewcommand{\commandname}{replacement}
```
带星号的 `\renewcommand*` 行为类似,但会禁止替换文本中出现段落换行。对于 `\emailsymbol` 这类短宏来说差异不大,但在类文件和模板中很常见。
在 `moderncv` 中,图标宏已经存在,因此必须用 `\renewcommand` 而不是 `\newcommand`。如果用 `\newcommand` 重新定义已存在的宏,LaTeX 会报错,所以补丁里写的是:
```latex
\renewcommand*{\emailsymbol}{}
```
这表示“把 `\emailsymbol` 的定义替换为空字符串”。类文件其余部分照常运行,因为 `\email{...}` 仍会正确展开,只是不会再加图标。
## 总结
* `moderncv` 是简历专用的 LaTeX 类,提供结构化宏和专业布局。
* 它通过 `fontawesome5` 包提供图标,并通过 `\emailsymbol`、`\homepagesymbol` 等符号宏显示。
* 通过 `\renewcommand*` 将这些符号宏设为空即可隐藏图标。
* `\renewcommand` 是 LaTeX 用来安全覆盖已有宏的机制。
如果你希望获得极简的纯文本头部,这种方法最稳妥,也很未来可扩展:以后换模板或新增字段时,只要按同样方式重定义对应符号宏即可。顺便说一句,`advanced.showIcons` 选项同时适用于 [HTML](/zh-cn/docs/layouts/html) 和 [LaTeX](/zh-cn/docs/layouts/latex) 引擎。
# YAMLResume v0.9: HTML 输出
URL: (/zh-cn/blog/html-output)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
我们很高兴地宣布发布 [YAMLResume v0.9](https://github.com/yamlresume/yamlresume/releases/tag/v0.9.0),引入了对 [HTML 输出](/docs/layouts/html)的一流支持。继我们带来 [Markdown 输出](/docs/layouts/markdown)的 [v0.8 版本](/blog/markdown-output)之后,我们现在又向前迈出了一大步,使您的简历数据真正多用途且原生于 Web。
使用 v0.9,您现在可以将 YAML 简历直接编译为独立的、响应式的 HTML 文件——非常适合托管在您的个人网站、GitHub Pages 或任何静态托管平台上。不再需要转换 PDF 或手动维护简历的单独 Web 版本。
目前,我们只为 HTML 布局提供一个模板——[calm](/docs/layouts/html/templates/calm) 模板,它受 moderncv LaTeX 模板的启发。它采用极简设计,具有清晰的章节分隔和针对 Web 查看优化的优雅布局。预览如下:
以下是如何使用 YAMLResume v0.9 生成 HTML 简历的快速演示:
[](https://asciinema.org/a/763505)
## 为什么选择 HTML?
当我们在 v0.8 中引入[多布局架构](/docs/layouts)时,我们设想了这样一个世界,您的单个 `resume.yml` 可以呈现为您需要的任何格式。我们从用于专业申请的 [LaTeX/PDF](/docs/layouts/latex) 和用于互操作性和 LLM 工作流的 [Markdown](/docs/layouts/markdown) 开始。现在,HTML 完成了必不可少的简历格式三部曲。
HTML 提供了独特的优势:
**Web 原生**:HTML 是 Web 的语言。您的简历成为互联网上的一等公民,而不仅仅是您必须嵌入或转换的文档。
**响应式设计**:与需要在移动设备上捏合和缩放的 PDF 不同,HTML 简历可以无缝适应任何屏幕尺寸——从桌面显示器到智能手机。
**SEO 友好**:搜索引擎可以索引您的 HTML 简历,使您的技能和经验可被发现。这对于仅 PDF 的简历是不可能的。
**交互式**:HTML 支持可点击链接、平滑滚动和其他交互元素,可增强静态文档之外的用户体验。
**零依赖**:HTML 输出是带有内联 CSS 的自包含文件。将其放在任何地方——S3、Netlify、GitHub Pages——它就能正常工作。
## 入门
如果您已安装 `yamlresume`(0.9.0 或更高版本),向简历添加 HTML 输出就像更新布局配置一样简单。
### 步骤 1:更新简历配置
将 HTML 布局添加到您的 `resume.yml`:
```yml lineNumbers
layouts:
- engine: latex
template: moderncv-banking
typography:
fontSize: 11pt
- engine: markdown
- engine: html #[! code highlight]
template: calm #[! code highlight]
typography: #[! code highlight]
fontSize: 16px #[! code highlight]
```
HTML 引擎支持可自定义的[排版](/docs/layouts/html#typography),字体大小范围从 14px 到 20px。默认的 `calm` 模板受流行的 LaTeX `moderncv` 包的启发,提供了干净、专业的外观。
### 步骤 2:构建简历
运行构建命令:
```console
$ yamlresume build my-resume.yml
✔ Generated resume tex file successfully: my-resume.tex
◐ Generating resume pdf file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume pdf file successfully: my-resume.pdf
✔ Generated resume markdown file successfully: my-resume.md
✔ Generated resume html file successfully: my-resume.html
```
就这样!您现在从单一的真实源文件获得了三个输出文件。
## Calm 模板
初始版本包括 `calm` 模板,这是一个精心设计的布局,平衡了专业性和可读性。该模板具有以下特点:
* **简洁排版**:针对屏幕和打印优化的字体大小和行高。
* **响应式布局**:自动从宽桌面屏幕适应到窄移动显示器。
* **语义 HTML**:使用正确的 HTML5 语义元素以获得更好的可访问性和 SEO。
* **打印友好**:虽然是为 Web 设计的,但模板包括打印样式,因此从浏览器保存为 PDF 时看起来很棒。
## 用例
### GitHub Pages
使用最少的配置将您的 HTML 简历部署到 GitHub Pages:
```yml
# .github/workflows/deploy.yml
name: Deploy Resume
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm install -g yamlresume
- run: yamlresume build resume.yml
- uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public
```
### 响应式作品集
将简历直接嵌入到作品集中。由于 HTML 是自包含的,您甚至可以将其嵌入 iframe 或提取样式以进行更深入的集成。
### 快速共享
通过电子邮件发送 HTML 文件或通过 Dropbox/Google Drive 共享。接收者可以在任何浏览器中打开它,而无需 PDF 阅读器或特殊软件。
## 技术架构
[HTML 渲染器](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/renderer/html/renderer.ts)采用与我们的 LaTeX/Markdown 引擎相同的严格工程标准构建。在底层:
1. **类型安全渲染**:渲染器用 TypeScript 编写,通过 [Zod 架构](/docs/compiler/schema/zod)实现完全的类型安全。
2. **模板系统**:模板是模块化和可扩展的。虽然我们最初使用 `calm` 进行发布,但架构支持多个模板。将来的模板可以轻松添加。
3. **CSS style**:我们使用 CSS Reset(基于 modern-normalize)和作用域模板样式的组合来确保跨浏览器的一致渲染。
4. **转义处理**:所有内容都经过[适当的 HTML 转义](https://github.com/yamlresume/yamlresume/blob/v0.9.1/packages/core/src/utils/string.ts#L34-L44),以防止注入漏洞并确保特殊字符正确呈现。
5. **全面测试**:HTML 渲染器包括超过 1,000 行的[测试用例](https://github.com/yamlresume/yamlresume/blob/v0.9.1/packages/core/src/renderer/html/renderer.test.ts),实现了 100% 的测试覆盖率并保证渲染器按预期工作。
## 比较:LaTeX vs Markdown vs HTML
让我们看看三个引擎的比较:
| 特性 | LaTeX (PDF) | Markdown | HTML |
| -------- | ----------- | ---------- | ---------- |
| **用例** | 求职申请 | AI/LLMs、内容 | Web 托管 |
| **格式** | 像素完美 | 极简 | 响应式 |
| **可移植性** | 通用 | 通用 | Web 原生 |
| **自定义** | 广泛 | 有限 | 增长中 |
| **文件大小** | \~50-200 KB | \~5-20 KB | \~20-50 KB |
| **依赖项** | LaTeX 工具链 | 无 | 无 |
| **交互式** | 否 | 否 | 是 |
| **SEO** | 否 | 发布时 | 是 |
| **响应式** | 否 | 取决于渲染器 | 是 |
每个引擎在其领域都表现出色。YAMLResume 架构的美妙之处在于您不必选择——从同一个源文件生成所有三个,并在最合适的地方使用它们。
## 接下来是什么?
v0.9 HTML 引擎奠定了坚实的基础,但我们对未来的增强有着雄心勃勃的计划:
### 更多模板
我们将添加具有不同设计美学的其他模板——极简主义、创意、企业等。想贡献模板吗?查看我们的[贡献指南](/docs/contributing)。
### 扩展自定义
未来版本将扩展排版选项以包括字体系列、配色方案和间距控制,让您可以更好地控制视觉呈现。
### 深色模式
使用 CSS 变量和 `prefers-color-scheme` 媒体查询的内置深色模式支持。
### 可访问性增强
虽然当前实现使用语义 HTML,但我们计划添加全面的ARIA 标签和键盘导航支持,以使简历对所有用户都可访问。
## 结论
YAMLResume v0.9 带来了 HTML 布局支持,完成了核心输出格式的三部曲。现在,从单个 `resume.yml` 文件,您可以生成:
* 通过 LaTeX 为求职申请生成专业 PDF
* 为 LLM 和内容工作流生成干净的 Markdown 文件
* 为 Web 托管和在线作品集生成响应式 HTML 页面
此版本强化了我们对"简历即代码"理念的承诺:一次编写,随处渲染。您的简历数据仍然是单一的真实来源,而输出只是为不同上下文优化的不同视图。
我们邀请您升级到 v0.9 并体验 Web 原生简历的灵活性:
```console
$ npm install -g yamlresume@latest
$ pnpm install -g yamlresume@latest
$ yarn global add yamlresume@latest
$ bun add -g yamlresume@latest
$ brew install yamlresume
```
有反馈或新模板的想法吗?加入 [GitHub](https://github.com/yamlresume/yamlresume/discussions) 上的讨论或在 [X/Twitter](https://x.com/xiaohanyu1988) 上联系我们。我们迫不及待地想看到您如何在工作流程中使用 HTML布局!
# 介绍 YAMLResume
URL: (/zh-cn/blog/introducing-yamlresume)
import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
每个开发者都需要一份简历,除非你是世界知名的专家。写简历可能并不困难,但绝对不有趣且很繁琐。许多人花费数天时间精心制作简历,追求 100% 无错字、语法检查过的专业布局和排版的简历。
[YAMLResume](https://yamlresume.dev) 允许你使用 [YAML](https://yaml.org/) 创建和版本控制你的简历,并轻松生成具有精美排版的专业外观 PDF。
它起初是 [PPResume](https://ppresume.com)——一个基于 [LaTeX](https://www.latex-project.org/) 的商业化像素完美简历构建器——的核心排版引擎,已经帮助成千上万的人创建了精美排版的简历。我们毫不犹豫地决定将其开源,这样人们就能永远拥有[拒绝供应商锁定](https://blog.ppresume.com/posts/no-vendor-lock-in)的权利。
## 快速开始
YAMLResume 提供了一个 [CLI 工具](https://www.npmjs.com/package/yamlresume),此外,它对排版引擎有强制依赖以生成 PDF。换句话说,如果你想生成 PDF,应该首先[安装排版引擎](/zh-cn/docs/installation#typesetting-engine)。
安装 `yamlresume` CLI 非常简单。你可以使用你喜欢的 Node.js 包管理器来安装它:
<>
```console
npm install -g yamlresume
```
```console
pnpm add -g yamlresume
```
```console
yarn global add yamlresume
```
```console
bun add -g yamlresume
```
>
验证 `yamlresume` 安装成功:
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build build a resume to LaTeX and PDF
languages i18n and l10n support
templates manage resume templates
help [command] display help for command
```
我们还建议你安装 [Linux Libertine](http://yamlresume.dev/zh-cn/docs/installation#linux-libertine) 字体以获得最佳的 PDF 外观。
最后但同样重要的是,如果你想创建 CJK 简历,我们还建议你安装 [Google Noto 字体](https://fonts.google.com/noto/)以获得[最佳的 Unicode 覆盖](https://github.com/ppresume/community/issues/63)。
### 创建新简历
你可以用一行命令创建一个新简历:
```console
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
在底层,`yamlresume new` 会从[这里](https://github.com/yamlresume/yamlresume/blob/main/packages/cli/resources/resume.yml)克隆一个示例简历。然后你可以再用一行命令生成 PDF:
```console
$ yamlresume build my-resume.yml
◐ Generating resume PDF with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume PDF successfully.
```
完成了!查看生成的简历 PDF:
你可以查看 [PPResume 画廊](https://ppresume.com/gallery)获取更多由 YAMLResume 作为排版引擎驱动的示例。
### 故障排除
YAMLResume CLI 提供了详细标志 `-v`/`--verbose` 来显示更详细的日志信息。如果你在构建简历时遇到问题,可以尝试使用此详细标志重新运行命令,并将输出粘贴到 [github issues](https://github.com/yamlresume/yamlresume/issues),我会查看并回复你。
## 它是如何工作的?
在底层,YAMLResume 就像一个迷你编译器,即它接受一个输入,将其解析为 [AST](https://en.wikipedia.org/wiki/Abstract_syntax_tree),然后生成输出。
YAMLResume 的核心设计原则是[关注点分离](https://en.wikipedia.org/wiki/Separation_of_concerns)。遵循这一原则的最著名例子之一是 HTML 和 CSS,它们是现代网络的基础——HTML 用于组织网页中的内容,CSS 用于定义内容的呈现样式。
遵循核心原则,YAMLResume 基于以下要求设计:
* 简历内容应该用纯文本编写,这样对版本控制友好
* 纯文本应该使用完全结构化的格式,这给我们更多的控制和灵活性
* YAML 比 JSON 更好,因为它更易于人类阅读和编写
* YAML 纯文本然后通过可插拔的排版引擎渲染成 PDF
* 应该提供开箱即用的主观布局,同时仍然允许人们相应地调整选项,如字体大小、页边距等
## 为什么选择 YAML?
[JSON Resume](https://jsonresume.org/) 是另一个允许人们以结构化格式创建简历的项目。然而,大多数开发者都会同意,在人类可读性和可写性方面,YAML 比 JSON 更好。例如,在 JSON 中表示多行字符串相当不方便,而 YAML 对此有原生支持。
比较 JSON 和 YAML 中的简历片段:
```json
{
"content": {
"basics": {
"name": "Andy Dufresne",
"headline": "Headed for the Pacific",
"phone": "(213) 555-9876",
"email": "hi@ppresume.com",
"url": "https://ppresume.com/gallery",
"summary": "- Computer Science major with strong foundation in data structures, algorithms, and software development\n- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites\n- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)\n- Team player, with detail-oriented mindset and a keen eye for design and user experiences"
}
}
}
```
```yml lineNumbers
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@ppresume.com
url: https://ppresume.com/gallery
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
```
哪个更易读和易写?答案是显而易见的。
JSON Resume 不关心简历的布局。在现实世界中,你不能直接向招聘人员发送 JSON 文件,对吧?结构化的简历格式需要转换为人类可读的文档格式,如 docx、PDF 等。YAMLResume 提供主观的布局配置,并保证像素完美的 PDF 输出。
在撰写本文时,YAMLResume 的主观布局支持:
* 区域语言
* 英语
* 简体中文
* 繁体中文
* 西班牙语
* 边距
* 顶部
* 左侧
* 右侧
* 底部
* 页码
* 模板
* 排版
* 字体大小
这是 YAMLResume 中布局配置的示例代码片段:
```yml lineNumbers
layout:
locale:
language: zh-cn
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
page:
showPageNumbers: true
template: moderncv-banking
typography:
fontSize: 11pt
```
## 为什么不用 Markdown?
[Markdown](https://en.wikipedia.org/wiki/Markdown) 是编写简历的另一个流行选择,也有一些简历构建器采用 markdown 作为主要输入格式。然而,markdown 是一种用于创建格式化文本的通用标记语言,而简历只使用非常有限的 markdown 功能集。
例如,以下 markdown 语法在简历中很不可能被使用:
* 引用块
* 代码块
* 水平线
* 图片
* 表格
* html 标记
* 等等
其次,markdown 过于灵活,经常给用户提供超出创建简历所需的自由度。要可靠地将通用 markdown 文档解析为简历将相当困难。
第三,模板切换、精确布局控制(如 LaTeX 中的 `\hfill` 和 `\hspace`)等功能在 markdown 中很难实现。
总之,使用完全结构化的格式如 YAML/JSON 为我们提供了对简历格式和布局的更多控制和可靠性。
## 为什么还是 LaTeX?
[LaTeX](https://www.latex-project.org/) 是一个非常成熟和稳定的排版引擎,可以产生极高质量的 PDF。然而,许多 LaTeX 用户,甚至 LaTeX 爱好者,都会同意 LaTeX 语言在某种程度上已经过时——它的错误消息通常相当令人困惑,对全局变量的依赖经常导致包之间的冲突,对大型文档的编译速度很慢且通常相当复杂,并且它会产生丑陋的中间文件(`.aux`、`.log` 等)。
有人建议用 [typst](https://github.com/typst/typst) 替换 LaTeX,这是一个现代的排版引擎,具有更好的开发体验和更快的编译速度。然而,经过仔细评估,我决定坚持使用 LaTeX。这里的决定因素是,YAMLResume 被设计为支持多语言且具有最佳的排版质量,然而,typst 的 [CJK 支持](https://blog.ppresume.com/posts/on-typesetting-engines#cjk-3)仍然不稳定且缺乏。
稍后我可能会添加一个新的[渲染器](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/renderer/base.ts)后端来支持 typst。
## 富文本支持
虽然我们决定不使用 markdown 作为简历输入格式,但我们确实支持各个章节中 `summary` 字段的有限 markdown 富文本语法集。
目前,我们支持以下 markdown 语法:
* `**粗体**`
* `*斜体*`
* `[链接](https://www.google.com)`
* 有序列表
* 无序列表
* 嵌套列表
* 段落
例如,这是 `content.basics.summary` 字段的示例片段:
```yml lineNumbers
---
content:
basics:
# ...
summary: |
This is a sample YAML resume that support limited set of markdown rich text syntax (bold, italics, links, lists):
- Computer Science major with **strong foundation** in data structures, *algorithms*, and software development
1. Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
2. Experiened in databases (SQL, NoSQL), familiar with server-side technologies ([Node.js](https://nodejs.org/en), Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
```
这是生成的 PDF:
你可以看到富文本语法被正确渲染,包括粗体、斜体、链接、列表,相当不错,对吧?
## 路线图
总的来说,该项目仍处于非常早期的阶段,我们还有很长的路要走。我已经计划了近期要做的功能列表:
1. 更多语言,日语、德语、法语等
2. 更多模板
3. [节别名](https://github.com/yamlresume/yamlresume/issues/11)
4. [节重排序](https://github.com/yamlresume/yamlresume/issues/12)
5. [模式验证](https://github.com/yamlresume/yamlresume/issues/10)
如有任何问题,你可以:
* 提出 [issue](https://github.com/yamlresume/yamlresume/issues/)
* 开启 [讨论](https://github.com/yamlresume/yamlresume/discussions)
* 留言 [消息](https://discord.gg/9SyT7mVV4K)
敬请期待!
# YAMLResume v0.8: Markdown 输出
URL: (/zh-cn/blog/markdown-output)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
我们非常激动地宣布 [YAMLResume v0.8](https://github.com/yamlresume/yamlresume/releases/tag/v0.8.0) 的发布,这是我们让“Resume as Code”成为全球开发者和专业人士标准之旅中的一个重要里程碑。
自成立以来,YAMLResume 一直专注于一个内核使命:允许您以干净、版本控制友好的 YAML 格式编写简历,并将其编译为排版精美、像素完美的 PDF。虽然 PDF 仍然是求职的黄金标准,但我们意识到我们的用户经常需要其他格式的简历数据——用于个人网站、粘贴到申请人跟踪系统 (ATS),甚至用于输入大型语言模型 (LLM) 进行优化。
在 v0.8 中,我们引入了一个强大的新架构:[多布局](/zh-cn/docs/layouts),随之而来的是对 [Markdown 输出](/zh-cn/docs/layouts/markdown)的一流支持。
TL;DR,快速演示:
[](https://asciinema.org/a/759578)
## 带布局的 YAMLResume
在 YAMLResume 的早期版本中,编译流程是线性且单一的。您提供一个 YAML 文档,引擎吐出一个 PDF。如果您想要不同的[模板](/zh-cn/docs/layouts/latex#templates),您需要更改 `layout.template` 字段。如果您想要不同的字体大小,您需要微调[排版](/zh-cn/docs/layouts/latex#typography)设置。但最终,目的地始终是通过 [LaTeX](/zh-cn/docs/layouts/latex) 引擎生成的 PDF 文档。
这虽然有效,但也存在局限性。如果您想生成一份 PDF 通过电子邮件发送给招聘人员,同时也需要一份纯文本版本用于旧版表格怎么办?如果您想要一份 [Markdown](/zh-cn/docs/layouts/markdown) 版本发布在您的 [Hugo](https://gohugo.io/) 或 [Next.js](https://nextjs.org/) 博客上怎么办?
在 v0.8 中,我们完全重新设计了[布局架构](/zh-cn/docs/compiler/schema/zod#layoutsschema)以支持[多布局](/zh-cn/docs/layouts)。现在,您可以在简历的 YAML 文档中定义一个布局列表,而不是单一的一组输出设置。每个布局指定一个 `engine`(如 `latex` 或 `markdown`)及其特定的配置选项。
这意味着只需一个 [`yamlresume build`](/zh-cn/docs/cli#build) 命令现在可以同时生成多个工件——PDF、Markdown 文档,未来还会有 HTML 或 docx 文档。这遵循了“单一事实来源”原则:您的 `resume.yml` 仍然是单一的事实来源,而输出只是为不同交付渠道量身定制的衍生表示。
这是新配置在您的 YAML 文档中的样子:
```yml lineNumbers
# Multiple output layouts configuration
layouts:
- engine: latex
page:
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
showPageNumbers: true
template: moderncv-banking
typography:
fontSize: 11pt
- engine: markdown
```
如您所见,我们在这里定义了两个布局。第一个使用 [`latex`](/zh-cn/docs/layouts/latex) 引擎(我们经典的 PDF 生成器),带有特定的模板、页边距和排版设置等。第二个使用新的 [`markdown`](/zh-cn/docs/layouts/markdown) 引擎。这种方法的美妙之处在于,您可以根据需要添加或删除布局,而无需触及简历的实际内容。
## Markdown 作为新的输出
为什么是 Markdown?Markdown 已成为开发者世界的通用语言。它轻量、可读且受到普遍支持。通过添加 Markdown 作为输出目标,YAMLResume 弥合了正式简历文档与灵活、网络优先的世界之间的鸿沟。
让我们看看实际操作。如果您安装了 `yamlresume`(版本 0.8.0 或更高),您只需两个命令即可生成新简历并进行构建。
### 第一步:创建新简历
首先,让我们使用 [CLI](/zh-cn/docs/cli) 生成一个样板简历:
```console
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
这将创建一个带有默认配置的 `my-resume.yml` 文档,该文档现在默认包含 [LaTeX](/zh-cn/docs/layouts/latex) 和 [Markdown](/zh-cn/docs/layouts/markdown) 布局。
这是生成的 `my-resume.yml` 文档的内容——您可以忽略 `content`,直接看最后一行以查看 `markdown` 布局配置:
```yml lineNumbers
---
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@ppresume.com
url: https://ppresume.com/gallery
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
city: Sacramento
region: California
country: United States
postalCode: "95814"
profiles:
- network: Line
url: https://line.com/PPResumeX
username: PPResumeX
- network: Twitter
url: https://twitter.com/PPResumeX
username: PPResumeX
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
startDate: Sep 1, 2016
endDate: Jul 1, 2020
courses:
- Discrete Methods in Computer Science
- Programming Language Concepts
- Data Structures and Object-Oriented Design
- Operating Systems
- Computer Architecture
- Database Systems
- Computer Networking
- Introduction to the Theory of Computing
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
work:
- name: PPResume
url: https://ppresume.com
startDate: Dec 1, 2022
endDate:
position: Senior Software Engineer
summary: |
- Developed and implemented efficient and scalable code, ensuring high-quality and maintainable web applications
- Collaborated with cross-functional teams to gather project requirements and translate them into technical solutions
- Conducted thorough testing and debugging to identify and resolve any issues or bugs in the software
- Actively participated in code reviews, providing valuable feedback to improve code quality and adherence to best practices
- Mentored and guided junior developers, fostering a collaborative and growth-oriented team environment
keywords:
- Scalability
- Growth
- Quality
- Mentorship
- name: PPResume
url: https://ppresume.com
startDate: Sep 1, 2020
endDate: Dec 1, 2022
position: Software Engineer
summary: |
- Created reusable React components to ensure code efficiency and maintainability
- Integrated with RESTful APIs to fetch and display dynamic data on the frontend
- Implemented client-side routing using React Router for smooth navigation between pages
- Actively participated in Agile development methodologies, attending daily stand-up meetings and sprint planning sessions
keywords:
- RESTful
- React
- Agile
languages:
- language: English
fluency: Native or Bilingual Proficiency
keywords:
- TOEFL 110
- IELTS 7.5
- language: Chinese
fluency: Elementary Proficiency
keywords: []
skills:
- name: Web Development
level: Expert
keywords:
- Python
- Ruby
- CSS
- React
- JavaScript
- name: DevOps
level: Intermediate
keywords:
- Python
- Kubernetes
- Docker
- Shell
- Ansible
- name: Design
level: Intermediate
keywords:
- Sketch
- Figma
- Photoshop
awards:
- title: Dean's List
awarder: University of Southern California
date: Oct 2016
summary: |
Awarded to students who achieve a high academic standing by maintaining a specified grade point average (GPA) during a semester.
certificates:
- name: AWS Certified Developer - Associate
url: https://aws.amazon.com/certification/
issuer: AWS
date: Mar 2021
publications:
- publisher: ACM Transactions on Interactive Intelligent Systems
url: https://dl.acm.org/journal/tiis
name: Enhancing Human-Computer Interaction through Augmented Reality
releaseDate: Dec 2017
summary: |
- Explores the potential of augmented reality (AR) in improving interaction between humans and computers
- Highlights benefits of AR in various areas such as gaming, education, healthcare, and design
- Discusses challenges and future directions of AR technology in enhancing user experience
references:
- name: Dr. Amanda Reynolds
phone: "(555) 123-4567"
relationship: Computer Science Professor
email: amanda.reynolds@usc.edu
summary: |
Andy Dufresne shows exceptional problem-solving skills and a solid understanding of programming concepts, he would bring immense value to any team or organization he becomes a part of.
projects:
- name: EduWeb
url: https://www.eduweb.xyz/
description: A web-based educational platform for interactive learning
startDate: Sep 2016
endDate: Dec 2016
summary: |
- Designed to enhance online learning experiences
- Facilitates students' engagement and collaboration through interactive features and user-friendly interface
- Offers a wide range of courses across various subjects
- Aims to improve the way students learn through the power of the web
keywords:
- Education
- Online Learning
- HCI
interests:
- name: Sports
keywords:
- Soccer
- Swimming
- Bicycling
- Hiking
- name: Music
keywords:
- Piano
- Guitar
volunteer:
- organization: USC Computer Science and Engineering Society
url: https://www.usccsesociety.org/
position: Tech Mentor
startDate: Sep 2015
endDate: Jul 2023
summary: |
- Volunteered as a Tech Mentor at USC Computer Science and Engineering Society
- Provided guidance and assistance to fellow students in their technical projects and coursework
- Assisted in organizing workshops, coding competitions, and networking events for the society members
- Contributed to fostering a collaborative and supportive environment within the student community
locale:
language: en
layouts:
- engine: latex
page:
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
showPageNumbers: true
template: moderncv-banking
typography:
fontSize: 11pt
- engine: markdown #[!code highlight]
```
### 第二步:构建简历
现在,运行构建命令:
```console lineNumbers
$ yamlresume build my-resume.yml
✔ Generated resume tex file successfully: my-resume.tex
◐ Generating resume pdf file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume pdf file successfully: my-resume.pdf
✔ Generated resume markdown file successfully: my-resume.md
```
注意最后一行:
`✔ Generated resume markdown file successfully: my-resume.md`。CLI 已自动检测到您 YAML 配置中的 [`markdown`](/zh-cn/docs/layouts/markdown) 布局,并生成了相应的 `.md` 文档以及 PDF。
### 结果 Markdown
让我们看看生成的 `my-resume.md`。引擎使用标准语法标题、列表和链接,智能地将您的结构化 YAML 数据转换为干净、格式良好的 Markdown 文档。
```markdown lineNumbers
# Andy Dufresne
Headline: Headed for the Pacific
- Email: hi@ppresume.com
- Phone: (213) 555-9876
- URL: https://ppresume.com/gallery
Location: 123 Main Street, Sacramento, California, United States, 95814
Profiles:
- Line: [@PPResumeX](https://line.com/PPResumeX)
- Twitter: [@PPResumeX](https://twitter.com/PPResumeX)
## Basics
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
## Education
### University of Southern California
Bachelor, Computer Engineering and Computer Science, Score: 3.8, Sep 2016–Jul 2020
URL: https://www.cs.usc.edu/
Courses: Discrete Methods in Computer Science, Programming Language Concepts, Data Structures and Object-Oriented Design, Operating Systems, Computer Architecture, Database Systems, Computer Networking, Introduction to the Theory of Computing
Summary:
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
## Work
### Senior Software Engineer
PPResume, Dec 2022–Present
URL: https://ppresume.com
Keywords: Scalability, Growth, Quality, Mentorship
Summary:
- Developed and implemented efficient and scalable code, ensuring high-quality and maintainable web applications
- Collaborated with cross-functional teams to gather project requirements and translate them into technical solutions
- Conducted thorough testing and debugging to identify and resolve any issues or bugs in the software
- Actively participated in code reviews, providing valuable feedback to improve code quality and adherence to best practices
- Mentored and guided junior developers, fostering a collaborative and growth-oriented team environment
### Software Engineer
PPResume, Sep 2020–Dec 2022
URL: https://ppresume.com
Keywords: RESTful, React, Agile
Summary:
- Created reusable React components to ensure code efficiency and maintainability
- Integrated with RESTful APIs to fetch and display dynamic data on the frontend
- Implemented client-side routing using React Router for smooth navigation between pages
- Actively participated in Agile development methodologies, attending daily stand-up meetings and sprint planning sessions
## Languages
- English: Native or Bilingual Proficiency, Keywords: TOEFL 110, IELTS 7.5
- Chinese: Elementary Proficiency
## Skills
- Web Development: Expert, Keywords: Python, Ruby, CSS, React, JavaScript
- DevOps: Intermediate, Keywords: Python, Kubernetes, Docker, Shell, Ansible
- Design: Intermediate, Keywords: Sketch, Figma, Photoshop
## Awards
### Dean's List
University of Southern California, Oct 2016
Summary:
Awarded to students who achieve a high academic standing by maintaining a specified grade point average (GPA) during a semester.
## Certificates
### AWS Certified Developer - Associate
AWS, Mar 2021
URL: https://aws.amazon.com/certification/
## Publications
### Enhancing Human-Computer Interaction through Augmented Reality
ACM Transactions on Interactive Intelligent Systems, Dec 2017
URL: https://dl.acm.org/journal/tiis
Summary:
- Explores the potential of augmented reality (AR) in improving interaction between humans and computers
- Highlights benefits of AR in various areas such as gaming, education, healthcare, and design
- Discusses challenges and future directions of AR technology in enhancing user experience
## References
### Dr. Amanda Reynolds
Computer Science Professor, amanda.reynolds@usc.edu, (555) 123-4567
Summary:
Andy Dufresne shows exceptional problem-solving skills and a solid understanding of programming concepts, he would bring immense value to any team or organization he becomes a part of.
## Projects
### EduWeb
A web-based educational platform for interactive learning, Sep 2016–Dec 2016
URL: https://www.eduweb.xyz/
Keywords: Education, Online Learning, HCI
Summary:
- Designed to enhance online learning experiences
- Facilitates students' engagement and collaboration through interactive features and user-friendly interface
- Offers a wide range of courses across various subjects
- Aims to improve the way students learn through the power of the web
## Interests
- Sports: Soccer, Swimming, Bicycling, Hiking
- Music: Piano, Guitar
## Volunteer
### USC Computer Science and Engineering Society
Tech Mentor, Sep 2015–Jul 2023
URL: https://www.usccsesociety.org/
Summary:
- Volunteered as a Tech Mentor at USC Computer Science and Engineering Society
- Provided guidance and assistance to fellow students in their technical projects and coursework
- Assisted in organizing workshops, coding competitions, and networking events for the society members
- Contributed to fostering a collaborative and supportive environment within the student community
```
## Markdown 的好处
您可能会想,“我已经有了一个漂亮的 PDF,为什么还需要 Markdown 版本?”拥有结构化的纯文本简历表示的好处是巨大的,尤其是在现代 AI 驱动的世界中。
### 1. 对 LLM 友好
这也许是当今最重要的优势。我们生活在大型语言模型 (LLM) 的时代。像 ChatGPT、Claude 和 Gemini 这样的工具在分析文本方面非常出色,但它们在处理二进制 PDF 文档或复杂的 LaTeX 源代码时可能会遇到困难。
通过生成干净的 Markdown 版本简历,您就拥有了 LLM 的完美输入。您可以将 `resume.md` 拷贝粘贴到 ChatGPT 中并要求它:
* “根据这份职位描述调整我的简历……”
* “批评我的总结部分并提出改进建议……”
* “提取我的关键技能并将其格式化为求职信……”
因为 Markdown 是语义结构的(标题、列表、粗体文本),LLM 可以比原始文本或 PDF 转换更好地“理解”您简历的层次结构和内容。
### 2. 互操作性和网络发布
Markdown 是网络的原生内容格式。如果您有一个用 Next.js、Hugo、Jekyll 或 Gatsby 构建的个人作品集或博客,您可以直接将 `resume.md` 放入您的内容文档夹中。
使用新的 Markdown 输出,您可以自动化您的个人品牌工作流程:
1. 使用您最新的工作或项目更新您的 `resume.yml`。
2. 运行 `yamlresume build`。
3. 生成的 `resume.pdf` 用于您的下载链接。
4. 生成的 `resume.md` 更新您网站上的“关于我”页面。
不再需要手动拷贝粘贴或维护两个单独的简历版本。
### 3. 人类可读性和 Git 差异
虽然 YAML 具有可读性,但 Markdown 对于长文本来说更具可读性。它是一个很好的中间格式,可以在没有 YAML 语法或 LaTeX 命令“噪音”的情况下审查您的内容。
此外,由于输出是确定性的纯文本,您可以轻松地在 Git 中跟踪更改。如果您更改了职位描述,`resume.md` 中的差异将清楚地显示文本更改,这对于同行评审(例如,在 GitHub Pull Request 中)比尝试对二进制 PDF 进行差异比较要友好得多。
### 4. 通用可移植性
Markdown 可以使用 [Pandoc](https://pandoc.org/) 等工具轻松转换为几乎任何其他文档格式。需要一个 `.docx` 文档给坚持使用 Word 的招聘人员吗? `pandoc resume.md -f gfm -o resume.docx`。需要一个 HTML 片段吗? `pandoc resume.md -f gfm -o resume.html`。Markdown 输出作为一个多功能的“枢纽”格式,解锁了与整个文档生态系统的兼容性。
## 下一步:HTML 布局
布局系统和 Markdown 引擎的引入仅仅是开始。我们正在积极开发 [HTML 布局引擎](https://github.com/yamlresume/yamlresume/issues/45)。
想象一下运行 `yamlresume build` 并获得一个完全响应式、SEO 优化、独立的 HTML 文档,它看起来像您的 PDF 一样好,但是是浏览器原生的。这将允许您将简历作为简单的静态页面托管在 GitHub Pages、Vercel 或 Netlify 上,且零开销。
HTML 布局将支持:
* 移动查看的响应式设计(无需在手机上捏合和缩放 PDF)。
* 根据您的简历内容自动生成的 SEO 元数据。
* 通过 CSS 变量支持主题。
* 交互式元素(例如,可点击的项目链接、可折叠部分)。
我们相信您的简历数据属于您,您应该能够以最适合您需求的格式呈现它——无论是用于打印的像素完美 PDF、用于 AI 的干净 Markdown 文档,还是用于网络的响应式 HTML 页面。
## 结论
YAMLResume v0.8 是灵活性迈出的一大步。通过将内容 (YAML) 从演示 (Layouts) 中分离出来,我们正在赋能开发者以新的和创造性的方式使用他们的简历数据。
我们邀请您升级到 v0.8,将 `markdown` 引擎添加到您的布局中,并体验在您需要时以您需要的格式提供简历的自由。
试一试:
```console lineNumbers
$ npm install -g yamlresume@latest
$ pnpm install -g yamlresume@latest
$ yarn global add yamlresume@latest
$ bun add -g yamlresume@latest
$ brew install yamlresume
```
# YAMLResume v0.6: 章节自定义
URL: (/zh-cn/blog/section-customization)
YAMLResume [v0.6](https://github.com/yamlresume/yamlresume/releases/tag/v0.6.0) 已经发布,它带来了两个强大的功能来定制您简历的结构:[章节别名](/zh-cn/docs/layouts/sections/aliases) 和 [章节重排](/zh-cn/docs/layouts/sections/reorder)。这些功能允许您重命名章节标题并控制它们在最终 PDF 中的顺序,为您提供更大的灵活性来定制您的简历。
让我们深入了解它们的工作原理。
## 章节别名
YAMLResume 中的默认章节标题(例如,`education`、`work`)会根据您选择的[区域语言](/zh-cn/docs/layouts#locale)自动[翻译](/zh-cn/docs/layouts/sections/docs/locale)。但是,您可能更喜欢不同的标题。例如,您可能希望将"工作"更改为"专业经验"。
要定义别名,请在您的 `resume.yml` 中使用 `layout.sections.aliases` 映射。
```yml lineNumbers title="resume.yml"
---
content:
# ...
layout: # [!code focus]
sections: # [!code focus]
aliases: # [!code focus]
work: 专业经验 # [!code focus]
education: 学术背景 # [!code focus]
skills: 技术技能 # [!code focus]
```
## 章节重排
默认情况下,章节按照[标准顺序](/zh-cn/docs/layouts/sections/reorder#default-section-order)渲染。`layout.sections.order` 功能让您更改此序列,以首先突出显示您最重要的信息。
例如,要将您的"技能"和"项目"章节放在"工作"经验之前,您可以这样定义顺序:
```yml lineNumbers title="resume.yml"
---
content:
# ...
layout: #[!code focus]
sections: #[!code focus]
order: #[!code focus]
- skills #[!code focus]
- projects #[!code focus]
- work #[!code focus]
```
`order` 列表中的章节将首先出现,然后是其余章节按默认顺序排列。
## 综合应用:完整示例
让我们创建一个使用这两个功能的一页简历。我们将同时为某些章节设置别名和重排。
```yml lineNumbers title="resume.yml"
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
---
layout:
sections: # [!code highlight]
aliases: # [!code highlight]
work: Professional Experience # [!code highlight]
education: Academic Background # [!code highlight]
skills: Technical Skills # [!code highlight]
order: # [!code highlight]
- basics # [!code highlight]
- work # [!code highlight]
- education # [!code highlight]
- skills # [!code highlight]
template: moderncv-banking
typography:
fontSize: 11pt
content:
basics:
name: Jane Doe
headline: Senior Software Engineer
email: jane.doe@example.com
phone: "555-123-4567"
summary: |
A passionate and experienced software engineer with a proven track record
of designing, developing, and deploying robust web applications. Skilled
in both front-end and back-end development, with a keen eye for detail and
a dedication to writing clean, efficient code.
education:
- institution: Tech University
area: Software Engineering
degree: Master
startDate: 2018-09-01
endDate: 2020-06-01
summary: Specialized in distributed systems and cloud computing.
- institution: State University
area: Computer Science
degree: Bachelor
startDate: 2014-09-01
endDate: 2018-06-01
summary: |
- Graduated with honors.
- Focused on algorithms, data structures, and distributed systems.
courses:
- Data Structures & Algorithms
- Operating Systems
- Computer Networks
- Database Systems
work:
- name: Tech Solutions Inc.
position: Senior Software Engineer
startDate: 2020-07-01
summary: |
- Led the development of a new microservices-based architecture, improving system scalability and reliability.
- Mentored junior engineers, providing guidance on best practices and code quality.
- Optimized application performance, reducing API response times by 30%.
- name: Innovate Corp.
position: Software Engineer
startDate: 2018-07-01
endDate: 2020-06-30
summary: |
- Developed and maintained features for a large-scale e-commerce platform using React and Node.js.
- Collaborated with product managers and designers to deliver high-quality user experiences.
- Participated in on-call rotation to ensure application stability.
- name: Data Systems LLC
position: Software Engineer Intern
startDate: 2017-06-01
endDate: 2017-08-31
summary: |
- Assisted in the development of a data processing pipeline.
- Wrote unit tests to ensure code quality.
- Gained experience with Agile development methodologies.
skills:
- name: Programming Languages
level: Expert
keywords:
- JavaScript (ES6+)
- TypeScript
- Python
- Go
- name: Technologies & Frameworks
level: Advanced
keywords:
- React
- Node.js
- Express
- Docker
- Kubernetes
- PostgreSQL
- name: Developer Tools
level: Advanced
keywords:
- Git & GitHub
- Webpack
- Jest
- CircleCI
languages:
- language: English
fluency: Native or Bilingual Proficiency
- language: Spanish
fluency: Limited Working Proficiency
```
在这里,我们为 `work`、`education` 和 `skills` 章节设置了别名,并通过将 `work` 的优先级高于 `education`,然后是 `skills` 章节来重排章节:
现在,让我们构建简历:
```bash
yamlresume build resume.yml
```
您将得到一个包含以下内容的 PDF 文件——我突出了自定义章节:
太好了,它按预期工作!这不是很酷吗?
## 总结
通过章节别名和重排,您现在可以精细控制简历的结构。我们希望这些功能帮助您创建更加个性化和有效的简历。
章节自定义的最佳方面是,您总是可以[扩展 YAMLResume 的 i18n 能力以支持更多语言](/zh-cn/docs/layouts/sections/reorder#default-section-order)。默认情况下,默认章节标题将根据目标区域语言(通过 `layout.locale.language` 设置)自动翻译。但是,总是有 YAMLResume [尚未支持您的目标语言](https://github.com/yamlresume/yamlresume/discussions/36) 的情况,因此您可以用自己的标题覆盖默认章节标题。
同时,不同背景的人对章节顺序有不同的偏好。例如,寻找行业工作的候选人可能会将 `work` 排在 `education` 前面,而寻找学术职位的博士后研究人员会将 `education` 排在 `work` 前面。
希望您喜欢这些新功能!
# YAMLResume v0.10: VS Code 模板与荷兰语支持
URL: (/zh-cn/blog/v0.10)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
我们很高兴地宣布 [YAMLResume v0.10](https://github.com/yamlresume/yamlresume/releases/tag/v0.10.0) 正式发布。此版本专注于通过开发者最爱的主题扩展我们的布局生态系统,扩大我们的国际化支持,并增加对文档格式的精细控制。
## 新 HTML 模板: VS Code
对于开发者来说,代码编辑器就是你的家。现在,你的简历也可以让你感到同样亲切。我们为 HTML 引擎推出了一款全新的 [VS Code 模板](/docs/layouts/html/templates/vscode),其深色主题灵感源自 Visual Studio Code 的 "Dark+" 配色方案。
它的特点是采用语法高亮美学——将你的姓名视为类(class),将你的技能视为对象(object),将你的经历视为函数(function)。要使用它,只需更新你的布局配置:
```yml lineNumbers
layouts:
- engine: html
template: vscode #[!code highlight]
```
这款模板非常适合软件工程师、DevOps 专业人士以及任何想要立即展现其技术背景的人。
## 荷兰语支持
YAMLResume 在全球范围内持续发展。感谢 [MattiaPun](https://github.com/MattiaPun) 的贡献,我们现在支持 [荷兰语 (nl)](/docs/locale/dutch)!
这使我们支持的语言数量达到了六种:
* [英语 (en)](/docs/locale/english)
* [中文 (zh)](/docs/locale/chinese)
* [西班牙语 (es)](/docs/locale/spanish)
* [法语 (fr)](/docs/locale/french)
* [挪威语 (no)](/docs/locale/norwegian)
* [荷兰语 (nl)](/docs/locale/dutch)
要生成荷兰语简历,请在你的 `resume.yml` 中设置语言:
```yml lineNumbers
locale:
language: nl
```
这将自动翻译章节标题(例如 "Werkervaring"、"Opleidingen")、日期格式和国家名称。
## LaTeX 纸张大小支持
我们为 LaTeX/PDF 引擎增加了对纸张大小的显式控制。虽然 A4 是世界许多地区的标准,但 US Letter 对于北美地区至关重要。
你现在可以直接在配置中指定首选的纸张大小:
```yml lineNumbers
layouts:
- engine: latex
page:
# 选项: 'a4' (默认) 或 'letter'
paperSize: letter #[!code highlight]
```
这确保了无论你身处哪个地区,你的 PDF 简历都能完美打印。特别感谢 [djryanj](https://github.com/djryanj) 推动了这一功能的实现!
## 开关图标
有时少即是多。虽然图标可以增加视觉吸引力,但在某些正式场景或针对 ATS(候选人跟踪系统)的语境下,可能需要更严格的纯文本展示。
我们在 HTML 和 LaTeX 引擎的 `advanced` 设置下引入了 `showIcons` 选项。这让你能够灵活地开启或关闭联系信息和社交主页的图标。
```yml lineNumbers
layouts:
- engine: html
advanced:
showIcons: false #[!code highlight]
- engine: latex
advanced:
showIcons: false #[!code highlight]
```
## 结语
YAMLResume v0.10 旨在为你提供更多选择——从简历的外观到如何符合你当地的标准。
今天就升级以探索新功能:
```console
$ npm install -g yamlresume@latest
# 或者
$ brew upgrade yamlresume
```
一如既往,我们欢迎你在 [GitHub](https://github.com/yamlresume/yamlresume) 上提出建议和贡献。祝简历制作愉快!
# YAMLResume v0.5: 简历编译器
URL: (/zh-cn/blog/yamlresume-compiler)
我们非常兴奋地宣布 [YAMLResume v0.5](https://github.com/yamlresume/yamlresume/releases/tag/v0.8.1) 的发布,这是一个重要的里程碑,将 YAMLResume 从一个简单工具转变为一个成熟的**简历编译器**。此版本引入了强大的架构、强大的模式验证和增强的 CLI,使您的简历创建过程更加可靠、高效且无错误。
## 手动简历编写的问题
起草简历通常是一个繁琐且容易出错的过程。无论您使用的是文字处理器还是简单的标记语言,都容易出错:
* 关键字段如 `degree` 或 `fluency` 中的拼写错误。
* 格式不正确的电子邮件地址或 URL。
* 不一致的日期格式。
* 忘记求职申请所需的字段。
这些小的错误可能导致编辑、生成和校对的无休止循环。核心问题是缺乏一个系统来在最终文档生成之前强制执行结构和验证数据。
## 解决方案:简历编译器
受编程语言编译器的启发,[YAMLResume v0.5](https://github.com/yamlresume/yamlresume/releases/tag/v0.8.1) 引入了新的编译器架构,将您的简历源文件(YAML 格式)视为代码。然后这个"代码"通过管道处理,产生一个精美的专业 PDF。
这个新架构定义了两个核心组件:
1. 简历的[标准数据格式](/zh-cn/docs/compiler/types),以及用于验证数据的[模式](/zh-cn/docs/compiler/schema)。
2. 实现数据格式和模式验证的参考[编译器](/zh-cn/docs/compiler)。
这种方法带来了几个关键优势:
* **关注点分离**:您只专注于简历的**内容**。编译器处理**呈现**——布局、排版和格式。
* **早期错误检测**:编译器根据预定义模式验证您的简历,立即捕获错误并提供清晰、可操作的反馈。
* **一致性和可靠性**:通过强制执行标准结构,编译器确保您的简历数据始终一致,并准备好用于任何模板。
### 实际演示
例如,考虑以下包含几个常见错误的简历:
```yml lineNumbers title="invalid-resume.yml"
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
---
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@pp # [!code highlight]
url: https//ppresume.com/gallery # [!code highlight]
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
region: California
city: S # [!code highlight]
country: United States
postalCode: "95814"
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
startDate: Sep 1, 2016
endDate:
courses:
- D # [!code highlight]
- Programming Language Concepts
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
layout:
typography:
fontSize: 13pt # [!code highlight]
```
我们有几个问题:
1. `email: hi@pp` - 格式无效
2. `url: https//ppresume.com/gallery` - 协议部分缺少 `:`
3. `city: S` - 太短,应该是 2 个字符或更多,世界上有名字只有 1 个字符的城市吗?
4. `- D` - 第一门课程太短,应该是 2 个字符或更多
5. `fontSize: 13pt` - 应该是 10pt、11pt 或 12pt,13pt 太大,在简历起草场景中意义不大
这些错误,以前可能被忽视,现在可以立即捕获。您可以运行 `yamlresume validate my-resume.yml` 或简单地运行 `yamlresume build my-resume.yml`。YAMLResume 将以广泛采用的[clang 风格错误格式](https://clang.llvm.org/diagnostics.html)报告所有问题,允许您在生成最终 PDF 之前修复它们。
## 编译器的核心:模式
此新版本的基石是 **[YAMLResume 模式](/zh-cn/docs/compiler/schema)**。我们提供了一个全面的模式,定义了您简历中每个数据片段的结构和规则。
我们为此使用两种强大的技术:
* **[Zod](https://zod.dev)**:用于编译器内的运行时验证,提供强大的安全网和详细的错误消息。
* **[JSON Schema](https://json-schema.org)**:用于编辑器和 IDE 集成。通过在您的 YAML 文件中添加一行,您就可以在编辑器中解锁自动完成、悬停属性文档和实时格式验证。
如果您有在 v0.5 之前创建的简历,您仍然可以利用模式验证。只需在您的简历文件中添加以下行,并为您的编辑器安装 [YAML 语言服务器](https://github.com/redhat-developer/yaml-language-server)。
```yml lineNumbers
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
```
这种集成提供了一系列好处,极大地改善了简历编写体验:
### 自动完成
减少查找字段名称的时间。您的编辑器会在您输入时建议有效属性,确保您每次都使用正确的字段。
### 实时格式验证
在错误发生时捕获它们。模式验证提供即时反馈,从简单的拼写错误到不正确的电子邮件格式或缺少必需字段。
如果缺少必需键,警告会升级到其父对象,使其易于发现和修复。
### 内联属性文档
不再猜测字段的作用。悬停在任何属性上即可获得即时文档,解释其用途、预期格式和允许值。
## 增强的 CLI
`yamlresume` [CLI](/zh-cn/docs/cli) 现在比以往更强大。[构建](/zh-cn/docs/cli#build) 命令运行整个编译器管道,从验证到 PDF 生成,而新的 [验证](/zh-cn/docs/cli#validate) 命令让您无需构建即可检查简历。
[](https://asciinema.org/a/728098)
这种无缝工作流程转变了您的简历创建过程,使其更高效、更可靠,同时最小化错误。
## 这对您意味着什么
通过 [YAMLResume v0.5](https://github.com/yamlresume/yamlresume/releases/tag/v0.8.1),您可以:
* **自信地编写**:知道您的简历结构是健全的,数据是有效的。
* **节省时间**:早期捕获错误并消除繁琐的校对循环。
* **保持灵活性**:在不同简历模板之间轻松切换。
* **享受更好的编辑体验**:在您喜欢的编辑器中获得实时反馈和自动完成。
我们邀请您体验新 YAMLResume 编译器的强大功能和简单性:
* **安装或更新**到最新版本:`npm install -g yamlresume@latest`
* \*\*阅读新的[编译器文档](/zh-cn/docs/compiler)\*\*以了解更多关于架构和模式的信息。
* **加入我们的社区**在 [GitHub](https://github.com/yamlresume/yamlresume/discussions) 提问、报告问题或贡献。
我们相信此版本标志着简历创建的新时代,为每个人带来编译器的强大功能和可靠性。我们迫不及待想看到您将构建的惊人简历!
别忘了,您可以使用我们的 [Docker 镜像](/zh-cn/blog/yamlresume-docker) 试用新编译器:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
```
# Docker 中的 YAMLResume
URL: (/zh-cn/blog/yamlresume-docker)
我非常兴奋地宣布 YAMLResume 现在有了一个 [docker 镜像](https://hub.docker.com/r/yamlresume/yamlresume),您可以[使用 docker 立即运行 YAMLResume](https://asciinema.org/a/722057)。
## 为什么选择 Docker?
YAMLResume 是一个 Node.js CLI 工具和一个 [库](https://www.npmjs.com/package/@yamlresume/core)。安装 YAMLResume 本身并不困难,因为它只需要 Node.js。实际上,我们甚至可以将其编译为二进制文件并直接运行而无需安装 Node.js。
然而,YAMLResume 对 LaTeX 有强制依赖,这带来了一些新的问题:
* 安装 LaTeX 需要时间;通常需要大约 5-10 分钟来下载适当的 LaTeX 发行版并配置它。
* LaTeX 不是一个单一的二进制程序;它是程序的集合。一些用户[不喜欢在他们的机器上安装许多程序](https://github.com/yamlresume/yamlresume/issues/6#issuecomment-2916479009)。
虽然我们已经提供了一个非常全面的[安装指南](/zh-cn/docs/installation),涵盖 macOS、Windows、Ubuntu 和 RHEL,甚至包括安装 YAMLResume 和 LaTeX 并让它们协同工作的说明,这个过程对一些用户来说仍然可能是痛苦的。
Docker 是解决这些问题的绝佳方案:它可以将所有内容打包到单个镜像中,使安装和配置变得容易。
## 如何使用
一图胜千言。这里是一个展示如何使用它的截图:
我们的 [docker 镜像](https://hub.docker.com/r/yamlresume/yamlresume)包含了所有预打包的内容,包括:
* [Node.js](/zh-cn/docs/installation#nodejs)
* [yamlresume CLI](/zh-cn/docs/installation#yamlresume)
* [XeTeX](/zh-cn/docs/installation#xetex)
* [一些推荐的字体](/zh-cn/docs/installation#font)
您可以使用以下命令立即创建新简历:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
```
相应地编辑 `my-resume.yml`,然后从 YAML 构建简历到 PDF:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
```
#### 底层原理
如果您熟悉 docker,您可能已经知道这是如何工作的。如果不熟悉,
这里是一个快速解释:
1. `docker run ... yamlresume/yamlresume` - 从 `yamlresume/yamlresume` 镜像运行新容器。如果此镜像在您的本地机器上不存在,它将从 [docker Hub](https://hub.docker.com/r/yamlresume/yamlresume) 拉取。
2. `--rm` - 在退出时自动删除容器。
3. `-v $(pwd):/home/yamlresume` - 将当前目录 (`$(pwd)`) 挂载到容器中的 `/home/yamlresume`,允许容器访问本地文件。
4. `new my-resume.yml` 或 `build my-resume.yml` - 运行 yamlresume CLI [new](/zh-cn/docs/cli#new) 或 [build](/zh-cn/docs/cli#build) 子命令来创建或构建文件名为 `my-resume.yml` 的简历。
基本上,您可以以这种方式调用所有 `yamlresume` [CLI 子命令](/cli)——只需在 `yamlresume/yamlresume` 后附加子命令,然后按照相应的使用指南进行操作。
`-v` 标志非常重要,因为它将当前目录 (`$(pwd)`) 挂载到容器中的 `/home/yamlresume`,允许本地目录和容器之间进行双向文件同步。没有这个标志,构建输出工件将在容器退出后丢失。
## 工程设计
如果您对 docker 有一点了解,构建 docker 镜像并不困难。然而,将 YAMLResume 包装在 docker 中并不像听起来那么容易。以下是一些挑战。
### LaTeX 配置很繁琐
安装可工作的 LaTeX 发行版需要时间;通常需要大约 5-10 分钟来下载和配置适当的 LaTeX 发行版。在 GitHub Action 运行器中,这个过程[甚至更长——长达 20 多分钟](https://github.com/yamlresume/yamlresume/actions/runs/15438395862/job/43450134447)。
```docker
RUN apt update && \
apt install -y \
texlive-xetex \
texlive-fonts-extra \
texlive-lang-all \
fonts-noto-cjk \
fonts-noto-cjk-extra \
```
我们将构建 [yamlresume 的 docker 镜像](https://hub.docker.com/r/yamlresume/yamlresume)作为一个 3 步过程:
1. 从 Node.js 镜像作为基础开始。
2. 安装和配置 LaTeX 发行版。
3. 安装 yamlresume CLI。
如前所述,步骤 2 是最耗时的部分。如果我们每次需要更新 docker 镜像时都必须重新开始,在 github action 运行器中构建 docker 镜像将需要 30 分钟。
为了避免这种情况,我们使用多阶段构建来缓存 LaTeX 发行版,因此我们每次更新 docker 镜像时不需要从头安装它。
因此,我们创建了一个新的 [yamlresume/yamlresume-base](https://hub.docker.com/r/yamlresume/yamlresume-base),这是一个安装了 Node.js 和 LaTeX 发行版的基础镜像。这个基础镜像是稳定的,不会经常更新,我们的 `yamlresume/yamlresume` 镜像构建在这个基础镜像之上。只需 3 分钟就可以拉取 `yamlresume/yamlresume-base` 镜像并在其上安装 yamlresume CLI,这大大减少了迭代时间。
### 多平台支持
另一个挑战是支持[多平台构建](https://docs.docker.com/build/building/multi-platform/)。众所周知,macOS M1 及更高版本是基于 ARM 的机器。虽然它们可以通过模拟运行 AMD64 架构的 docker 镜像,但性能要差 10 倍。
因此,我们必须为 `yamlresume/yamlresume` 支持多平台镜像。幸运的是,docker 官方提供了关于如何[在 github actions 中构建多平台镜像](https://docs.docker.com/build/ci/github-actions/multi-platform/)的详细指南。
YAMLResume 的 docker 镜像支持[两个平台](https://hub.docker.com/r/yamlresume/yamlresume/tags):`linux/amd64` 和 `linux/arm64`,这应该足以覆盖大多数桌面和服务器机器。
享受使用 docker 的 YAMLResume!
# YAMLResume 登陆 Homebrew
URL: (/zh-cn/blog/yamlresume-homebrew)
YAMLResume 刚刚被 [Homebrew 接受](https://github.com/Homebrew/homebrew-core/pull/246949)。[Homebrew](https://brew.sh) 是 macOS 上最流行的包管理器。这意味着 macOS 用户现在可以用一个可信的命令安装并保持 YAMLResume 最新——无需手动全局安装 [Node.js](https://nodejs.org),无需路径折腾。本文展示使用 Homebrew 获取 YAMLResume 的详细分步流程以及用于生成最佳 PDF 输出的排版引擎。
## 为什么重要
过去在 macOS 上获取 YAMLResume CLI 的典型步骤是:
1. [安装 Node.js](/zh-cn/docs/installation#nodejs)
2. 使用 Node.js 包管理器 (npm/pnpm/yarn/bun) [安装 `yamlresume` CLI](/zh-cn/docs/installation#yamlresume)
3. [安装排版引擎](/zh-cn/docs/installation#typesetting-engine) 以生成 PDF
一个 [Homebrew formula](https://formulae.brew.sh/formula/yamlresume) 可以把第 1 步和第 2 步合并,因为 Homebrew 能帮你管理 Node.js 依赖。这减少环境配置问题并简化升级(`brew upgrade yamlresume`)。
## 快速安装
```sh
brew install yamlresume
```
如果你还没有安装 Node.js,Homebrew 会作为依赖自动安装。
然后验证:
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build a resume on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
如果能看到帮助输出,说明 YAMLResume CLI 已经在你的 `PATH` 中。
YAMLResume 依赖一个排版引擎来生成 PDF,你可以通过 Homebrew 安装 [MacTeX](/zh-cn/docs/installation#xetex) 或 [Tectonic](/zh-cn/docs/installation#tectonic)。
### 选项 A:完整 TeX Live (XeTeX)
通过 MacTeX cask 安装(包含 XeTeX):
```sh
# install the full mactex
brew install mactex
# or if you want to save some disk space
brew install mactex-no-gui
```
安装后确保 TeX 可执行文件在 `PATH` 下(Homebrew 通常在 `/Library/TeX/texbin` 下创建符号链接)。测试:
```console
$ xelatex --version
XeTeX 3.141592653-2.6-0.999994 (TeX Live 2022)
kpathsea version 6.3.4
Copyright 2022 SIL International, Jonathan Kew and Khaled Hosny.
There is NO warranty. Redistribution of this software is
covered by the terms of both the XeTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the XeTeX source.
Primary author of XeTeX: Jonathan Kew.
Compiled with ICU version 70.1; using 70.1
Compiled with zlib version 1.2.11; using 1.2.11
Compiled with FreeType2 version 2.11.1; using 2.11.1
Compiled with Graphite2 version 1.3.14; using 1.3.14
Compiled with HarfBuzz version 3.4.0; using 3.4.0
Compiled with libpng version 1.6.37; using 1.6.37
Compiled with pplib version v2.05 less toxic i hope
Using Mac OS X Core Text and Cocoa frameworks
```
### 选项 B:Tectonic(轻量)
```console
$ brew install tectonic
$ tectonic --version
```
该选哪个?
| 引擎 | 优点 | 缺点 |
| -------- | --------------------- | ------------------ |
| XeTeX | 兼容性最高;成熟生态 | 下载体积大(4–6 GB) |
| Tectonic | 初始体积极小;自动获取所需 LaTeX 包 | 与 XeTeX 相比偶尔有兼容性差异 |
如果遇到无法解释的 LaTeX 包问题或高级字体处理问题,切回 XeTeX。
## 创建并构建简历
创建一个初始 YAML 简历:
```console
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
用编辑器查看并修改 `my-resume.yml`,然后构建 PDF:
```console
$ yamlresume build my-resume.yml
◐ Generating resume PDF with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume PDF successfully.
```
内部流程:
1. 将 `my-resume.yml` 转换为 LaTeX (`my-resume.tex`)
2. 调用排版引擎 (`xelatex` 或 `tectonic`)
3. 生成 `my-resume.pdf`
## 升级
保持最新(新模板、修复、i18n 改进):
```console
$ brew update
$ brew upgrade yamlresume
```
## 卸载
```console
$ brew uninstall yamlresume
```
只在不再需要时移除可选依赖(字体、TeX 引擎等)。
## 排错
使用详细模式辅助诊断构建问题:
```console
$ yamlresume build --verbose my-resume.yml
```
常见解决方案:
* 缺少排版引擎:安装 MacTeX 或使用 Tectonic。
* 写文件权限被拒:确认当前目录可写(避免系统目录)。
* Tectonic 上出现奇怪 LaTeX 错误:切回 XeTeX (`brew install mactex`)。
## 结束语
被 Homebrew 收录降低了新用户的门槛并体现项目的成熟度。如遇边缘情况,欢迎提交 [issue](https://github.com/yamlresume/yamlresume/issues/) 或 [discussion](https://github.com/yamlresume/yamlresume/discussions) —— 我们迭代很快。祝编码愉快,愿你的简历始终像素级完美!
最后,感谢 [@chenrui333](https://github.com/chenrui333) 的最初 [PR](https://github.com/Homebrew/homebrew-core/pull/246949),让 YAMLResume 收录进 Homebrew。
# 1000 顆星
URL: (/zh-tw/blog/1000-stars)
YAMLResume 剛剛跨越了一個重要的里程碑:[GitHub 上的 1000 顆星](https://github.com/yamlresume/yamlresume/stargazers)——這大約是在[開源項目](/zh-cn/blog/introducing-yamlresume)半年後。感謝每一顆星、每一個 issue、每一次討論、每一份貢獻和每一次口碑分享。這是一個小小的徽章,但它反映了"簡歷即代碼"、出色的排版和以開發者爲先的工作流程的真正動力。
六月我們慶祝了[500 顆星](/zh-cn/blog/500-stars),今天我們帶着 1000 顆星迴來了。在這期間,YAMLResume 顯著成熟——特別是在三個版本中,許多人都快速跟進和採用:[v0.5](/zh-cn/blog/yamlresume-compiler)、[v0.6](/zh-cn/blog/section-customization) 和 [v0.7](/zh-cn/blog/dev-mode)。這篇文章回顧了我們發佈的最重要的內容,然後爲下一段旅程制定了務實的路線圖。
## 回顧
### v0.5:你可以信賴的簡歷編譯器
[v0.5](/zh-cn/blog/yamlresume-compiler) 將 YAMLResume 重新定位爲不僅是一個格式化工具,而是一個編譯器。這個單一的概念轉變——將簡歷 YAML 視爲源代碼——解鎖了正確性、一致性和極其簡單的 CLI 工作流程。
我們在 v0.5 中發佈的關鍵想法:
* [編譯器架構](/zh-cn/docs/compiler/architecture)和標準[數據模型](/zh-cn/docs/compiler/schema):我們正式化了簡歷結構,以便任何下游渲染器或模板都能獲得乾淨、可預測的數據。這減少了錯誤並提高了模板的可移植性。
* 兩個層面的強驗證:[用於編輯器集成的 JSON Schema](/zh-cn/docs/compiler/schema/json)(自動完成、懸停文檔、早期格式檢查)和[用於運行時安全和詳細診斷的 Zod](/zh-cn/docs/compiler/schema/zod)。編輯器感覺智能;構建感覺安全。
* 縮短迭代的新命令:[`yamlresume validate`](/zh-cn/docs/cli#validate) 用於快速檢查,以及改進的 `build`,它總是先驗證。使用 `--no-validate` 選項,你可以在大編輯期間保持進度。
* [Clang 風格的錯誤輸出](https://asciinema.org/a/728098):與文件名和行號關聯的清晰錯誤每次迭代都能節省數分鐘。
v0.5 使 YAMLResume 成爲一個你可以信賴的工具——即使在截止日期壓力下也是如此。如果你還沒有,請瀏覽 v0.5 博客中的示例和視頻;它們展示了驗證器、架構提示和診斷的實際應用。
### v0.6:與你講述故事方式相匹配的章節自定義
[v0.6](/zh-cn/blog/section-customization) 專注於看似簡單但極其強大的功能:用你自己的聲音和順序表達你的敘事,而無需 fork 模板或 hack LaTeX。
發佈的內容:
* [章節別名](/zh-cn/docs/layouts/sections/aliases):重命名預定義章節(例如,將 `work` 改爲"專業經驗",將 `education` 改爲"學術背景")使用 `layout.sections.aliases`。這對於語調、地區/文化或角色定位特別有用。
* [章節重排序](/zh-cn/docs/layouts/sections/reorder):使用 `layout.sections.order` 將最相關的章節帶到頂部。將 `skills` 放在 `work` 之前,或者爲作品集重的角色首先展示 `projects`。
* 容錯更佳實用:改進如容忍無效日期(回退到字符串)
爲什麼重要:
* 招聘環境不同。申請博士後的博士希望 `education` 在前;高級工程師希望 `work` 在前。v0.6 將這個選擇放在一次 YAML 編輯的距離。
* 語言和語調塑造感知。別名讓你可以匹配行業規範("經驗"、"精選出版物"、"開源"),而無需微調模板。
簡而言之:v0.6 使 YAMLResume 適應你的敘述,而不是相反。
### v0.7:開發模式,因爲簡歷也值得現代化的開發體驗
[v0.7](/zh-cn/blog/dev-mode) 發佈了一個監視模式的開發流程,感覺就像簡歷的熱重載。保存你的 YAML,PDF 會自動重建。小改動不再需要大的上下文切換。
發佈的內容:
* [`yamlresume dev`](/zh-cn/docs/cli#dev):一個持久進程,監視你的簡歷文件並在保存時重建。將其與並排的 PDF 查看器配對以獲得即時反饋。
* 強大的監視器實現:我們採用了 [chokidar](https://github.com/paulmillr/chokidar) 並添加了[合併邏輯](https://github.com/yamlresume/coalescifn),這樣我們永遠不會在快速連續保存時過載構建。一次只進行一次構建;最新狀態總是獲勝。
* dev 中的實用標誌:當你只需要 `.tex` 進行調試時使用 `--no-pdf`,在大型重構期間速度最重要時使用 `--no-validate`。
爲什麼重要:
* 迭代更快,寫得更好。
* 工具承擔了繁瑣的工作,而你保持了流暢的流程。這就是開發體驗的全部意義。
如果你習慣使用 `npm run dev`,你會感到賓至如歸。
### 使用 Homebrew 的 YAMLResume
最後但同樣重要的是,YAMLResume 現在已經被 [Homebrew](https://brew.sh) 收錄:
```sh
brew install yamlresume
```
我們發佈了一篇新的博客文章來詳細解釋如何使用它:[YAMLResume 登陸 Homebrew](/zh-cn/blog/yamlresume-homebrew)。
## 展望未來
YAMLResume 已經從 [PPResume](https://ppresume.com) 的小型核心引擎發展到今天強大的簡歷編譯器,儘管走過了很長的路。但我們仍然有很多工作要做,以進一步增強 YAMLResume 的能力,使其成爲簡歷製作的理想工具。
### 多種佈局
目前 YAMLResume 僅支持 LaTeX 輸出。我們將擴展編譯器到渲染器的管道,以支持多種佈局引擎和輸出格式,從 Markdown 開始,然後是 HTML。
以下是我們將要發佈的功能:
* [Markdown 輸出](https://github.com/yamlresume/yamlresume/issues/110):一個乾淨、結構化的 Markdown 文檔,反映你簡歷的章節和內容。適用於 README、接受 Markdown 的工作門戶,或傳遞給接受 markdown 的其他簡歷構建器。
* [HTML 輸出](https://github.com/yamlresume/yamlresume/issues/45):HTML 是網絡簡歷最流行的輸出格式。當 YAMLResume 支持 HTML 輸出的那一天,你可以在任何地方託管你的簡歷,與任何人分享,並在任何設備上打開它。
一個數據模型,多種輸出。編譯器的驗證仍然是核心;渲染器成爲插件。你根據受衆選擇輸出:PDF 用於正式提交,HTML 用於網絡存在,Markdown 用於面向開發者的渠道。
### GitHub Actions
一些人採用 YAMLResume 來[在 GitHub 上構建和託管他們的簡歷](https://github.com/yamlresume/yamlresume/discussions/50),他們每個人都有自己生成 PDF 的工作流程。
我們將發佈一個官方的 GitHub YAMLResume action,以便人們可以驗證、構建、託管和發佈他們的簡歷,而無需編寫自己的工作流。
有了專用的 GitHub Action,簡歷更新變成了推送即完成。
### 更多語言
YAMLResume v0.7 已經支持[英語](/zh-cn/docs/locale/english)、[中文](/zh-cn/docs/locale/chinese)、[挪威語](/zh-cn/docs/locale/norwegian)和[西班牙語](/zh-cn/docs/locale/spanish),我們將擴展列表以支持更多語言,使 YAMLResume 對世界各地更多人更加易用。
法語、德語和日語將是我們接下來幾個月要支持的第一批語言。
## 致謝
1000 顆星不是終點,而是另一個開始。它來自你的早期採用、錯誤報告、語言貢獻和塑造路線圖的深思熟慮的請求。感謝你的支持和貢獻。
以下是如何保持勢頭:
* 嘗試最新的 CLI:`npm install -g yamlresume@latest` 或在 macOS 上使用 `brew install yamlresume`。
* 在下一個編輯循環中使用開發模式:`yamlresume dev my-resume.yml`。
* 提交問題和想法:[https://github.com/yamlresume/yamlresume/issues](https://github.com/yamlresume/yamlresume/issues)
* 加入討論:[https://github.com/yamlresume/yamlresume/discussions](https://github.com/yamlresume/yamlresume/discussions)
我們將繼續發佈務實的功能,使簡歷寫作更平靜、更快、更美觀——同時堅持單一、經過驗證的真實來源。繼續前進,邁向下一個里程碑。
# 500 顆星
URL: (/zh-tw/blog/500-stars)
YAMLResume 實現了一個重要里程碑——在短短
一個月內在 GitHub 上達到了 500 顆星。
時間線如下:
* 3 月 29 日:決定開源 [PPResume](https://ppresume.com) 背後的引擎
* 4 月 2 日:獲得了本地 [CLI 演示](https://x.com/xiaohanyu1988/status/1907427362259771748)
* 4 月 10 日:實現了 [100% 測試覆蓋率](https://x.com/xiaohanyu1988/status/1910193021989368311)
* 4 月 25 日:獲得了[本地 npm 套件](https://x.com/PPResumeX/status/1915789536610967741)
* 5 月 8 日:正式[開源 yamlresume](https://x.com/PPResumeX/status/1920294577497387493)
* 5 月 17 日:達到 [200 顆星](https://x.com/PPResumeX/status/1923635538046955662)
* 5 月 23 日:達到 [300 顆星](https://x.com/PPResumeX/status/1925834873723396131)
* 5 月 30 日:達到 [400 顆星](https://x.com/PPResumeX/status/1928347464693862635)
* 6 月 11 日:達到 [500 顆星](https://x.com/PPResumeX/status/1932716523401150840)
與此同時,我們收到了第一個 [Pull Request](https://github.com/yamlresume/yamlresume/pull/2),合併了[另一個 Pull Request](https://github.com/yamlresume/yamlresume/pull/19),並解決了我們的第一個[錯誤報告](https://github.com/yamlresume/yamlresume/issues/13)。特別感謝 [@jizusun](https://github.com/jizusun)、[@koo6666](https://github.com/koo6666) 和 [@luyuhuang](https://github.com/luyuhuang) 的友好貢獻!
## 為什麼要開源?
YAMLResume 的第一行代碼實際上是在 2023 年編寫的。它最初是 [PPResume](https://ppresume.com) 的核心排版引擎——一個基於 [LaTeX](https://www.latex-project.org/) 的商業像素級完美履歷構建器,已經幫助數千人建立了精美排版的履歷。
雖然我還沒有準備好開源 PPResume 本身,但我確實希望給使用者完全控制他們履歷的權力。2024年12月,PPResume 使使用者能夠下載他們履歷的生成 LaTeX 代碼,確保我們的[無供應商鎖定](https://blog.ppresume.com/posts/no-vendor-lock-in)承諾,並給使用者對其資料的完全所有權。
此外,PPResume 的開發極大地受益於開源社群。我自己從中學到了很多,現在是回饋的時候了。
很少有開源工具使用 YAML 作為履歷格式。[JSON Resume](https://jsonresume.org) 是一個不錯的嘗試——眾所周知,YAML 是 JSON 的超集。但是,JSON Resume 沒有為履歷排版、佈局或輸出提供固執己見的解決方案,使其遠不如實用。另一方面,YAML 是比 JSON 更好的履歷格式選擇。
開源 YAMLResume 顯然是正確的決定。查看 NPM 上 YAMLResume 的下載趨勢:
## 下一步是什麼?
雖然 YAMLResume 已被商業履歷構建器使用了將近兩年,但它仍處於開發的早期階段,還有很多工作要做。
[Docker 支援](./yamlresume-docker)是最受歡迎的功能之一,我很高興地說它現在[可用](/zh-tw/docs/installation#docker-users)。
另一個重要功能是資料驗證。與 PPResume 不同,PPResume 為使用者提供精心製作和設計的表單來填寫和驗證他們的履歷資料,YAMLResume 接受無約束輸入——任何 `.yaml` 檔案。我們必須提供一種[驗證輸入](https://github.com/yamlresume/yamlresume/issues/10)的方法,以確保程式優雅地處理所有形式的輸入。
在功能方面,我們計劃支援[別名](https://github.com/yamlresume/yamlresume/issues/11)和[章節重排](https://github.com/yamlresume/yamlresume/issues/12),使 PDF輸出更具適應性和靈活性。
對於開發者體驗,我們的目標是[支援 `dev` 子命令](https://github.com/yamlresume/yamlresume/issues/25),以便使用者可以修改履歷並近即時看到 PDF 更改。
最後,一些使用者對 ATS 相容性表示擔憂。我們致力於確保 PDF 輸出是[ATS 相容](https://github.com/yamlresume/yamlresume/issues/23)的。
敬請期待!
# YAMLResume v0.7: 開發模式
URL: (/zh-tw/blog/dev-mode)
我非常興奮地介紹 [YAMLResume v0.7](https://github.com/yamlresume/yamlresume/releases/tag/v0.7.0),這是一個專注於提升您開發者體驗(DX)的版本。此次更新的核心是新的 [`dev` 模式](/zh-tw/docs/cli#dev)——一個為您的履歷創建過程帶來無縫、即時開發工作流程的功能。
繁瑣的編輯-保存-構建循環的日子已經一去不復返了。通過 `dev` 模式,YAMLResume 現在會監視您的履歷文件變化,並近乎即時地自動重新構建 PDF。這個看似簡單的添加將製作履歷的體驗轉變為一個流暢、互動且更加愉快的過程。
## 舊工作流程的摩擦
在 v0.7 之前,使用 YAMLResume 創建履歷雖然功能強大,但涉及一個重複的手動過程。您需要:
1. 在您喜歡的文字編輯器中打開 `my-resume.yml` 文件。
2. 進行更改——也許是更新工作描述或添加新技能。
3. 保存文件。
4. 切換到終端。
5. 運行 `yamlresume build my-resume.yml` 命令。
6. 等待命令完成。
7. 切換到 PDF 查看器並刷新以查看結果。
8. 注意到一個小錯字或格式問題。
9. 重複整個循環。
下面展示的這個循環為履歷創建過程引入了顯著的摩擦。每個更改,無論多麼微小,都需要上下文切換和手動命令執行。這種持續的中斷會破壞創作流程並減慢完善履歷的過程。
B{保存文件};
B --> C[切換到終端];
C --> D[運行 'yamlresume build'];
D --> E{等待構建};
E --> F[切換到 PDF 查看器];
F --> G{刷新 PDF};
G --> H{查看更改};
H -- 需要修正 --> A;
H -- 看起來不錯 --> I[完成];
subgraph 手動構建循環
A
B
C
D
E
F
G
H
end
`}
/>
在現代軟體開發的世界中,我們已經習慣了提供即時反饋的工具。Web 開發者有[熱重載](https://webpack.js.org/concepts/hot-module-replacement/),當程式碼更改時瀏覽器會自動更新。這種緊密的反饋循環對生產力至關重要,是優秀開發者體驗的核心原則。我們相信,將履歷作為程式碼製作應該沒有什麼不同。
## 解決方案:無縫的開發模式
`yamlresume dev` 命令完全消除了手動構建循環。您啟動一次,它就會在後台安靜地工作,監視您的更改並自動重新構建履歷。
要啟動開發模式,只需運行:
```bash
yamlresume dev my-resume.yml
```
現在,您可以並排打開 `my-resume.yml` 文件和您的 PDF。每次您保存對 YAML 文件的更改時,YAMLResume 都會自動檢測並觸發重新構建。您的 PDF 查看器將在片刻後更新,顯示您履歷的最新版本。
新的工作流程顯著更簡單、更高效:
B[編輯 my-resume.yml];
B --> C{保存文件};
C --> D{PDF 自動重新構建};
D --> E{在 PDF 中查看更改};
E -- 需要修正 --> B;
E -- 看起來不錯 --> F[停止開發模式];
subgraph 即時工作流程
B
C
D
E
end
`}
/>
這種即時反饋循環允許您快速迭代、嘗試不同的措辭,並在沒有持續上下文切換的情況下完善履歷的佈局。它使這個過程感覺不那麼像瑣事,更像是一種創作努力。
以下是 `dev` 模式的實際演示:
您可以觀看 [YouTube 演示](https://youtu.be/xytlzedEQ_w) 了解更多詳情。
## 工作原理:深入了解
雖然 `dev` 模式使用簡單,但背後有一些有趣的技術來確保它既強大又高效。
### 文件監視器:`chokidar`
`dev` 模式的核心是文件監視器。一個天真的方法是使用 Node.js 內建的 [`fs.watch` API](https://nodejs.org/docs/latest/api/fs.html#fswatchfilename-options-listener)。然而,`fs.watch` 有已知的限制和跨不同作業系統的不一致性。更重要的是,它在某些文字編輯器行為方面存在困難。
例如,像 Vim 這樣的編輯器使用"原子保存"策略。當您保存文件時,Vim 不會直接寫入原始文件。相反,它將更改寫入臨時文件(著名的 `.swp` 文件),然後將該臨時文件重命名以替換原始文件。這個過程可能會混淆基本的文件監視器,它們可能會完全錯過更改或觸發多個事件。
為了提供可靠的體驗,我們採用了 **[chokidar](https://github.com/paulmillr/chokidar)**,一個流行且經過實戰考驗的文件監視庫。Chokidar 抽象了跨平台的不一致性,專門設計用於優雅地處理這些棘手的編輯器行為。我們配置它在文件完成寫入之前等待,確保我們不會嘗試構建部分保存的文件。
### 防止構建風暴:`coalescifn`
如果您快速連續保存文件多次會發生什麼?一個簡單的實現可能會為每個保存事件嘗試啟動新的構建。這可能導致"構建風暴",其中多個構建進程並發運行,消耗不必要的系統資源並可能導致競爭條件。
為了解決這個問題,我們編寫並開源了一個巧妙的小工具 [coalescifn](https://github.com/yamlresume/coalescifn)。這個工具幫助我們**合併**多個調用為一個。以下是在 `dev` 模式上下文中的工作原理:
1. 當檢測到第一個文件更改時,我們立即開始構建。
2. 如果該構建運行時檢測到更多更改,我們不會啟動新構建。我們只是記錄文件再次更改。
3. 一旦初始構建完成,我們檢查在那段時間是否發生了更多更改。
4. 如果有後續更改,我們運行恰好**一個**更多構建以確保最終 PDF 反映文件的最新版本。如果沒有新更改,我們什麼都不做,等待下一個保存事件。
這種策略確保一次只有一個構建在運行,並保證最終構建始終使用您履歷文件的最新版本。這是一種高效的方法,使 `dev` 模式響應迅速且對系統資源消耗較少。
以下是說明合併邏輯的圖表:
>Watcher: 保存文件 (t=0s)
Watcher->>Coalesce: 觸發構建
Coalesce->>Builder: 開始構建 #1
User->>Watcher: 保存文件 (t=1s)
Watcher->>Coalesce: 觸發構建 (忽略,構建進行中)
User->>Watcher: 保存文件 (t=2s)
Watcher->>Coalesce: 觸發構建 (忽略,構建進行中)
Builder-->>Coalesce: 完成構建 #1 (t=3s)
Coalesce->>Builder: 開始構建 #2 (使用最新文件內容)
Builder-->>Coalesce: 完成構建 #2 (t=6s)
`}
/>
## 高級控制
`dev` 命令還帶有選項,讓您對構建過程有更多控制,鏡像 `build` 命令上可用的標誌。
### 跳過 PDF 生成
有時,您可能只想檢查 YAMLResume 生成的中間 LaTeX (`.tex`) 文件。這對於調試或對於那些想要手動調整 LaTeX 程式碼的人很有用。生成 PDF 是構建過程中最耗時的部分。如果您不需要它,您可以告訴 `dev` 模式跳過它:
```bash
yamlresume dev my-resume.yml --no-pdf
```
使用此標誌,`dev` 模式仍會監視更改並即時重新生成 `.tex` 文件,但不會運行 `xelatex` 命令。這使得重新構建過程幾乎瞬間完成。
### 禁用驗證
從 [v0.5](/zh-tw/blog/yamlresume-compiler) 開始,YAMLResume 包含一個強大的模式驗證步驟,在構建過程中捕獲您履歷中的潛在錯誤。雖然這對於確保正確性非常有用,但有時您可能想要暫時禁用它。例如,您可能正在進行履歷結構的大型重構,不想被驗證錯誤打斷。
您可以使用 `--no-validate` 標誌禁用驗證:
```bash
yamlresume dev my-resume.yml --no-validate
```
這允許您更自由地工作,但理解您應該稍後重新啟用驗證以確保您的履歷格式良好。
## "履歷即程式碼"的新 DX
`dev` 模式的引入不僅僅是一個新功能;它是朝著實現"履歷即程式碼"真正承諾邁出的一步。它將體驗從靜態的、命令行驅動的過程提升為動態的、互動的過程,感覺更像現代軟體開發。
您可能過去習慣使用 `npm run build` 和 `npm run dev`?YAMLResume 現在內建了相同的工作流程。
通過關閉反饋循環,我們讓您更容易、更快地創建美觀、專業的履歷。我們相信這將鼓勵更多實驗,讓您專注於真正重要的:履歷的內容以及它如何講述您的專業故事。
我們邀請您更新到 YAMLResume v0.7 並親自體驗新的 `dev` 模式:
* **安裝或更新**到最新版本:`npm install -g yamlresume@latest`
* **試用**您現有的履歷:`yamlresume dev my-resume.yml`
* **加入我們的社群**在 [GitHub](https://github.com/yamlresume/yamlresume/discussions) 分享您的反饋、提問或為 YAMLResume 的未來做出貢獻。
我們致力於為履歷創建構建最佳的開發者體驗,我們迫不及待想聽到您對這個新版本的看法!
# 如何在 moderncv 中隱藏圖示
URL: (/zh-tw/blog/hide-moderncv-icons)
使用 [LaTeX](https://www.latex-project.org/) 產生 PDF 履歷時,細微的視覺細節會大幅影響整體觀感。[`moderncv`](https://ctan.org/pkg/moderncv) 類別會在聯絡方式(電話、郵件、網站等)旁顯示圖示,效果很精緻,但並非每個人都想要圖示。有些人偏好更極簡的風格,有些人需要符合不允許圖示的公司模板。本文會說明 `moderncv` 是什麼、使用的圖示庫、如何隱藏圖示,以及讓這一切成為可能的 LaTeX `\renewcommand` 巨集。
## 1. moderncv 是什麼?
[`moderncv`](https://ctan.org/pkg/moderncv) 是專為履歷設計的 LaTeX 文件類別。它提供一致、專業的版面,並提供一組高層級巨集來格式化常見履歷元素:姓名、頭銜、聯絡方式、章節標題以及工作與教育條目。相較於直接撰寫 LaTeX,`moderncv` 內建成熟的版面系統與多種樣式(如 `banking`、`classic`、`casual`),視覺層級非常適合單頁履歷。
典型的 `moderncv` 標頭寫法如下:
```latex
\name{}{Andy Dufresne}
\title{Software Engineer}
\phone[mobile]{+1 555 123 456}
\email{jane@example.com}
\homepage{https://example.com}
```
類別會將這些命令渲染成整齊的標頭。預設情況下,`moderncv` 還會在每個項目前顯示圖示,讓聯絡資訊更容易被掃視。
## 2. moderncv 使用的圖示庫是什麼?
`moderncv` 透過 [`fontawesome5`](https://ctan.org/pkg/fontawesome5) 套件提供圖示支援。[Font Awesome](https://fontawesome.com/) 是常見的圖示庫,`fontawesome5` 將其暴露為 LaTeX 命令,例如 `\faEnvelope`、`\faMobileAlt`、`\faGlobe`。在 `moderncv` 中,這些圖示被封裝成「符號」巨集,例如 `\emailsymbol` 與 `\homepagesymbol`。當你呼叫 `\email{...}` 或 `\homepage{...}` 時,類別會先插入對應的符號巨集,再顯示內容。
由於圖示是透過這些符號巨集輸出,你可以在不動內容的前提下替換或移除圖示。這代表內容與裝飾是分離的,所以只要少量重定義就能得到更清爽的風格。
## 3. 如何在 moderncv 中隱藏圖示
最乾淨的方式是把符號巨集重定義為空字串。LaTeX 的 `\renewcommand` 可以讓你替換既有巨集的行為。只要把每個 `moderncv` 符號巨集設為空值,文字仍會保留,圖示就會消失。
把下面這段最小範例放在 preamble(載入 `moderncv` 之後):
```latex
% disable icons
\renewcommand*{\addresssymbol}{}
\renewcommand*{\mobilephonesymbol}{}
\renewcommand*{\fixedphonesymbol}{}
\renewcommand*{\faxphonesymbol}{}
\renewcommand*{\emailsymbol}{}
\renewcommand*{\homepagesymbol}{}
```
這正是 [YAMLResume](https://yamlresume.dev/) 的 `moderncv` 渲染器所採用的作法。在 YAMLResume [v0.10](/zh-tw/blog/v0.10) 中,LaTeX preamble 會在 `advanced` 設定下的 `showIcons` 選項為 `false` 時,[按需插入](https://github.com/yamlresume/yamlresume/commit/b53f73d9b4b04bf04b90236ef01da56062f8ca1f) 這些 `\renewcommand*` 行。這表示你可以不改履歷內容就切換 PDF 輸出是否顯示圖示。
這裡是隱藏圖示後的 moderncv 履歷:
對應的 LaTeX 區塊如下:
如果你使用 YAMLResume,可以透過版面設定控制,讓渲染器自動注入這些覆寫規則。如果你手寫 LaTeX,只要把片段貼進 preamble 即可。兩種方式結果一致:標頭文字保留,圖示被隱藏。
### 為什麼有效
`moderncv` 為每個圖示都定義了對應的巨集。例如 `\emailsymbol` 用於顯示郵件圖示。當你把它重定義為 `{}` 時,LaTeX 仍會展開它,但不會輸出任何內容。你沒有刪除郵件本身,只是移除了前方的裝飾。
### 補充:隱藏社群圖示
如果你在自訂欄位中直接使用 `\faGithub` 或 `\faTwitter`,只要不呼叫這些命令就不會顯示圖示。YAMLResume 的渲染器則是在插入社群圖示前檢查 `showIcons` 開關。做法相同:保留 `\href` 內容,省略圖示前綴。
## 4. 什麼是 \renewcommand 巨集?
LaTeX 以巨集定義命令的行為。`\newcommand` 用來建立新命令,而 `\renewcommand` 用來重定義既有命令。可以理解為「用新的實作覆寫這個命令」。
語法如下:
```latex
\renewcommand{\commandname}{replacement}
```
帶星號的 `\renewcommand*` 行為類似,但會禁止替換文字中出現段落換行。對於 `\emailsymbol` 這類短巨集來說差異不大,但在類別與模板中很常見。
在 `moderncv` 中,圖示巨集已經存在,因此必須使用 `\renewcommand` 而不是 `\newcommand`。如果用 `\newcommand` 重新定義既有巨集,LaTeX 會報錯,所以補丁才會這樣寫:
```latex
\renewcommand*{\emailsymbol}{}
```
這行的意思是「把 `\emailsymbol` 的定義替換成空字串」。其餘類別仍正常運作,因為 `\email{...}` 仍然會正確展開,只是前面不再顯示圖示。
## 總結
* `moderncv` 是履歷專用的 LaTeX 類別,提供結構化巨集與專業版面。
* 它透過 `fontawesome5` 套件提供圖示,並用 `\emailsymbol`、`\homepagesymbol` 等符號巨集顯示。
* 使用 `\renewcommand*` 將符號巨集設為空字串即可隱藏圖示。
* `\renewcommand` 是 LaTeX 用來安全覆寫既有巨集的機制。
如果你想要極簡、純文字的標頭,這種方法最可靠,而且具備未來相容性:日後更換樣式或新增欄位時,只要重定義相對應的符號巨集即可。另外,`advanced.showIcons` 選項同時適用於 [HTML](/zh-tw/docs/layouts/html) 與 [LaTeX](/zh-tw/docs/layouts/latex) 引擎。
# YAMLResume v0.9: HTML 輸出
URL: (/zh-tw/blog/html-output)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
我們很高興地宣佈發佈 [YAMLResume v0.9](https://github.com/yamlresume/yamlresume/releases/tag/v0.9.0),引入了對 [HTML 輸出](/docs/layouts/html)的一流支持。繼我們帶來 [Markdown 輸出](/docs/layouts/markdown)的 [v0.8 版本](/blog/markdown-output)之後,我們現在又向前邁出了一大步,使您的簡歷數據真正多用途且原生於 Web。
使用 v0.9,您現在可以將 YAML 簡歷直接編譯爲獨立的、響應式的 HTML 文件——非常適合託管在您的個人網站、GitHub Pages 或任何靜態託管平臺上。不再需要轉換 PDF 或手動維護簡歷的單獨 Web 版本。
目前,我們只爲 HTML 佈局提供一個模板——[calm](/docs/layouts/html/templates/calm) 模板,它受 moderncv LaTeX 模板的啓發。它採用極簡設計,具有清晰的章節分隔和針對 Web 查看優化的優雅佈局。預覽如下:
以下是如何使用 YAMLResume v0.9 生成 HTML 簡歷的快速演示:
[](https://asciinema.org/a/763505)
## 爲什麼選擇 HTML?
當我們在 v0.8 中引入[多佈局架構](/docs/layouts)時,我們設想了這樣一個世界,您的單個 `resume.yml` 可以呈現爲您需要的任何格式。我們從用於專業申請的 [LaTeX/PDF](/docs/layouts/latex) 和用於互操作性和 LLM 工作流的 [Markdown](/docs/layouts/markdown) 開始。現在,HTML 完成了必不可少的簡歷格式三部曲。
HTML 提供了獨特的優勢:
**Web 原生**:HTML 是 Web 的語言。您的簡歷成爲互聯網上的一等公民,而不僅僅是您必須嵌入或轉換的文檔。
**響應式設計**:與需要在移動設備上捏合和縮放的 PDF 不同,HTML 簡歷可以無縫適應任何屏幕尺寸——從桌面顯示器到智能手機。
**SEO 友好**:搜索引擎可以索引您的 HTML 簡歷,使您的技能和經驗可被發現。這對於僅 PDF 的簡歷是不可能的。
**交互式**:HTML 支持可點擊鏈接、平滑滾動和其他交互元素,可增強靜態文檔之外的用戶體驗。
**零依賴**:HTML 輸出是帶有內聯 CSS 的自包含文件。將其放在任何地方——S3、Netlify、GitHub Pages——它就能正常工作。
## 入門
如果您已安裝 `yamlresume`(0.9.0 或更高版本),向簡歷添加 HTML 輸出就像更新佈局配置一樣簡單。
### 步驟 1:更新簡歷配置
將 HTML 佈局添加到您的 `resume.yml`:
```yml lineNumbers
layouts:
- engine: latex
template: moderncv-banking
typography:
fontSize: 11pt
- engine: markdown
- engine: html #[! code highlight]
template: calm #[! code highlight]
typography: #[! code highlight]
fontSize: 16px #[! code highlight]
```
HTML 引擎支持可自定義的[排版](/docs/layouts/html#typography),字體大小範圍從 14px 到 20px。默認的 `calm` 模板受流行的 LaTeX `moderncv` 包的啓發,提供了乾淨、專業的外觀。
### 步驟 2:構建簡歷
運行構建命令:
```console
$ yamlresume build my-resume.yml
✔ Generated resume tex file successfully: my-resume.tex
◐ Generating resume pdf file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume pdf file successfully: my-resume.pdf
✔ Generated resume markdown file successfully: my-resume.md
✔ Generated resume html file successfully: my-resume.html
```
就這樣!您現在從單一的真實源文件獲得了三個輸出文件。
## Calm 模板
初始版本包括 `calm` 模板,這是一個精心設計的佈局,平衡了專業性和可讀性。該模板具有以下特點:
* **簡潔排版**:針對屏幕和打印優化的字體大小和行高。
* **響應式佈局**:自動從寬桌面屏幕適應到窄移動顯示器。
* **語義 HTML**:使用正確的 HTML5 語義元素以獲得更好的可訪問性和 SEO。
* **打印友好**:雖然是爲 Web 設計的,但模板包括打印樣式,因此從瀏覽器保存爲 PDF 時看起來很棒。
## 用例
### GitHub Pages
使用最少的配置將您的 HTML 簡歷部署到 GitHub Pages:
```yml
# .github/workflows/deploy.yml
name: Deploy Resume
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm install -g yamlresume
- run: yamlresume build resume.yml
- uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public
```
### 響應式作品集
將簡歷直接嵌入到作品集中。由於 HTML 是自包含的,您甚至可以將其嵌入 iframe 或提取樣式以進行更深入的集成。
### 快速共享
通過電子郵件發送 HTML 文件或通過 Dropbox/Google Drive 共享。接收者可以在任何瀏覽器中打開它,而無需 PDF 閱讀器或特殊軟件。
## 技術架構
[HTML 渲染器](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/renderer/html/renderer.ts)採用與我們的 LaTeX/Markdown 引擎相同的嚴格工程標準構建。在底層:
1. **類型安全渲染**:渲染器用 TypeScript 編寫,通過 [Zod 架構](/docs/compiler/schema/zod)實現完全的類型安全。
2. **模板系統**:模板是模塊化和可擴展的。雖然我們最初使用 `calm` 進行發佈,但架構支持多個模板。將來的模板可以輕鬆添加。
3. **CSS style**:我們使用 CSS Reset(基於 modern-normalize)和作用域模板樣式的組合來確保跨瀏覽器的一致渲染。
4. **轉義處理**:所有內容都經過[適當的 HTML 轉義](https://github.com/yamlresume/yamlresume/blob/v0.9.1/packages/core/src/utils/string.ts#L34-L44),以防止注入漏洞並確保特殊字符正確呈現。
5. **全面測試**:HTML 渲染器包括超過 1,000 行的[測試用例](https://github.com/yamlresume/yamlresume/blob/v0.9.1/packages/core/src/renderer/html/renderer.test.ts),實現了 100% 的測試覆蓋率並保證渲染器按預期工作。
## 比較:LaTeX vs Markdown vs HTML
讓我們看看三個引擎的比較:
| 特性 | LaTeX (PDF) | Markdown | HTML |
| -------- | ----------- | ---------- | ---------- |
| **用例** | 求職申請 | AI/LLMs、內容 | Web 託管 |
| **格式** | 像素完美 | 極簡 | 響應式 |
| **可移植性** | 通用 | 通用 | Web 原生 |
| **自定義** | 廣泛 | 有限 | 增長中 |
| **文件大小** | \~50-200 KB | \~5-20 KB | \~20-50 KB |
| **依賴項** | LaTeX 工具鏈 | 無 | 無 |
| **交互式** | 否 | 否 | 是 |
| **SEO** | 否 | 發佈時 | 是 |
| **響應式** | 否 | 取決於渲染器 | 是 |
每個引擎在其領域都表現出色。YAMLResume 架構的美妙之處在於您不必選擇——從同一個源文件生成所有三個,並在最合適的地方使用它們。
## 接下來是什麼?
v0.9 HTML 引擎奠定了堅實的基礎,但我們對未來的增強有着雄心勃勃的計劃:
### 更多模板
我們將添加具有不同設計美學的其他模板——極簡主義、創意、企業等。想貢獻模板嗎?查看我們的[貢獻指南](/docs/contributing)。
### 擴展自定義
未來版本將擴展排版選項以包括字體系列、配色方案和間距控制,讓您可以更好地控制視覺呈現。
### 深色模式
使用 CSS 變量和 `prefers-color-scheme` 媒體查詢的內置深色模式支持。
### 可訪問性增強
雖然當前實現使用語義 HTML,但我們計劃添加全面的ARIA 標籤和鍵盤導航支持,以使簡歷對所有用戶都可訪問。
## 結論
YAMLResume v0.9 帶來了 HTML 佈局支持,完成了核心輸出格式的三部曲。現在,從單個 `resume.yml` 文件,您可以生成:
* 通過 LaTeX 爲求職申請生成專業 PDF
* 爲 LLM 和內容工作流生成乾淨的 Markdown 文件
* 爲 Web 託管和在線作品集生成響應式 HTML 頁面
此版本強化了我們對"簡歷即代碼"理念的承諾:一次編寫,隨處渲染。您的簡歷數據仍然是單一的真實來源,而輸出只是爲不同上下文優化的不同視圖。
我們邀請您升級到 v0.9 並體驗 Web 原生簡歷的靈活性:
```console
$ npm install -g yamlresume@latest
$ pnpm install -g yamlresume@latest
$ yarn global add yamlresume@latest
$ bun add -g yamlresume@latest
$ brew install yamlresume
```
有反饋或新模板的想法嗎?加入 [GitHub](https://github.com/yamlresume/yamlresume/discussions) 上的討論或在 [X/Twitter](https://x.com/xiaohanyu1988) 上聯繫我們。我們迫不及待地想看到您如何在工作流程中使用 HTML佈局!
# 介紹 YAMLResume
URL: (/zh-tw/blog/introducing-yamlresume)
import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
每個開發者都需要一份履歷,除非你是世界知名的專家。寫履歷可能並不困難,但絕對不有趣且很繁瑣。許多人花費數天時間精心製作履歷,追求 100% 無錯字、語法檢查過的專業版式和排版的履歷。
[YAMLResume](https://yamlresume.dev) 允許你使用 [YAML](https://yaml.org/) 創建和版本控制你的履歷,並輕鬆生成具有精美排版的專業外觀 PDF。
它起初是 [PPResume](https://ppresume.com)——一個基於 [LaTeX](https://www.latex-project.org/) 的商業化像素完美履歷建構器——的核心排版引擎,已經幫助成千上萬的人創建了精美排版的履歷。我們毫不猶豫地決定將其開源,這樣人們就能永遠擁有[拒絕供應商鎖定](https://blog.ppresume.com/posts/no-vendor-lock-in)的權利。
## 快速開始
YAMLResume 提供了一個 [CLI 工具](https://www.npmjs.com/package/yamlresume),此外,它對排版引擎有強制依賴以生成 PDF。換句話說,如果你想生成 PDF,應該首先[安裝排版引擎](/zh-tw/docs/installation#typesetting-engine)。
安裝 `yamlresume` CLI 非常簡單。你可以使用你喜歡的 Node.js 套件管理器來安裝它:
<>
```console
npm install -g yamlresume
```
```console
pnpm add -g yamlresume
```
```console
yarn global add yamlresume
```
```console
bun add -g yamlresume
```
>
驗證 `yamlresume` 安裝成功:
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build build a resume to LaTeX and PDF
languages i18n and l10n support
templates manage resume templates
help [command] display help for command
```
我們還建議你安裝 [Linux Libertine](http://yamlresume.dev/zh-tw/docs/installation#linux-libertine) 字體以獲得最佳的 PDF 外觀。
最後但同樣重要的是,如果你想創建 CJK 履歷,我們還建議你安裝 [Google Noto 字體](https://fonts.google.com/noto/)以獲得[最佳的 Unicode 覆蓋](https://github.com/ppresume/community/issues/63)。
### 創建新履歷
你可以用一行命令創建一個新履歷:
```console
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
在底層,`yamlresume new` 會從[這裡](https://github.com/yamlresume/yamlresume/blob/main/packages/cli/resources/resume.yml)克隆一個示例履歷。然後你可以再用一行命令生成 PDF:
```console
$ yamlresume build my-resume.yml
◐ Generating resume PDF with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume PDF successfully.
```
完成了!查看生成的履歷 PDF:
你可以查看 [PPResume 畫廊](https://ppresume.com/gallery)獲取更多由 YAMLResume 作為排版引擎驅動的示例。
### 故障排除
YAMLResume CLI 提供了詳細標誌 `-v`/`--verbose` 來顯示更詳細的日誌資訊。如果你在建構履歷時遇到問題,可以嘗試使用此詳細標誌重新運行命令,並將輸出貼到 [github issues](https://github.com/yamlresume/yamlresume/issues),我會查看並回覆你。
## 它是如何工作的?
在底層,YAMLResume 就像一個迷你編譯器,即它接受一個輸入,將其解析為 [AST](https://en.wikipedia.org/wiki/Abstract_syntax_tree),然後生成輸出。
YAMLResume 的核心設計原則是[關注點分離](https://en.wikipedia.org/wiki/Separation_of_concerns)。遵循這一原則的最著名例子之一是 HTML 和 CSS,它們是現代網路的基礎——HTML 用於組織網頁中的內容,CSS 用於定義內容的呈現樣式。
遵循核心原則,YAMLResume 基於以下要求設計:
* 履歷內容應該用純文字編寫,這樣對版本控制友好
* 純文字應該使用完全結構化的格式,這給我們更多的控制和靈活性
* YAML 比 JSON 更好,因為它更易於人類閱讀和編寫
* YAML 純文字然後透過可插拔的排版引擎渲染成 PDF
* 應該提供開箱即用的主觀版式,同時仍然允許人們相應地調整選項,如字體大小、頁邊距等
## 為什麼選擇 YAML?
[JSON Resume](https://jsonresume.org/) 是另一個允許人們以結構化格式創建履歷的專案。然而,大多數開發者都會同意,在人類可讀性和可寫性方面,YAML 比 JSON 更好。例如,在 JSON 中表示多行字串相當不方便,而 YAML 對此有原生支援。
比較 JSON 和 YAML 中的履歷片段:
```json
{
"content": {
"basics": {
"name": "Andy Dufresne",
"headline": "Headed for the Pacific",
"phone": "(213) 555-9876",
"email": "hi@ppresume.com",
"url": "https://ppresume.com/gallery",
"summary": "- Computer Science major with strong foundation in data structures, algorithms, and software development\n- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites\n- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)\n- Team player, with detail-oriented mindset and a keen eye for design and user experiences"
}
}
}
```
```yml lineNumbers
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@ppresume.com
url: https://ppresume.com/gallery
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
```
哪個更易讀和易寫?答案是顯而易見的。
JSON Resume 不關心履歷的版式。在現實世界中,你不能直接向招聘人員發送 JSON 檔案,對吧?結構化的履歷格式需要轉換為人類可讀的文件格式,如 docx、PDF 等。YAMLResume 提供主觀的版式配置,並保證像素完美的 PDF 輸出。
在撰寫本文時,YAMLResume 的主觀版式支援:
* 區域語言
* 英語
* 簡體中文
* 繁體中文
* 西班牙語
* 邊距
* 頂部
* 左側
* 右側
* 底部
* 頁碼
* 模板
* 排版
* 字體大小
這是 YAMLResume 中版式配置的示例程式碼片段:
```yml lineNumbers
layout:
locale:
language: zh-tw
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
page:
showPageNumbers: true
template: moderncv-banking
typography:
fontSize: 11pt
```
## 為什麼不用 Markdown?
[Markdown](https://en.wikipedia.org/wiki/Markdown) 是編寫履歷的另一個流行選擇,也有一些履歷建構器採用 markdown 作為主要輸入格式。然而,markdown 是一種用於創建格式化文字的通用標記語言,而履歷只使用非常有限的 markdown 功能集。
例如,以下 markdown 語法在履歷中很不可能被使用:
* 引用塊
* 程式碼塊
* 水平線
* 圖片
* 表格
* html 標記
* 等等
其次,markdown 過於靈活,經常給使用者提供超出創建履歷所需的自由度。要可靠地將通用 markdown 文件解析為履歷將相當困難。
第三,模板切換、精確版式控制(如 LaTeX 中的 `\hfill` 和 `\hspace`)等功能在 markdown 中很難實現。
總之,使用完全結構化的格式如 YAML/JSON 為我們提供了對履歷格式和版式的更多控制和可靠性。
## 為什麼還是 LaTeX?
[LaTeX](https://www.latex-project.org/) 是一個非常成熟和穩定的排版引擎,可以產生極高品質的 PDF。然而,許多 LaTeX 使用者,甚至 LaTeX 愛好者,都會同意 LaTeX 語言在某種程度上已經過時——它的錯誤訊息通常相當令人困惑,對全域變數的依賴經常導致套件之間的衝突,對大型文件的編譯速度很慢且通常相當複雜,並且它會產生醜陋的中間檔案(`.aux`、`.log` 等)。
有人建議用 [typst](https://github.com/typst/typst) 替換 LaTeX,這是一個現代的排版引擎,具有更好的開發體驗和更快的編譯速度。然而,經過仔細評估,我決定堅持使用 LaTeX。這裡的決定因素是,YAMLResume 被設計為支援多語言且具有最佳的排版品質,然而,typst 的 [CJK 支援](https://blog.ppresume.com/posts/on-typesetting-engines#cjk-3)仍然不穩定且缺乏。
稍後我可能會添加一個新的[渲染器](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/renderer/base.ts)後端來支援 typst。
## 富文字支援
雖然我們決定不使用 markdown 作為履歷輸入格式,但我們確實支援各個章節中 `summary` 欄位的有限 markdown 富文字語法集。
目前,我們支援以下 markdown 語法:
* `**粗體**`
* `*斜體*`
* `[連結](https://www.google.com)`
* 有序列表
* 無序列表
* 嵌套列表
* 段落
例如,這是 `content.basics.summary` 欄位的示例片段:
```yml lineNumbers
---
content:
basics:
# ...
summary: |
This is a sample YAML resume that support limited set of markdown rich text syntax (bold, italics, links, lists):
- Computer Science major with **strong foundation** in data structures, *algorithms*, and software development
1. Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
2. Experiened in databases (SQL, NoSQL), familiar with server-side technologies ([Node.js](https://nodejs.org/en), Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
```
這是生成的 PDF:
你可以看到富文字語法被正確渲染,包括粗體、斜體、連結、列表,相當不錯,對吧?
## 路線圖
總的來說,該專案仍處於非常早期的階段,我們還有很長的路要走。我已經計劃了近期要做的功能列表:
1. 更多語言,日語、德語、法語等
2. 更多模板
3. [節別名](https://github.com/yamlresume/yamlresume/issues/11)
4. [節重排序](https://github.com/yamlresume/yamlresume/issues/12)
5. [模式驗證](https://github.com/yamlresume/yamlresume/issues/10)
如有任何問題,你可以:
* 提出 [issue](https://github.com/yamlresume/yamlresume/issues/)
* 開啟 [討論](https://github.com/yamlresume/yamlresume/discussions)
* 留言 [訊息](https://discord.gg/9SyT7mVV4K)
敬請期待!
# YAMLResume v0.8: Markdown 輸出
URL: (/zh-tw/blog/markdown-output)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
我們非常激動地宣佈 [YAMLResume v0.8](https://github.com/yamlresume/yamlresume/releases/tag/v0.8.0) 的發佈,這是我們讓“Resume as Code”成爲全球開發者和專業人士標準之旅中的一個重要里程碑。
自成立以來,YAMLResume 一直專注於一個核心使命:允許您以乾淨、版本控制友好的 YAML 格式編寫簡歷,並將其編譯爲排版精美、像素完美的 PDF。雖然 PDF 仍然是求職的黃金標準,但我們意識到我們的用戶經常需要其他格式的簡歷數據——用於個人網站、粘貼到申請人跟蹤系統 (ATS),甚至用於輸入大型語言模型 (LLM) 進行優化。
在 v0.8 中,我們引入了一個強大的新架構:[多佈局](/zh-cn/docs/layouts),隨之而來的是對 [Markdown 輸出](/zh-cn/docs/layouts/markdown)的一流支持。
TL;DR,快速演示:
[](https://asciinema.org/a/759578)
## 帶佈局的 YAMLResume
在 YAMLResume 的早期版本中,編譯流程是線性且單一的。您提供一個 YAML 文件,引擎吐出一個 PDF。如果您想要不同的[模板](/zh-cn/docs/layouts/latex#templates),您需要更改 `layout.template` 字段。如果您想要不同的字體大小,您需要微調[排版](/zh-cn/docs/layouts/latex#typography)設置。但最終,目的地始終是通過 [LaTeX](/zh-cn/docs/layouts/latex) 引擎生成的 PDF 文件。
這雖然有效,但也存在侷限性。如果您想生成一份 PDF 通過電子郵件發送給招聘人員,同時也需要一份純文本版本用於舊版表格怎麼辦?如果您想要一份 [Markdown](/zh-cn/docs/layouts/markdown) 版本發佈在您的 [Hugo](https://gohugo.io/) 或 [Next.js](https://nextjs.org/) 博客上怎麼辦?
在 v0.8 中,我們完全重新設計了[佈局架構](/zh-cn/docs/compiler/schema/zod#layoutsschema)以支持[多佈局](/zh-cn/docs/layouts)。現在,您可以在簡歷的 YAML 文件中定義一個佈局列表,而不是單一的一組輸出設置。每個佈局指定一個 `engine`(如 `latex` 或 `markdown`)及其特定的配置選項。
這意味着只需一個 [`yamlresume build`](/zh-cn/docs/cli#build) 命令現在可以同時生成多個工件——PDF、Markdown 文件,未來還會有 HTML 或 docx 文件。這遵循了“單一事實來源”原則:您的 `resume.yml` 仍然是單一的事實來源,而輸出只是爲不同交付渠道量身定製的衍生表示。
這是新配置在您的 YAML 文件中的樣子:
```yml lineNumbers
# Multiple output layouts configuration
layouts:
- engine: latex
page:
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
showPageNumbers: true
template: moderncv-banking
typography:
fontSize: 11pt
- engine: markdown
```
如您所見,我們在這裏定義了兩個佈局。第一個使用 [`latex`](/zh-cn/docs/layouts/latex) 引擎(我們經典的 PDF 生成器),帶有特定的模板、頁邊距和排版設置等。第二個使用新的 [`markdown`](/zh-cn/docs/layouts/markdown) 引擎。這種方法的美妙之處在於,您可以根據需要添加或刪除佈局,而無需觸及簡歷的實際內容。
## Markdown 作爲新的輸出
爲什麼是 Markdown?Markdown 已成爲開發者世界的通用語言。它輕量、可讀且受到普遍支持。通過添加 Markdown 作爲輸出目標,YAMLResume 彌合了正式簡歷文檔與靈活、網絡優先的世界之間的鴻溝。
讓我們看看實際操作。如果您安裝了 `yamlresume`(版本 0.8.0 或更高),您只需兩個命令即可生成新簡歷並進行構建。
### 第一步:創建新簡歷
首先,讓我們使用 [CLI](/zh-cn/docs/cli) 生成一個樣板簡歷:
```console
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
這將創建一個帶有默認配置的 `my-resume.yml` 文件,該文件現在默認包含 [LaTeX](/zh-cn/docs/layouts/latex) 和 [Markdown](/zh-cn/docs/layouts/markdown) 佈局。
這是生成的 `my-resume.yml` 文件的內容——您可以忽略 `content`,直接看最後一行以查看 `markdown` 佈局配置:
```yml lineNumbers
---
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@ppresume.com
url: https://ppresume.com/gallery
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
city: Sacramento
region: California
country: United States
postalCode: "95814"
profiles:
- network: Line
url: https://line.com/PPResumeX
username: PPResumeX
- network: Twitter
url: https://twitter.com/PPResumeX
username: PPResumeX
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
startDate: Sep 1, 2016
endDate: Jul 1, 2020
courses:
- Discrete Methods in Computer Science
- Programming Language Concepts
- Data Structures and Object-Oriented Design
- Operating Systems
- Computer Architecture
- Database Systems
- Computer Networking
- Introduction to the Theory of Computing
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
work:
- name: PPResume
url: https://ppresume.com
startDate: Dec 1, 2022
endDate:
position: Senior Software Engineer
summary: |
- Developed and implemented efficient and scalable code, ensuring high-quality and maintainable web applications
- Collaborated with cross-functional teams to gather project requirements and translate them into technical solutions
- Conducted thorough testing and debugging to identify and resolve any issues or bugs in the software
- Actively participated in code reviews, providing valuable feedback to improve code quality and adherence to best practices
- Mentored and guided junior developers, fostering a collaborative and growth-oriented team environment
keywords:
- Scalability
- Growth
- Quality
- Mentorship
- name: PPResume
url: https://ppresume.com
startDate: Sep 1, 2020
endDate: Dec 1, 2022
position: Software Engineer
summary: |
- Created reusable React components to ensure code efficiency and maintainability
- Integrated with RESTful APIs to fetch and display dynamic data on the frontend
- Implemented client-side routing using React Router for smooth navigation between pages
- Actively participated in Agile development methodologies, attending daily stand-up meetings and sprint planning sessions
keywords:
- RESTful
- React
- Agile
languages:
- language: English
fluency: Native or Bilingual Proficiency
keywords:
- TOEFL 110
- IELTS 7.5
- language: Chinese
fluency: Elementary Proficiency
keywords: []
skills:
- name: Web Development
level: Expert
keywords:
- Python
- Ruby
- CSS
- React
- JavaScript
- name: DevOps
level: Intermediate
keywords:
- Python
- Kubernetes
- Docker
- Shell
- Ansible
- name: Design
level: Intermediate
keywords:
- Sketch
- Figma
- Photoshop
awards:
- title: Dean's List
awarder: University of Southern California
date: Oct 2016
summary: |
Awarded to students who achieve a high academic standing by maintaining a specified grade point average (GPA) during a semester.
certificates:
- name: AWS Certified Developer - Associate
url: https://aws.amazon.com/certification/
issuer: AWS
date: Mar 2021
publications:
- publisher: ACM Transactions on Interactive Intelligent Systems
url: https://dl.acm.org/journal/tiis
name: Enhancing Human-Computer Interaction through Augmented Reality
releaseDate: Dec 2017
summary: |
- Explores the potential of augmented reality (AR) in improving interaction between humans and computers
- Highlights benefits of AR in various areas such as gaming, education, healthcare, and design
- Discusses challenges and future directions of AR technology in enhancing user experience
references:
- name: Dr. Amanda Reynolds
phone: "(555) 123-4567"
relationship: Computer Science Professor
email: amanda.reynolds@usc.edu
summary: |
Andy Dufresne shows exceptional problem-solving skills and a solid understanding of programming concepts, he would bring immense value to any team or organization he becomes a part of.
projects:
- name: EduWeb
url: https://www.eduweb.xyz/
description: A web-based educational platform for interactive learning
startDate: Sep 2016
endDate: Dec 2016
summary: |
- Designed to enhance online learning experiences
- Facilitates students' engagement and collaboration through interactive features and user-friendly interface
- Offers a wide range of courses across various subjects
- Aims to improve the way students learn through the power of the web
keywords:
- Education
- Online Learning
- HCI
interests:
- name: Sports
keywords:
- Soccer
- Swimming
- Bicycling
- Hiking
- name: Music
keywords:
- Piano
- Guitar
volunteer:
- organization: USC Computer Science and Engineering Society
url: https://www.usccsesociety.org/
position: Tech Mentor
startDate: Sep 2015
endDate: Jul 2023
summary: |
- Volunteered as a Tech Mentor at USC Computer Science and Engineering Society
- Provided guidance and assistance to fellow students in their technical projects and coursework
- Assisted in organizing workshops, coding competitions, and networking events for the society members
- Contributed to fostering a collaborative and supportive environment within the student community
locale:
language: en
layouts:
- engine: latex
page:
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
showPageNumbers: true
template: moderncv-banking
typography:
fontSize: 11pt
- engine: markdown #[!code highlight]
```
### 第二步:構建簡歷
現在,運行構建命令:
```console lineNumbers
$ yamlresume build my-resume.yml
✔ Generated resume tex file successfully: my-resume.tex
◐ Generating resume pdf file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume pdf file successfully: my-resume.pdf
✔ Generated resume markdown file successfully: my-resume.md
```
注意最後一行:
`✔ Generated resume markdown file successfully: my-resume.md`。CLI 已自動檢測到您 YAML 配置中的 [`markdown`](/zh-cn/docs/layouts/markdown) 佈局,並生成了相應的 `.md` 文件以及 PDF。
### 結果 Markdown
讓我們看看生成的 `my-resume.md`。引擎使用標準語法標題、列表和鏈接,智能地將您的結構化 YAML 數據轉換爲乾淨、格式良好的 Markdown 文檔。
```markdown lineNumbers
# Andy Dufresne
Headline: Headed for the Pacific
- Email: hi@ppresume.com
- Phone: (213) 555-9876
- URL: https://ppresume.com/gallery
Location: 123 Main Street, Sacramento, California, United States, 95814
Profiles:
- Line: [@PPResumeX](https://line.com/PPResumeX)
- Twitter: [@PPResumeX](https://twitter.com/PPResumeX)
## Basics
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
## Education
### University of Southern California
Bachelor, Computer Engineering and Computer Science, Score: 3.8, Sep 2016–Jul 2020
URL: https://www.cs.usc.edu/
Courses: Discrete Methods in Computer Science, Programming Language Concepts, Data Structures and Object-Oriented Design, Operating Systems, Computer Architecture, Database Systems, Computer Networking, Introduction to the Theory of Computing
Summary:
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
## Work
### Senior Software Engineer
PPResume, Dec 2022–Present
URL: https://ppresume.com
Keywords: Scalability, Growth, Quality, Mentorship
Summary:
- Developed and implemented efficient and scalable code, ensuring high-quality and maintainable web applications
- Collaborated with cross-functional teams to gather project requirements and translate them into technical solutions
- Conducted thorough testing and debugging to identify and resolve any issues or bugs in the software
- Actively participated in code reviews, providing valuable feedback to improve code quality and adherence to best practices
- Mentored and guided junior developers, fostering a collaborative and growth-oriented team environment
### Software Engineer
PPResume, Sep 2020–Dec 2022
URL: https://ppresume.com
Keywords: RESTful, React, Agile
Summary:
- Created reusable React components to ensure code efficiency and maintainability
- Integrated with RESTful APIs to fetch and display dynamic data on the frontend
- Implemented client-side routing using React Router for smooth navigation between pages
- Actively participated in Agile development methodologies, attending daily stand-up meetings and sprint planning sessions
## Languages
- English: Native or Bilingual Proficiency, Keywords: TOEFL 110, IELTS 7.5
- Chinese: Elementary Proficiency
## Skills
- Web Development: Expert, Keywords: Python, Ruby, CSS, React, JavaScript
- DevOps: Intermediate, Keywords: Python, Kubernetes, Docker, Shell, Ansible
- Design: Intermediate, Keywords: Sketch, Figma, Photoshop
## Awards
### Dean's List
University of Southern California, Oct 2016
Summary:
Awarded to students who achieve a high academic standing by maintaining a specified grade point average (GPA) during a semester.
## Certificates
### AWS Certified Developer - Associate
AWS, Mar 2021
URL: https://aws.amazon.com/certification/
## Publications
### Enhancing Human-Computer Interaction through Augmented Reality
ACM Transactions on Interactive Intelligent Systems, Dec 2017
URL: https://dl.acm.org/journal/tiis
Summary:
- Explores the potential of augmented reality (AR) in improving interaction between humans and computers
- Highlights benefits of AR in various areas such as gaming, education, healthcare, and design
- Discusses challenges and future directions of AR technology in enhancing user experience
## References
### Dr. Amanda Reynolds
Computer Science Professor, amanda.reynolds@usc.edu, (555) 123-4567
Summary:
Andy Dufresne shows exceptional problem-solving skills and a solid understanding of programming concepts, he would bring immense value to any team or organization he becomes a part of.
## Projects
### EduWeb
A web-based educational platform for interactive learning, Sep 2016–Dec 2016
URL: https://www.eduweb.xyz/
Keywords: Education, Online Learning, HCI
Summary:
- Designed to enhance online learning experiences
- Facilitates students' engagement and collaboration through interactive features and user-friendly interface
- Offers a wide range of courses across various subjects
- Aims to improve the way students learn through the power of the web
## Interests
- Sports: Soccer, Swimming, Bicycling, Hiking
- Music: Piano, Guitar
## Volunteer
### USC Computer Science and Engineering Society
Tech Mentor, Sep 2015–Jul 2023
URL: https://www.usccsesociety.org/
Summary:
- Volunteered as a Tech Mentor at USC Computer Science and Engineering Society
- Provided guidance and assistance to fellow students in their technical projects and coursework
- Assisted in organizing workshops, coding competitions, and networking events for the society members
- Contributed to fostering a collaborative and supportive environment within the student community
```
## Markdown 的好處
您可能會想,“我已經有了一個漂亮的 PDF,爲什麼還需要 Markdown 版本?”擁有結構化的純文本簡歷表示的好處是巨大的,尤其是在現代 AI 驅動的世界中。
### 1. 對 LLM 友好
這也許是當今最重要的優勢。我們生活在大型語言模型 (LLM) 的時代。像 ChatGPT、Claude 和 Gemini 這樣的工具在分析文本方面非常出色,但它們在處理二進制 PDF 文件或複雜的 LaTeX 源代碼時可能會遇到困難。
通過生成乾淨的 Markdown 版本簡歷,您就擁有了 LLM 的完美輸入。您可以將 `resume.md` 複製粘貼到 ChatGPT 中並要求它:
* “根據這份職位描述調整我的簡歷……”
* “批評我的總結部分並提出改進建議……”
* “提取我的關鍵技能並將其格式化爲求職信……”
因爲 Markdown 是語義結構的(標題、列表、粗體文本),LLM 可以比原始文本或 PDF 轉換更好地“理解”您簡歷的層次結構和內容。
### 2. 互操作性和網絡發佈
Markdown 是網絡的原生內容格式。如果您有一個用 Next.js、Hugo、Jekyll 或 Gatsby 構建的個人作品集或博客,您可以直接將 `resume.md` 放入您的內容文件夾中。
使用新的 Markdown 輸出,您可以自動化您的個人品牌工作流程:
1. 使用您最新的工作或項目更新您的 `resume.yml`。
2. 運行 `yamlresume build`。
3. 生成的 `resume.pdf` 用於您的下載鏈接。
4. 生成的 `resume.md` 更新您網站上的“關於我”頁面。
不再需要手動複製粘貼或維護兩個單獨的簡歷版本。
### 3. 人類可讀性和 Git 差異
雖然 YAML 具有可讀性,但 Markdown 對於長文本來說更具可讀性。它是一個很好的中間格式,可以在沒有 YAML 語法或 LaTeX 命令“噪音”的情況下審查您的內容。
此外,由於輸出是確定性的純文本,您可以輕鬆地在 Git 中跟蹤更改。如果您更改了職位描述,`resume.md` 中的差異將清楚地顯示文本更改,這對於同行評審(例如,在 GitHub Pull Request 中)比嘗試對二進制 PDF 進行差異比較要友好得多。
### 4. 通用可移植性
Markdown 可以使用 [Pandoc](https://pandoc.org/) 等工具輕鬆轉換爲幾乎任何其他文檔格式。需要一個 `.docx` 文件給堅持使用 Word 的招聘人員嗎? `pandoc resume.md -f gfm -o resume.docx`。需要一個 HTML 片段嗎? `pandoc resume.md -f gfm -o resume.html`。Markdown 輸出作爲一個多功能的“樞紐”格式,解鎖了與整個文檔生態系統的兼容性。
## 下一步:HTML 佈局
佈局系統和 Markdown 引擎的引入僅僅是開始。我們正在積極開發 [HTML 佈局引擎](https://github.com/yamlresume/yamlresume/issues/45)。
想象一下運行 `yamlresume build` 並獲得一個完全響應式、SEO 優化、獨立的 HTML 文件,它看起來像您的 PDF 一樣好,但是是瀏覽器原生的。這將允許您將簡歷作爲簡單的靜態頁面託管在 GitHub Pages、Vercel 或 Netlify 上,且零開銷。
HTML 佈局將支持:
* 移動查看的響應式設計(無需在手機上捏合和縮放 PDF)。
* 根據您的簡歷內容自動生成的 SEO 元數據。
* 通過 CSS 變量支持主題。
* 交互式元素(例如,可點擊的項目鏈接、可摺疊部分)。
我們相信您的簡歷數據屬於您,您應該能夠以最適合您需求的格式呈現它——無論是用於打印的像素完美 PDF、用於 AI 的乾淨 Markdown 文件,還是用於網絡的響應式 HTML 頁面。
## 結論
YAMLResume v0.8 是靈活性邁出的一大步。通過將內容 (YAML) 從演示 (Layouts) 中分離出來,我們正在賦能開發者以新的和創造性的方式使用他們的簡歷數據。
我們邀請您升級到 v0.8,將 `markdown` 引擎添加到您的佈局中,並體驗在您需要時以您需要的格式提供簡歷的自由。
試一試:
```console lineNumbers
$ npm install -g yamlresume@latest
$ pnpm install -g yamlresume@latest
$ yarn global add yamlresume@latest
$ bun add -g yamlresume@latest
$ brew install yamlresume
```
# YAMLResume v0.6: 章節自定義
URL: (/zh-tw/blog/section-customization)
YAMLResume [v0.6](https://github.com/yamlresume/yamlresume/releases/tag/v0.6.0) 已經發布,它帶來了兩個強大的功能來定制您履歷的結構:[章節別名](/zh-tw/docs/layouts/sections/aliases) 和 [章節重排](/zh-tw/docs/layouts/sections/reorder)。這些功能允許您重命名章節標題並控制它們在最終 PDF 中的順序,為您提供更大的靈活性來定制您的履歷。
讓我們深入了解它們的工作原理。
## 章節別名
YAMLResume 中的預設章節標題(例如,`education`、`work`)會根據您選擇的[區域語言](/zh-tw/docs/layouts#locale)自動[翻譯](/zh-tw/docs/layouts/sections/docs/locale)。但是,您可能更喜歡不同的標題。例如,您可能希望將"工作"更改為"專業經驗"。
要定義別名,請在您的 `resume.yml` 中使用 `layout.sections.aliases` 映射。
```yml lineNumbers title="resume.yml"
---
content:
# ...
layout: # [!code focus]
sections: # [!code focus]
aliases: # [!code focus]
work: 專業經驗 # [!code focus]
education: 學術背景 # [!code focus]
skills: 技術技能 # [!code focus]
```
## 章節重排
預設情況下,章節按照[標準順序](/zh-tw/docs/layouts/sections/reorder#default-section-order)渲染。`layout.sections.order` 功能讓您更改此序列,以首先突出顯示您最重要的資訊。
例如,要將您的"技能"和"專案"章節放在"工作"經驗之前,您可以這樣定義順序:
```yml lineNumbers title="resume.yml"
---
content:
# ...
layout: #[!code focus]
sections: #[!code focus]
order: #[!code focus]
- skills #[!code focus]
- projects #[!code focus]
- work #[!code focus]
```
`order` 列表中的章節將首先出現,然後是其餘章節按預設順序排列。
## 綜合應用:完整範例
讓我們創建一個使用這兩個功能的一頁履歷。我們將同時為某些章節設置別名和重排。
```yml lineNumbers title="resume.yml"
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
---
layout:
sections: # [!code highlight]
aliases: # [!code highlight]
work: Professional Experience # [!code highlight]
education: Academic Background # [!code highlight]
skills: Technical Skills # [!code highlight]
order: # [!code highlight]
- basics # [!code highlight]
- work # [!code highlight]
- education # [!code highlight]
- skills # [!code highlight]
template: moderncv-banking
typography:
fontSize: 11pt
content:
basics:
name: Jane Doe
headline: Senior Software Engineer
email: jane.doe@example.com
phone: "555-123-4567"
summary: |
A passionate and experienced software engineer with a proven track record
of designing, developing, and deploying robust web applications. Skilled
in both front-end and back-end development, with a keen eye for detail and
a dedication to writing clean, efficient code.
education:
- institution: Tech University
area: Software Engineering
degree: Master
startDate: 2018-09-01
endDate: 2020-06-01
summary: Specialized in distributed systems and cloud computing.
- institution: State University
area: Computer Science
degree: Bachelor
startDate: 2014-09-01
endDate: 2018-06-01
summary: |
- Graduated with honors.
- Focused on algorithms, data structures, and distributed systems.
courses:
- Data Structures & Algorithms
- Operating Systems
- Computer Networks
- Database Systems
work:
- name: Tech Solutions Inc.
position: Senior Software Engineer
startDate: 2020-07-01
summary: |
- Led the development of a new microservices-based architecture, improving system scalability and reliability.
- Mentored junior engineers, providing guidance on best practices and code quality.
- Optimized application performance, reducing API response times by 30%.
- name: Innovate Corp.
position: Software Engineer
startDate: 2018-07-01
endDate: 2020-06-30
summary: |
- Developed and maintained features for a large-scale e-commerce platform using React and Node.js.
- Collaborated with product managers and designers to deliver high-quality user experiences.
- Participated in on-call rotation to ensure application stability.
- name: Data Systems LLC
position: Software Engineer Intern
startDate: 2017-06-01
endDate: 2017-08-31
summary: |
- Assisted in the development of a data processing pipeline.
- Wrote unit tests to ensure code quality.
- Gained experience with Agile development methodologies.
skills:
- name: Programming Languages
level: Expert
keywords:
- JavaScript (ES6+)
- TypeScript
- Python
- Go
- name: Technologies & Frameworks
level: Advanced
keywords:
- React
- Node.js
- Express
- Docker
- Kubernetes
- PostgreSQL
- name: Developer Tools
level: Advanced
keywords:
- Git & GitHub
- Webpack
- Jest
- CircleCI
languages:
- language: English
fluency: Native or Bilingual Proficiency
- language: Spanish
fluency: Limited Working Proficiency
```
在這裡,我們為 `work`、`education` 和 `skills` 章節設置了別名,並通過將 `work` 的優先級高於 `education`,然後是 `skills` 章節來重排章節:
現在,讓我們構建履歷:
```bash
yamlresume build resume.yml
```
您將得到一個包含以下內容的 PDF 文件——我突出了自定義章節:
太好了,它按預期工作!這不是很酷嗎?
## 總結
通過章節別名和重排,您現在可以精細控制履歷的結構。我們希望這些功能幫助您創建更加個性化和有效的履歷。
章節自定義的最佳方面是,您總是可以[擴展 YAMLResume 的 i18n 能力以支援更多語言](/zh-tw/docs/layouts/sections/reorder#default-section-order)。預設情況下,預設章節標題將根據目標區域語言(通過 `layout.locale.language` 設置)自動翻譯。但是,總是有 YAMLResume [尚未支援您的目標語言](https://github.com/yamlresume/yamlresume/discussions/36) 的情況,因此您可以用自己的標題覆蓋預設章節標題。
同時,不同背景的人對章節順序有不同的偏好。例如,尋找行業工作的候選人可能會將 `work` 排在 `education` 前面,而尋找學術職位的博士後研究人員會將 `education` 排在 `work` 前面。
希望您喜歡這些新功能!
# YAMLResume v0.10: VS Code 模板與荷蘭語支援
URL: (/zh-tw/blog/v0.10)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
我們很高興地宣布 [YAMLResume v0.10](https://github.com/yamlresume/yamlresume/releases/tag/v0.10.0) 正式發布。此版本專注於透過開發者最愛的主題擴展我們的布局生態系統,擴大我們的國際化支援,並增加對文檔格式的精細控制。
## 新 HTML 模板: VS Code
對於開發者來說,代碼編輯器就是你的家。現在,你的履歷也可以讓你感到同樣親切。我們為 HTML 引擎推出了一款全新的 [VS Code 模板](/docs/layouts/html/templates/vscode),其深色主題靈感源自 Visual Studio Code 的 "Dark+" 配色方案。
它的特點是採用語法高亮美學——將你的姓名視為類(class),將你的技能視為對象(object),將你的經歷視為函數(function)。若要使用它,只需更新你的布局配置:
```yml lineNumbers
layouts:
- engine: html
template: vscode #[!code highlight]
```
這款模板非常適合軟體工程師、DevOps 專業人士以及任何想要立即展現其技術背景的人。
## 荷蘭語支援
YAMLResume 在全球範圍內持續發展。感謝 [MattiaPun](https://github.com/MattiaPun) 的貢獻,我們現在支援 [荷蘭語 (nl)](/docs/locale/dutch)!
這使我們支援的語言數量達到了六種:
* [英語 (en)](/docs/locale/english)
* [中文 (zh)](/docs/locale/chinese)
* [西班牙語 (es)](/docs/locale/spanish)
* [法語 (fr)](/docs/locale/french)
* [挪威語 (no)](/docs/locale/norwegian)
* [荷蘭語 (nl)](/docs/locale/dutch)
要生成荷蘭語履歷,請在你的 `resume.yml` 中設置語言:
```yml lineNumbers
locale:
language: nl
```
這將自動翻譯章節標題(例如 "Werkervaring"、"Opleidingen")、日期格式和國家名稱。
## LaTeX 紙張大小支援
我們為 LaTeX/PDF 引擎增加了對紙張大小的顯式控制。雖然 A4 是世界許多地區的标准,但 US Letter 對於北美地區至關重要。
你現在可以直接在配置中指定首選的紙張大小:
```yml lineNumbers
layouts:
- engine: latex
page:
# 選項: 'a4' (默認) 或 'letter'
paperSize: letter #[!code highlight]
```
這確保了無論你身处哪個地區,你的 PDF 履歷都能完美列印。特別感謝 [djryanj](https://github.com/djryanj) 推動了這一功能的實現!
## 開關圖標
有時少即是多。雖然圖標可以增加視覺吸引力,但在某些正式場景或針對 ATS(候選人跟蹤系統)的語境下,可能需要更嚴格的純文本展示。
我們在 HTML 和 LaTeX 引擎的 `advanced` 設置下引入了 `showIcons` 選項。這讓你能够靈活地開啟或關閉聯絡資訊和社交主页的圖標。
```yml lineNumbers
layouts:
- engine: html
advanced:
showIcons: false #[!code highlight]
- engine: latex
advanced:
showIcons: false #[!code highlight]
```
## 結語
YAMLResume v0.10 旨在為你提供更多選擇——從履歷的外觀到如何符合你當地的標準。
今天就升級以探索新功能:
```console
$ npm install -g yamlresume@latest
# 或者
$ brew upgrade yamlresume
```
一如既往,我們歡迎你在 [GitHub](https://github.com/yamlresume/yamlresume) 上提出建議和貢獻。祝履歷製作愉快!
# YAMLResume v0.5: 履歷編譯器
URL: (/zh-tw/blog/yamlresume-compiler)
我們非常興奮地宣布 [YAMLResume v0.5](https://github.com/yamlresume/yamlresume/releases/tag/v0.8.1) 的發布,這是一個重要的里程碑,將 YAMLResume 從一個簡單工具轉變為一個成熟的**履歷編譯器**。此版本引入了強大的架構、強大的模式驗證和增強的 CLI,使您的履歷創建過程更加可靠、高效且無錯誤。
## 手動履歷編寫的問題
起草履歷通常是一個繁瑣且容易出錯的過程。無論您使用的是文字處理器還是簡單的標記語言,都容易出錯:
* 關鍵欄位如 `degree` 或 `fluency` 中的拼寫錯誤。
* 格式不正確的電子郵件地址或 URL。
* 不一致的日期格式。
* 忘記求職申請所需的欄位。
這些小的錯誤可能導致編輯、生成和校對的無休止循環。核心問題是缺乏一個系統來在最終文件生成之前強制執行結構和驗證資料。
## 解決方案:履歷編譯器
受程式語言編譯器的啟發,[YAMLResume v0.5](https://github.com/yamlresume/yamlresume/releases/tag/v0.8.1) 引入了新的編譯器架構,將您的履歷源文件(YAML 格式)視為程式碼。然後這個"程式碼"通過管道處理,產生一個精美的專業 PDF。
這個新架構定義了兩個核心組件:
1. 履歷的[標準資料格式](/zh-tw/docs/compiler/types),以及用於驗證資料的[模式](/zh-tw/docs/compiler/schema)。
2. 實現資料格式和模式驗證的參考[編譯器](/zh-tw/docs/compiler)。
這種方法帶來了幾個關鍵優勢:
* **關注點分離**:您只專注於履歷的**內容**。編譯器處理**呈現**——佈局、排版和格式。
* **早期錯誤檢測**:編譯器根據預定義模式驗證您的履歷,立即捕獲錯誤並提供清晰、可操作的反饋。
* **一致性和可靠性**:通過強制執行標準結構,編譯器確保您的履歷資料始終一致,並準備好用於任何模板。
### 實際演示
例如,考慮以下包含幾個常見錯誤的履歷:
```yml lineNumbers title="invalid-resume.yml"
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
---
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@pp # [!code highlight]
url: https//ppresume.com/gallery # [!code highlight]
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
region: California
city: S # [!code highlight]
country: United States
postalCode: "95814"
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
startDate: Sep 1, 2016
endDate:
courses:
- D # [!code highlight]
- Programming Language Concepts
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
layout:
typography:
fontSize: 13pt # [!code highlight]
```
我們有幾個問題:
1. `email: hi@pp` - 格式無效
2. `url: https//ppresume.com/gallery` - 協議部分缺少 `:`
3. `city: S` - 太短,應該是 2 個字元或更多,世界上有名字只有 1 個字元的城市嗎?
4. `- D` - 第一門課程太短,應該是 2 個字元或更多
5. `fontSize: 13pt` - 應該是 10pt、11pt 或 12pt,13pt 太大,在履歷起草場景中意義不大
這些錯誤,以前可能被忽視,現在可以立即捕獲。您可以運行 `yamlresume validate my-resume.yml` 或簡單地運行 `yamlresume build my-resume.yml`。YAMLResume 將以廣泛採用的[clang 風格錯誤格式](https://clang.llvm.org/diagnostics.html)報告所有問題,允許您在生成最終 PDF 之前修復它們。
## 編譯器的核心:模式
此新版本的基石是 **[YAMLResume 模式](/zh-tw/docs/compiler/schema)**。我們提供了一個全面的模式,定義了您履歷中每個資料片段的結構和規則。
我們為此使用兩種強大的技術:
* **[Zod](https://zod.dev)**:用於編譯器內的運行時驗證,提供強大的安全網和詳細的錯誤訊息。
* **[JSON Schema](https://json-schema.org)**:用於編輯器和 IDE 整合。通過在您的 YAML 文件中添加一行,您就可以在編輯器中解鎖自動完成、懸停屬性文件和即時格式驗證。
如果您有在 v0.5 之前創建的履歷,您仍然可以利用模式驗證。只需在您的履歷文件中添加以下行,並為您的編輯器安裝 [YAML 語言伺服器](https://github.com/redhat-developer/yaml-language-server)。
```yml lineNumbers
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
```
這種整合提供了一系列好處,極大地改善了履歷編寫體驗:
### 自動完成
減少查找欄位名稱的時間。您的編輯器會在您輸入時建議有效屬性,確保您每次都使用正確的欄位。
### 即時格式驗證
在錯誤發生時捕獲它們。模式驗證提供即時反饋,從簡單的拼寫錯誤到不正確的電子郵件格式或缺少必需欄位。
如果缺少必需鍵,警告會升級到其父物件,使其易於發現和修復。
### 內聯屬性文件
不再猜測欄位的作用。懸停在任何屬性上即可獲得即時文件,解釋其用途、預期格式和允許值。
## 增強的 CLI
`yamlresume` [CLI](/zh-tw/docs/cli) 現在比以往更強大。[構建](/zh-tw/docs/cli#build) 命令運行整個編譯器管道,從驗證到 PDF 生成,而新的 [驗證](/zh-tw/docs/cli#validate) 命令讓您無需構建即可檢查履歷。
[](https://asciinema.org/a/728098)
這種無縫工作流程轉變了您的履歷創建過程,使其更高效、更可靠,同時最小化錯誤。
## 這對您意味著什麼
通過 [YAMLResume v0.5](https://github.com/yamlresume/yamlresume/releases/tag/v0.8.1),您可以:
* **自信地編寫**:知道您的履歷結構是健全的,資料是有效的。
* **節省時間**:早期捕獲錯誤並消除繁瑣的校對循環。
* **保持靈活性**:在不同履歷模板之間輕鬆切換。
* **享受更好的編輯體驗**:在您喜歡的編輯器中獲得即時反饋和自動完成。
我們邀請您體驗新 YAMLResume 編譯器的強大功能和簡單性:
* **安裝或更新**到最新版本:`npm install -g yamlresume@latest`
* \*\*閱讀新的[編譯器文件](/zh-tw/docs/compiler)\*\*以了解更多關於架構和模式的資訊。
* **加入我們的社群**在 [GitHub](https://github.com/yamlresume/yamlresume/discussions) 提問、報告問題或貢獻。
我們相信此版本標誌著履歷創建的新時代,為每個人帶來編譯器的強大功能和可靠性。我們迫不及待想看到您將構建的驚人履歷!
別忘了,您可以使用我們的 [Docker 鏡像](/zh-tw/blog/yamlresume-docker) 試用新編譯器:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
```
# Docker 中的 YAMLResume
URL: (/zh-tw/blog/yamlresume-docker)
我非常興奮地宣布 YAMLResume 現在有了一個 [docker 鏡像](https://hub.docker.com/r/yamlresume/yamlresume),您可以[使用 docker 立即運行 YAMLResume](https://asciinema.org/a/722057)。
## 為什麼選擇 Docker?
YAMLResume 是一個 Node.js CLI 工具和一個 [庫](https://www.npmjs.com/package/@yamlresume/core)。安裝 YAMLResume 本身並不困難,因為它只需要 Node.js。實際上,我們甚至可以將其編譯為二進位檔案並直接運行而無需安裝 Node.js。
然而,YAMLResume 對 LaTeX 有強制依賴,這帶來了一些新的問題:
* 安裝 LaTeX 需要時間;通常需要大約 5-10 分鐘來下載適當的 LaTeX 發行版並配置它。
* LaTeX 不是一個單一的二進位程式;它是程式的集合。一些使用者[不喜歡在他們的機器上安裝許多程式](https://github.com/yamlresume/yamlresume/issues/6#issuecomment-2916479009)。
雖然我們已經提供了一個非常全面的[安裝指南](/zh-tw/docs/installation),涵蓋 macOS、Windows、Ubuntu 和 RHEL,甚至包括安裝 YAMLResume 和 LaTeX 並讓它們協同工作的說明,這個過程對一些使用者來說仍然可能是痛苦的。
Docker 是解決這些問題的絕佳方案:它可以將所有內容打包到單個鏡像中,使安裝和配置變得容易。
## 如何使用
一圖勝千言。這裡是一個展示如何使用它的截圖:
我們的 [docker 鏡像](https://hub.docker.com/r/yamlresume/yamlresume)包含了 所有預打包的內容,包括:
* [Node.js](/zh-tw/docs/installation#nodejs)
* [yamlresume CLI](/zh-tw/docs/installation#yamlresume)
* [XeTeX](/zh-tw/docs/installation#xetex)
* [一些推薦的字型](/zh-tw/docs/installation#font)
您可以使用以下命令立即建立新履歷:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
```
相應地編輯 `my-resume.yml`,然後從 YAML 構建履歷到 PDF:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
```
#### 底層原理
如果您熟悉 docker,您可能已經知道這是如何工作的。如果不熟悉,這裡是一個快速解釋:
1. `docker run ... yamlresume/yamlresume` - 從 `yamlresume/yamlresume` 鏡像運行新容器。如果此鏡像在您的本地機器上不存在,它將從 [docker Hub](https://hub.docker.com/r/yamlresume/yamlresume) 拉取。
2. `--rm` - 在退出時自動刪除容器。
3. `-v $(pwd):/home/yamlresume` - 將當前目錄 (`$(pwd)`) 掛載到容器中的 `/home/yamlresume`,允許容器存取本地檔案。
4. `new my-resume.yml` 或 `build my-resume.yml` - 運行 yamlresume CLI [new](/zh-tw/docs/cli#new) 或 [build](/zh-tw/docs/cli#build) 子命令來建立或構建檔案名稱為 `my-resume.yml` 的履歷。
基本上,您可以以這種方式調用所有 `yamlresume` [CLI 子命令](/cli)——只需在 `yamlresume/yamlresume` 後附加子命令,然後按照相應的使用指南進行操作。
`-v` 標誌非常重要,因為它將當前目錄 (`$(pwd)`) 掛載到容器中的 `/home/yamlresume`,允許本地目錄和容器之間進行雙向檔案同步。沒有這個標誌,構建輸出工件將在容器退出後丟失。
## 工程設計
如果您對 docker 有一點了解,構建 docker 鏡像並不困難。然而,將 YAMLResume 包裝在 docker 中並不像聽起來那麼容易。以下是一些挑戰。
### LaTeX 配置很繁瑣
安裝可工作的 LaTeX 發行版需要時間;通常需要大約 5-10 分鐘來下載和配置適當的 LaTeX 發行版。在 GitHub Action運行器中,這個過程[甚至更長——長達 20 多分鐘](https://github.com/yamlresume/yamlresume/actions/runs/15438395862/job/43450134447)。
```docker
RUN apt update && \
apt install -y \
texlive-xetex \
texlive-fonts-extra \
texlive-lang-all \
fonts-noto-cjk \
fonts-noto-cjk-extra \
```
我們將構建 [yamlresume 的 docker 鏡像](https://hub.docker.com/r/yamlresume/yamlresume)作為一個 3 步過程:
1. 從 Node.js 鏡像作為基礎開始。
2. 安裝和配置 LaTeX 發行版。
3. 安裝 yamlresume CLI。
如前所述,步驟 2 是最耗時的部分。如果我們每次需要更新 docker 鏡像時都必須重新開始,在 github action 運行器中構建 docker 鏡像將需要 30 分鐘。
為了避免這種情況,我們使用多階段構建來快取 LaTeX 發行版,因此我們每次更新 docker 鏡像時不需要從頭安裝它。
因此,我們建立了一個新的 [yamlresume/yamlresume-base](https://hub.docker.com/r/yamlresume/yamlresume-base),這是一個安裝了 Node.js 和 LaTeX 發行版的基礎鏡像。這個基礎鏡像是穩定的,不會經常更新,我們的 `yamlresume/yamlresume` 鏡像構建在這個基礎鏡像之上。只需 3 分鐘就可以拉取 `yamlresume/yamlresume-base` 鏡像並在其上安裝 yamlresume CLI,這大大減少了迭代時間。
### 多平台支援
另一個挑戰是支援[多平台構建](https://docs.docker.com/build/building/multi-platform/)。眾所周知,macOS M1 及更高版本是基於 ARM 的機器。雖然它們可以通過模擬運行 AMD64 架構的 docker 鏡像,但性能要差 10 倍。
因此,我們必須為 `yamlresume/yamlresume` 支援多平台鏡像。幸運的是,docker 官方提供了關於如何[在 github actions 中構建多平台鏡像](https://docs.docker.com/build/ci/github-actions/multi-platform/)的詳細指南。
YAMLResume 的 docker 鏡像支援[兩個平台](https://hub.docker.com/r/yamlresume/yamlresume/tags):`linux/amd64` 和 `linux/arm64`,這應該足以涵蓋大多數桌面和伺服器機器。
享受使用 docker 的 YAMLResume!
# YAMLResume 登陸 Homebrew
URL: (/zh-tw/blog/yamlresume-homebrew)
YAMLResume 剛剛被 [Homebrew 接受](https://github.com/Homebrew/homebrew-core/pull/246949)。[Homebrew](https://brew.sh) 是 macOS 上最流行的套件管理工具。這代表 macOS 使用者現在可以用一個可信的命令安裝並保持 YAMLResume 為最新版本——無需手動全域安裝 [Node.js](https://nodejs.org),無需處理雜亂的路徑。本文展示使用 Homebrew 取得 YAMLResume 的詳細步驟,以及用於產生最佳 PDF 輸出的排版引擎。
## 為什麼重要
過去在 macOS 上取得 YAMLResume CLI 的典型步驟是:
1. [安裝 Node.js](/zh-tw/docs/installation#nodejs)
2. 透過 Node.js 套件管理器 (npm/pnpm/yarn/bun) [安裝 `yamlresume` CLI](/zh-tw/docs/installation#yamlresume)
3. [安裝排版引擎](/zh-tw/docs/installation#typesetting-engine) 用以產生 PDF
一個 [Homebrew formula](https://formulae.brew.sh/formula/yamlresume) 可以把第 1 步和第 2 步合併,因爲 Homebrew 能幫你管理 Node.js 依賴。這減少環境配置問題並簡化升級(`brew upgrade yamlresume`)。
## 快速安裝
```sh
brew install yamlresume
```
若尚未安裝 Node.js,Homebrew 會自動作為依賴安裝。
接著驗證:
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build a resume on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
如果能看到幫助輸出,說明 YAMLResume CLI 已經在你的 `PATH` 中。
YAMLResume 依賴排版引擎以產生 PDF;你可以透過 Homebrew 安裝 [MacTeX](/zh-tw/docs/installation#xetex) 或 [Tectonic](/zh-tw/docs/installation#tectonic)。
### 選項 A:完整 TeX Live (XeTeX)
透過 MacTeX cask 安裝(包含 XeTeX):
```sh
# install the full mactex
brew install mactex
# or if you want to save some disk space
brew install mactex-no-gui
```
安裝後確保 TeX 可執行檔位於 `PATH`(Homebrew 通常在 `/Library/TeX/texbin` 下建立符號連結)。測試:
```console
$ xelatex --version
XeTeX 3.141592653-2.6-0.999994 (TeX Live 2022)
kpathsea version 6.3.4
Copyright 2022 SIL International, Jonathan Kew and Khaled Hosny.
There is NO warranty. Redistribution of this software is
covered by the terms of both the XeTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the XeTeX source.
Primary author of XeTeX: Jonathan Kew.
Compiled with ICU version 70.1; using 70.1
Compiled with zlib version 1.2.11; using 1.2.11
Compiled with FreeType2 version 2.11.1; using 2.11.1
Compiled with Graphite2 version 1.3.14; using 1.3.14
Compiled with HarfBuzz version 3.4.0; using 3.4.0
Compiled with libpng version 1.6.37; using 1.6.37
Compiled with pplib version v2.05 less toxic i hope
Using Mac OS X Core Text and Cocoa frameworks
```
### 選項 B:Tectonic(輕量)
```console
$ brew install tectonic
$ tectonic --version
```
該選哪個?
| 引擎 | 優點 | 缺點 |
| -------- | ---------------------- | ------------------ |
| XeTeX | 相容性最高;成熟生態 | 下載體積大(4–6 GB) |
| Tectonic | 初始體積極小;自動取得所需 LaTeX 套件 | 與 XeTeX 相比偶爾有相容性差異 |
若遇到無法解釋的 LaTeX 套件問題或進階字型處理情況,改回 XeTeX。
## 建立並構建履歷
建立一份初始 YAML 履歷:
```console
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
在編輯器中查看與修改 `my-resume.yml`,然後構建 PDF:
```console
$ yamlresume build my-resume.yml
◐ Generating resume PDF with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume PDF successfully.
```
內部流程:
1. 將 `my-resume.yml` 轉換為 LaTeX (`my-resume.tex`)
2. 呼叫排版引擎 (`xelatex` 或 `tectonic`)
3. 產生 `my-resume.pdf`
## 升級
保持最新(新模板、修復、i18n 改進):
```console
$ brew update
$ brew upgrade yamlresume
```
## 移除
```console
$ brew uninstall yamlresume
```
僅在不再需要時移除可選依賴(字型、TeX 引擎等)。
## 疑難排解
使用詳細模式協助診斷構建問題:
```console
$ yamlresume build --verbose my-resume.yml
```
常見解法:
* 缺少排版引擎:安裝 MacTeX 或使用 Tectonic。
* 寫入檔案權限被拒:確認目前目錄可寫(避免系統路徑)。
* Tectonic 出現奇怪 LaTeX 錯誤:改回 XeTeX (`brew install mactex`)。
## 結語
被 Homebrew 收錄降低了新用戶的門檻並體現項目的成熟度。如遇特殊情況,歡迎提交 [issue](https://github.com/yamlresume/yamlresume/issues/) 或 [discussion](https://github.com/yamlresume/yamlresume/discussions) —— 我們迭代很快。祝編碼愉快,願你的簡歷始終像素級完美!
最後,感謝 [@chenrui333](https://github.com/chenrui333) 的最初 [PR](https://github.com/Homebrew/homebrew-core/pull/246949),讓 YAMLResume 收錄進 Homebrew。
# 1000 Étoiles
URL: (/fr/blog/1000-stars)
YAMLResume vient de franchir un jalon majeur : [1000 étoiles sur
GitHub](https://github.com/yamlresume/yamlresume/stargazers)—environ six mois
après [l'ouverture du projet en open
source](/fr/blog/introducing-yamlresume). Merci pour chaque étoile, issue,
discussion, contribution et partage de bouche à oreille. C'est un petit badge,
mais un qui reflète un véritable élan pour "resume as code", une excellente
typographie et un flux de travail axé sur les développeurs.
En juin, nous avons célébré [500 étoiles](/fr/blog/500-stars), aujourd'hui nous
revenons avec 1000. Entre-temps, YAMLResume a considérablement mûri—en
particulier à travers trois versions que beaucoup d'entre vous ont suivies et
adoptées rapidement : [v0.5](/fr/blog/yamlresume-compiler),
[v0.6](/fr/blog/section-customization) et
[v0.7](/fr/blog/dev-mode). Cet article récapitule les choses les plus
importantes que nous avons livrées, puis présente une feuille de route
pragmatique pour la prochaine étape du voyage.
## Récapitulatif
### v0.5 : Le Compilateur de CV en qui vous pouvez faire confiance
[v0.5](/fr/blog/yamlresume-compiler) a reformulé YAMLResume non seulement
comme un formateur, mais comme un compilateur. Ce seul changement
conceptuel—traiter un YAML de CV comme du code source—a débloqué la
correction, la cohérence et un flux de travail CLI brutalement simple.
Idées clés que nous avons livrées dans v0.5 :
* [Architecture du compilateur](/fr/docs/compiler/architecture) et [modèle de
données standard](/fr/docs/compiler/schema) : Nous avons formalisé la
structure du CV pour que tout moteur de rendu ou modèle en aval reçoive des
données propres et prévisibles. Cela a réduit les erreurs et amélioré la
portabilité des modèles.
* Validation forte à deux niveaux : [JSON Schema pour l'intégration
d'éditeurs](/fr/docs/compiler/schema/json) (auto-complétion, documentation
au survol, vérifications de format précoces) et [Zod pour la sécurité d'exécution
et les diagnostics
détaillés](/fr/docs/compiler/schema/zod). Les éditeurs se sentent
intelligents ; les builds se sentent sûrs.
* Nouveaux commandes qui raccourcissent les boucles : [`yamlresume
validate`](/fr/docs/cli#validate) pour des vérifications rapides, et `build`
amélioré qui valide toujours en premier. Avec l'option `--no-validate`, vous
restez en mouvement pendant les grandes modifications.
* [Sortie d'erreurs style
Clang](https://asciinema.org/a/728098) : Des erreurs claires liées aux
noms de fichiers et aux lignes économisent des minutes à chaque itération.
v0.5 a fait de YAMLResume un outil en qui vous pouvez faire confiance—même
sous pression. Si vous ne l'avez pas encore fait, parcourez les exemples et
vidéos du blog v0.5 ; ils montrent le validateur, les conseils de schéma et
les diagnostics en action.
### v0.6 : Personnalisation de sections qui correspond à la façon dont vous
racontez votre histoire
[v0.6](/fr/blog/section-customization) s'est concentré sur quelque chose de
trompeusement simple mais incroyablement puissant : exprimer votre récit dans
votre propre voix et ordre, sans forker des modèles ou hacker LaTeX.
Ce qui a été livré :
* [Alias de sections](/fr/docs/layouts/sections/aliases) : Renommez les
sections canoniques (par exemple, transformez `work` en "Expérience
Professionnelle", `education` en "Formation Académique") en utilisant
`layout.sections.aliases`. C'est particulièrement utile pour le ton,
la région/culture ou le ciblage de rôle.
* [Réordonnancement de sections](/fr/docs/layouts/sections/reorder) : Amenez
les sections les plus pertinentes en haut avec `layout.sections.order`.
Mettez `skills` avant `work`, ou affichez `projects` en premier pour les
rôles axés sur le portfolio.
* Résilience pratique : Améliorations comme tolérer les dates invalides (en
revenant aux chaînes)
Pourquoi c'est important :
* Les contextes d'embauche diffèrent. Un doctorat postulant à un postdoc veut
`education` en premier ; un ingénieur senior veut `work` en premier. v0.6
met ce choix à une modification YAML.
* La langue et le ton façonnent la perception. Les alias vous permettent de
correspondre aux normes de l'industrie ("Expérience", "Publications
Sélectionnées", "Open Source") sans chirurgie de modèle.
En bref : v0.6 a rendu YAMLResume adaptable à votre récit, et non l'inverse.
### v0.7 : Mode dev, car les CV méritent aussi un DX moderne
[v0.7](/fr/blog/dev-mode) a livré un flux de développement en mode watch qui
ressemble à un rechargement à chaud pour les CV. Enregistrez votre YAML, et
le PDF se reconstruit automatiquement. Les petits changements ne coûtent plus
de gros changements de contexte.
Ce qui a été livré :
* [`yamlresume dev`](/fr/docs/cli#dev) : Un processus persistant qui surveille
votre fichier de CV et reconstruit à l'enregistrement. Utilisez-le avec un
visualiseur PDF côte à côte pour un retour instantané.
* Internes de watch robustes : Nous avons adopté
[chokidar](https://github.com/paulmillr/chokidar) et ajouté une [logique de
coalescence](https://github.com/yamlresume/coalescifn) pour ne jamais
surcharger les builds sur des enregistrements successifs rapides. Une seule
build à la fois ; l'état le plus récent gagne toujours.
* Drapeaux pratiques en dev : `--no-pdf` lorsque vous n'avez besoin que de
`.tex` pour le débogage, `--no-validate` pendant les grandes refactorisations
lorsque la vitesse compte le plus.
Pourquoi c'est important :
* Vous itérez plus vite et écrivez mieux.
* L'outil prend la monotonie, vous gardez le flux. C'est tout l'intérêt de
DX.
Si vous êtes habitué à `npm run dev`, vous vous sentirez comme chez vous.
### YAMLResume avec Homebrew
Enfin et surtout, YAMLResume est maintenant disponible sur
[Homebrew](https://brew.sh) :
```sh
brew install yamlresume
```
Nous avons publié un nouvel article de blog pour expliquer comment l'utiliser
en détail : [YAMLResume arrive sur Homebrew](/fr/blog/yamlresume-homebrew).
## Regard vers l'avenir
YAMLResume a parcouru un long chemin depuis le petit moteur central de
[PPResume](https://ppresume.com) jusqu'à un puissant compilateur de CV
aujourd'hui. Mais nous avons encore beaucoup de travail à faire pour améliorer
davantage les capacités de YAMLResume et en faire l'outil idéal pour la
création de CV.
### Mises en page multiples
Actuellement, YAMLResume ne prend en charge que la sortie LaTeX. Nous allons
étendre le pipeline compilateur-vers-renderer pour prendre en charge
plusieurs moteurs de mise en page et formats de sortie, en commençant par
Markdown, puis HTML.
Voici les fonctionnalités que nous allons livrer :
* [Sortie Markdown](https://github.com/yamlresume/yamlresume/issues/110) : Un
artefact Markdown propre et structuré qui reflète les sections et le contenu
de votre CV. Utile pour les README, les portails d'emploi qui acceptent
Markdown, ou les transferts vers d'autres constructeurs de CV qui acceptent
markdown.
* [Sortie HTML](https://github.com/yamlresume/yamlresume/issues/45) : HTML est
le format de sortie le plus populaire pour les CV web. Le jour où YAMLResume
prendra en charge la sortie HTML, vous pourrez héberger votre CV n'importe où,
le partager avec n'importe qui et l'ouvrir sur n'importe quel appareil.
Un modèle de données, plusieurs sorties. La validation du compilateur reste la
colonne vertébrale ; les renderers deviennent des plugins. Vous choisissez
la(les) sortie(s) par audience : PDF pour les soumissions formelles, HTML pour
la présence web, Markdown pour les canaux orientés développeurs.
### GitHub Actions
Certaines personnes ont adopté YAMLResume pour [construire et héberger leurs
CV sur GitHub](https://github.com/yamlresume/yamlresume/discussions/50), chacun
d'entre eux ayant son propre workflow pour générer le PDF.
Nous allons livrer une action GitHub YAMLResume officielle pour que les gens
puissent valider, construire, héberger et publier leur CV, sans avoir à écrire
leur propre workflow.
Avec une GitHub Action dédiée, les mises à jour deviennent push-and-done.
### Plus de langues
YAMLResume v0.7 prend déjà en charge
[l'Anglais](/fr/docs/locale/english),
[le Chinois](/fr/docs/locale/chinese),
[le Norvégien](/fr/docs/locale/norwegian) et
[l'Espagnol](/fr/docs/locale/spanish), nous allons étendre
la liste pour prendre en charge plus de langues, rendant YAMLResume encore plus
accessible à plus de personnes dans le monde.
Le Français, l'Allemand et le Japonais seront le premier lot de langues que
nous allons prendre en charge dans les prochains mois.
## Remerciements
1000 étoiles n'est pas une fin mais un nouveau départ. Cela est venu de votre
adoption précoce, rapports de bugs, contributions linguistiques et demandes
réfléchies qui ont façonné la feuille de route. Merci pour votre soutien et vos
contributions.
Voici comment maintenir l'élan :
* Essayez la dernière CLI : `npm install -g yamlresume@latest` ou `brew install
yamlresume` sur macOS.
* Utilisez le mode dev pour votre prochaine boucle d'édition : `yamlresume dev
my-resume.yml`.
* Déposez des issues et des idées : [https://github.com/yamlresume/yamlresume/issues](https://github.com/yamlresume/yamlresume/issues)
* Rejoignez les discussions :
[https://github.com/yamlresume/yamlresume/discussions](https://github.com/yamlresume/yamlresume/discussions)
Nous continuerons à livrer des fonctionnalités pragmatiques qui rendent la
rédaction de CV plus calme, plus rapide et plus belle—tout en restant fidèles à
une source unique de vérité validée. En avant vers le prochain jalon.
# 500 Étoiles
URL: (/fr/blog/500-stars)
YAMLResume a atteint un jalon significatif—500 étoiles sur GitHub en seulement un mois.
Voici la chronologie :
* March 29: Decision to open source the engine behind [PPResume](https://ppresume.com)
* April 2: Local CLI [demo](https://x.com/xiaohanyu1988/status/1907427362259771748)
* April 10: Reached [100% test coverage](https://x.com/xiaohanyu1988/status/1910193021989368311)
* April 25: Got a [local npm package](https://x.com/PPResumeX/status/1915789536610967741)
* May 8: [Official open source of yamlresume](https://x.com/PPResumeX/status/1920294577497387493)
* May 17: Reached [200 stars](https://x.com/PPResumeX/status/1923635538046955662)
* May 23: Reached [300 stars](https://x.com/PPResumeX/status/1925834873723396131)
* May 30: Reached [400 stars](https://x.com/PPResumeX/status/1928347464693862635)
* June 11: Reached [500 stars](https://x.com/PPResumeX/status/1932716523401150840)
Entre-temps, nous avons reçu notre première [pull request](https://github.com/yamlresume/yamlresume/pull/2), fusionné [une autre pull request](https://github.com/yamlresume/yamlresume/pull/19), et traité notre premier [rapport de bug](https://github.com/yamlresume/yamlresume/issues/13). Remerciements spéciaux à [@jizusun](https://github.com/jizusun), [@koo6666](https://github.com/koo6666), et [@luyuhuang](https://github.com/luyuhuang) pour leurs contributions généreuses !
## Pourquoi l'Open Source ?
La première ligne de code pour YAMLResume a été écrite en 2023. Elle a commencé comme le moteur de composition principal pour [PPResume](https://ppresume.com)—un constructeur de CV commercial basé sur [LaTeX](https://www.latex-project.org/), parfait au pixel près, qui a déjà aidé des milliers de personnes à créer des CV magnifiquement composés.
Bien que je ne sois pas prêt à open sourcer PPResume lui-même, je veux donner aux utilisateurs un contrôle total sur leurs CV. En décembre 2024, PPResume a permis aux utilisateurs de télécharger le code LaTeX généré pour leurs CV, garantissant notre promesse [d'absence de verrouillage fournisseur](https://blog.ppresume.com/posts/no-vendor-lock-in) et donnant aux utilisateurs une propriété complète de leurs données.
De plus, le développement de PPResume a grandement bénéficié de la communauté open source. J'ai beaucoup appris d'elle, et il est maintenant temps de redonner.
Il y a très peu d'outils open source qui utilisent YAML comme format de CV. [JSON Resume](https://jsonresume.org) est un bon essai—comme nous le savons tous, YAML est un sur-ensemble de JSON. Cependant, JSON Resume ne fournit pas de solution opinionnée pour la composition de CV, la mise en page ou la sortie, ce qui le rend beaucoup moins pratique. YAML, d'autre part, est un [choix beaucoup meilleur que JSON](/docs/comparisons#json-resume) pour le formatage de CV.
Open sourcer YAMLResume était clairement la bonne décision. Regardez les tendances de téléchargement pour YAMLResume sur NPM :
## Qu'est-ce qui vient ensuite ?
Bien qu'YAMLResume ait été utilisé par un constructeur de CV commercial pendant près de deux ans, il est encore dans les premiers stades de développement, et il y a beaucoup plus à faire.
[Le support Docker](./yamlresume-docker) était l'une des fonctionnalités les plus demandées, et je suis heureux de dire qu'il est maintenant [disponible](/docs/installation#docker-users).
Une autre fonctionnalité importante est la validation des données. Contrairement à PPResume, qui fournit un formulaire soigneusement conçu pour que les utilisateurs remplissent et valident leurs données de CV, YAMLResume accepte une entrée non contrainte—n'importe quel fichier `.yaml`. Nous devons fournir un moyen de [valider l'entrée](https://github.com/yamlresume/yamlresume/issues/10) pour s'assurer que le programme gère toutes les formes d'entrée avec grâce.
En termes de fonctionnalités, nous prévoyons de supporter les [alias de sections](https://github.com/yamlresume/yamlresume/issues/11) et le [réordonnancement de sections](https://github.com/yamlresume/yamlresume/issues/12), rendant la sortie PDF plus adaptable et flexible.
Pour l'expérience développeur, nous visons à [supporter une sous-commande `dev`](https://github.com/yamlresume/yamlresume/issues/25) pour que les utilisateurs puissent modifier les CV et voir les changements PDF en temps quasi réel.
Enfin, certains utilisateurs ont soulevé des préoccupations concernant la compatibilité ATS. Nous nous engageons à nous assurer que la sortie PDF est [compatible ATS](https://github.com/yamlresume/yamlresume/issues/23).
Restez à l'écoute !
# YAMLResume v0.7 : Mode Dev
URL: (/fr/blog/dev-mode)
Je suis super excité d'introduire [YAMLResume v0.7](https://github.com/yamlresume/yamlresume/releases/tag/v0.7.0), une version axée sur l'amélioration de votre expérience développeur (DX). Le point central de cette mise à jour est le nouveau [mode `dev`](/docs/cli#dev)—une fonctionnalité qui apporte un flux de travail de développement fluide et en temps réel à votre processus de création de CV.
Fini les jours du cycle fastidieux édition-sauvegarde-construction. Avec le mode `dev`, YAMLResume surveille maintenant votre fichier de CV pour les changements et reconstruit automatiquement le PDF en temps quasi réel. Cette addition apparemment simple transforme l'expérience de création d'un CV en un processus fluide, interactif et beaucoup plus agréable.
## La friction de l'ancien flux de travail
Avant la v0.7, créer un CV avec YAMLResume, bien que puissant, impliquait un processus manuel et répétitif. Vous deviez :
1. Ouvrir votre fichier `my-resume.yml` dans votre éditeur de texte préféré.
2. Faire un changement—peut-être mettre à jour une description de poste ou ajouter une nouvelle compétence.
3. Sauvegarder le fichier.
4. Passer à votre terminal.
5. Exécuter la commande `yamlresume build my-resume.yml`.
6. Attendre que la commande se termine.
7. Passer à votre visualiseur PDF et l'actualiser pour voir le résultat.
8. Noter une petite faute de frappe ou un problème de formatage.
9. Répéter tout le cycle.
Cette boucle, illustrée ci-dessous, introduisait une friction significative dans le processus de création de CV. Chaque changement, aussi petit soit-il, nécessitait un changement de contexte et une exécution manuelle de commande. Cette interruption constante brise le flux créatif et ralentit le processus de perfectionnement de votre CV.
B{Sauvegarder le fichier};
B --> C[Passer au Terminal];
C --> D[Exécuter 'yamlresume build'];
D --> E{Attendre la construction};
E --> F[Passer au visualiseur PDF];
F --> G{Actualiser le PDF};
G --> H{Examiner les changements};
H -- Correction nécessaire --> A;
H -- Ça a l'air bien --> I[Terminé];
subgraph Cycle de construction manuel
A
B
C
D
E
F
G
H
end
`}
/>
Dans le monde du développement logiciel moderne, nous nous sommes habitués aux outils qui fournissent un retour instantané. Les développeurs web ont le [rechargement à chaud](https://webpack.js.org/concepts/hot-module-replacement/), qui met à jour le navigateur automatiquement pendant qu'ils changent le code. Cette boucle de retour serrée est cruciale pour la productivité et est un principe fondamental d'une excellente expérience développeur. Nous croyions que créer votre CV comme du code ne devrait pas être différent.
## La solution : Un mode Dev fluide
La commande `yamlresume dev` élimine entièrement le cycle de construction manuel. Vous la démarrez une fois, et elle fonctionne tranquillement en arrière-plan, surveillant vos changements et reconstruisant le CV automatiquement.
Pour démarrer le mode développement, exécutez simplement :
```bash
yamlresume dev my-resume.yml
```
Maintenant, vous pouvez ouvrir votre fichier `my-resume.yml` et votre PDF côte à côte. Chaque fois que vous sauvegardez un changement à votre fichier YAML, YAMLResume le détectera automatiquement et déclenchera une reconstruction. Votre visualiseur PDF se mettra à jour quelques instants plus tard, vous montrant la dernière version de votre CV.
Le nouveau flux de travail est significativement plus simple et plus efficace :
B[Éditer my-resume.yml];
B --> C{Sauvegarder le fichier};
C --> D{PDF automatiquement reconstruit};
D --> E{Examiner les changements dans le PDF};
E -- Correction nécessaire --> B;
E -- Ça a l'air bien --> F[Arrêter le mode Dev];
subgraph Flux de travail en temps réel
B
C
D
E
end
`}
/>
Cette boucle de retour instantané vous permet d'itérer rapidement, d'expérimenter avec différentes formulations, et de perfectionner la mise en page de votre CV sans le changement de contexte constant. Cela rend le processus moins fastidieux et plus comme une entreprise créative.
Voici une démonstration en direct du mode `dev` en action :
Vous pouvez regarder la [démo YouTube](https://youtu.be/xytlzedEQ_w) pour plus de détails.
## Comment ça fonctionne : Un regard sous le capot
Bien que le mode `dev` soit simple à utiliser, il y a une technologie intéressante qui fonctionne en arrière-plan pour s'assurer qu'il est à la fois robuste et efficace.
### Le surveilleur de fichiers : `chokidar`
Au cœur du mode `dev` se trouve un surveilleur de fichiers. Une approche naïve serait d'utiliser l'API [`fs.watch`](https://nodejs.org/docs/latest/api/fs.html#fswatchfilename-options-listener) intégrée de Node.js. Cependant, `fs.watch` a des limitations connues et des incohérences à travers différents systèmes d'exploitation. Plus important encore, il a du mal avec certains comportements d'éditeurs de texte.
Par exemple, les éditeurs comme Vim utilisent une stratégie de "sauvegarde atomique". Quand vous sauvegardez un fichier, Vim n'écrit pas directement dans le fichier original. Au lieu de cela, il écrit les changements dans un fichier temporaire (le fameux fichier `.swp`), puis renomme ce fichier temporaire pour remplacer l'original. Ce processus peut confondre les surveilleurs de fichiers basiques, qui pourraient manquer le changement entièrement ou déclencher plusieurs événements.
Pour fournir une expérience fiable, nous avons adopté **[chokidar](https://github.com/paulmillr/chokidar)**, une bibliothèque de surveillance de fichiers populaire et éprouvée. Chokidar abstrait les incohérences multiplateformes et est spécifiquement conçu pour gérer ces comportements d'éditeurs délicats avec grâce. Nous l'avons configuré pour attendre qu'un fichier ait fini d'être écrit avant de déclencher une reconstruction, s'assurant que nous n'essayons pas de construire un fichier partiellement sauvegardé.
### Prévenir les tempêtes de construction : `coalescifn`
Que se passe-t-il si vous sauvegardez le fichier plusieurs fois en succession rapide ? Une implémentation simple pourrait essayer de démarrer une nouvelle construction pour chaque événement de sauvegarde. Cela pourrait mener à une "tempête de construction", où plusieurs processus de construction s'exécutent simultanément, consommant des ressources système inutiles et menant potentiellement à des conditions de course.
Pour résoudre cela, nous avons écrit et open sourcé une petite utilitaire intelligente appelée [coalescifn](https://github.com/yamlresume/coalescifn). Cette utilitaire nous aide à **fusionner** plusieurs appels en un seul. Voici comment cela fonctionne dans le contexte du mode `dev` :
1. Quand le premier changement de fichier est détecté, nous démarrons immédiatement une construction.
2. Si plus de changements sont détectés *pendant que cette construction s'exécute*, nous ne démarrons pas de nouvelles constructions. Nous notons simplement que le fichier a changé à nouveau.
3. Une fois la construction initiale terminée, nous vérifions si d'autres changements se sont produits pendant ce temps.
4. S'il y avait des changements subséquents, nous exécutons exactement *une* construction de plus pour s'assurer que le PDF final reflète la version la plus récente du fichier. S'il n'y avait pas de nouveaux changements, nous ne faisons rien et attendons le prochain événement de sauvegarde.
Cette stratégie s'assure qu'il n'y a qu'une seule construction en cours à la fois, et elle garantit que la construction finale utilise toujours la version la plus récente de votre fichier de CV. C'est une approche efficace qui garde le mode `dev` réactif et léger sur les ressources système.
Voici un diagramme illustrant la logique de fusion :
>Surveilleur: Sauvegarder le fichier (t=0s)
Surveilleur->>Fusion: Déclencher la construction
Fusion->>Constructeur: Démarrer Construction #1
Utilisateur->>Surveilleur: Sauvegarder le fichier (t=1s)
Surveilleur->>Fusion: Déclencher la construction (ignoré, construction en cours)
Utilisateur->>Surveilleur: Sauvegarder le fichier (t=2s)
Surveilleur->>Fusion: Déclencher la construction (ignoré, construction en cours)
Constructeur-->>Fusion: Terminer Construction #1 (t=3s)
Fusion->>Constructeur: Démarrer Construction #2 (avec le contenu de fichier le plus récent)
Constructeur-->>Fusion: Terminer Construction #2 (t=6s)
`}
/>
## Contrôle avancé
La commande `dev` vient aussi avec des options pour vous donner plus de contrôle sur le processus de construction, reflétant les drapeaux disponibles sur la commande `build`.
### Ignorer la génération PDF
Parfois, vous pourriez seulement vouloir inspecter le fichier LaTeX intermédiaire (`.tex`) que YAMLResume génère. Cela peut être utile pour le débogage ou pour ceux qui veulent ajuster manuellement le code LaTeX. Générer le PDF est la partie la plus chronophage du processus de construction. Si vous n'en avez pas besoin, vous pouvez dire au mode `dev` de l'ignorer :
```bash
yamlresume dev my-resume.yml --no-pdf
```
Avec ce drapeau, le mode `dev` surveillera toujours les changements et régénérera le fichier `.tex` instantanément, mais il n'exécutera pas la commande `xelatex`. Cela rend le processus de reconstruction presque instantané.
### Désactiver la validation
Depuis la [v0.5](/blog/yamlresume-compiler), YAMLResume inclut une étape de validation de schéma puissante qui attrape les erreurs potentielles dans votre CV pendant la construction. Bien que ce soit incroyablement utile pour s'assurer de la justesse, il pourrait y avoir des moments où vous voulez la désactiver temporairement. Par exemple, vous pourriez être au milieu d'un grand refactoring de la structure de votre CV et ne pas vouloir être interrompu par des erreurs de validation.
Vous pouvez désactiver la validation avec le drapeau `--no-validate` :
```bash
yamlresume dev my-resume.yml --no-validate
```
Cela vous permet de travailler plus librement, avec la compréhension que vous devriez réactiver la validation plus tard pour vous assurer que votre CV est bien formé.
## Une nouvelle DX pour "CV comme Code"
L'introduction du mode `dev` est plus qu'une simple nouvelle fonctionnalité ; c'est un pas vers l'accomplissement de la vraie promesse de "CV comme Code". Il élève l'expérience d'un processus statique, piloté par ligne de commande à un processus dynamique et interactif qui ressemble beaucoup plus au développement logiciel moderne.
Vous pourriez être habitué à `npm run build` et `npm run dev` dans le passé ? YAMLResume a maintenant le même flux de travail intégré.
En fermant la boucle de retour, nous rendons plus facile et plus rapide pour vous de créer de beaux CV professionnels. Nous croyons que cela encouragera plus d'expérimentation et vous permettra de vous concentrer sur ce qui compte vraiment : le contenu de votre CV et comment il raconte votre histoire professionnelle.
Nous vous invitons à mettre à jour vers YAMLResume v0.7 et à expérimenter le nouveau mode `dev` par vous-même.
* **Installer ou mettre à jour** vers la dernière version : `npm install -g yamlresume@latest`
* **L'essayer** avec votre CV existant : `yamlresume dev my-resume.yml`
* **Rejoindre notre communauté** sur [GitHub](https://github.com/yamlresume/yamlresume/discussions) pour partager vos retours, poser des questions, ou contribuer à l'avenir d'YAMLResume.
Nous nous engageons à construire la meilleure expérience développeur possible pour la création de CV, et nous avons hâte d'entendre ce que vous pensez de cette nouvelle version !
# Comment masquer les icônes dans moderncv
URL: (/fr/blog/hide-moderncv-icons)
Lorsque vous générez un PDF avec [LaTeX](https://www.latex-project.org/), les
petits détails visuels comptent énormément. La classe
[`moderncv`](https://ctan.org/pkg/moderncv) ajoute des icônes à côté des champs
de contact (téléphone, email, site web, etc.), ce qui donne un rendu soigné, mais
certaines personnes préfèrent un en-tête plus minimaliste. D’autres doivent
respecter des modèles d’entreprise qui interdisent les pictogrammes. Cet article
explique ce qu’est `moderncv`, quelle bibliothèque d’icônes elle utilise, comment
les masquer, et comment le macro LaTeX `\renewcommand` rend cela possible.
## 1. Qu’est-ce que moderncv ?
[`moderncv`](https://ctan.org/pkg/moderncv) est une classe de document LaTeX
spécifiquement conçue pour les CV et les résumés professionnels. Elle fournit
une mise en page cohérente et professionnelle, ainsi qu’un ensemble de macros de
haut niveau pour formater les éléments classiques d’un CV : nom, titre,
coordonnées, titres de sections et entrées de parcours. Comparée à un document
LaTeX brut, `moderncv` offre un système de mise en forme prêt à l’emploi, avec
plusieurs variantes de style (comme `banking`, `classic` ou `casual`) et une
hiérarchie visuelle adaptée aux CV d’une page.
Un en-tête `moderncv` typique ressemble à ceci :
```latex
\name{}{Andy Dufresne}
\title{Software Engineer}
\phone[mobile]{+1 555 123 456}
\email{jane@example.com}
\homepage{https://example.com}
```
La classe interprète ces commandes et affiche un en-tête propre. Par défaut,
`moderncv` affiche également des icônes à côté de chaque élément, ce qui facilite
la lecture rapide des informations de contact.
## 2. Quelle bibliothèque d’icônes utilise moderncv ?
`moderncv` fournit des icônes via le package
[`fontawesome5`](https://ctan.org/pkg/fontawesome5). [Font
Awesome](https://fontawesome.com/) est un ensemble d’icônes très populaire, et
`fontawesome5` le rend accessible dans LaTeX avec des commandes comme
`\faEnvelope`, `\faMobileAlt` et `\faGlobe`. Dans `moderncv`, ces icônes sont
câblées à des macros de “symbole” comme `\emailsymbol` et `\homepagesymbol`.
Quand vous utilisez `\email{...}` ou `\homepage{...}`, la classe préfixe le
symbole correspondant, qui utilise un glyphe Font Awesome.
Comme les icônes passent par ces macros, vous pouvez les remplacer ou les
supprimer sans modifier le contenu de contact. Cette séparation entre contenu et
décoration permet d’obtenir un style plus épuré avec quelques redéfinitions.
## 3. Comment masquer les icônes dans moderncv
La méthode la plus propre consiste à redéfinir les macros de symbole en chaînes
vides. En LaTeX, `\renewcommand` permet de remplacer une macro existante par un
nouveau comportement. Si vous définissez chaque symbole `moderncv` à vide, les
libellés restent, mais les icônes disparaissent.
Voici le fragment minimal à placer dans le préambule, après le chargement de
`moderncv` :
```latex
% disable icons
\renewcommand*{\addresssymbol}{}
\renewcommand*{\mobilephonesymbol}{}
\renewcommand*{\fixedphonesymbol}{}
\renewcommand*{\faxphonesymbol}{}
\renewcommand*{\emailsymbol}{}
\renewcommand*{\homepagesymbol}{}
```
C’est exactement l’approche utilisée par le renderer `moderncv` de
[YAMLResume](https://yamlresume.dev/). Dans YAMLResume
[v0.10](/fr/blog/v0.10), le préambule LaTeX
[insère optionnellement](https://github.com/yamlresume/yamlresume/commit/b53f73d9b4b04bf04b90236ef01da56062f8ca1f)
ces lignes `\renewcommand*` lorsqu’une option de layout dans `advanced`, appelée
`showIcons`, est définie sur `false`. Ainsi, la sortie PDF peut activer ou
masquer les icônes sans toucher au contenu du CV.
Voici le CV moderncv sans icônes :
Le bloc LaTeX pertinent ressemble à ceci :
Si vous utilisez YAMLResume, vous pouvez piloter ce comportement via la
configuration de layout et laisser le renderer injecter ces overrides
automatiquement. Si vous écrivez du LaTeX à la main, copiez simplement le
fragment dans votre préambule. Dans les deux cas, le résultat est le même :
le texte reste, mais les pictogrammes disparaissent.
### Pourquoi cela fonctionne
`moderncv` définit un ensemble de macros pour chaque icône. Par exemple,
`\emailsymbol` sert à afficher l’icône email. Lorsque vous redéfinissez ce macro
avec `{}`, LaTeX l’expand toujours, mais n’imprime rien. Vous ne supprimez pas
l’email ; vous supprimez uniquement la décoration qui le précède.
### Astuce : masquer les icônes sociales
Si vous ajoutez des icônes manuellement dans des champs personnalisés (par
exemple avec `\faGithub` ou `\faTwitter`), vous pouvez aussi les supprimer en ne
les appelant pas. Dans le renderer YAMLResume, cela se fait en vérifiant un
drapeau `showIcons` avant d’insérer les glyphes Font Awesome pour les profils
sociaux. Le principe est identique : conserver le contenu du `\href` et omettre
le préfixe d’icône.
## 4. Qu’est-ce que le macro \renewcommand ?
LaTeX utilise des macros pour définir le comportement des commandes. Le macro
`\newcommand` crée une nouvelle commande, tandis que `\renewcommand` redéfinit
une commande existante. Pensez-y comme à “remplacer cette commande par une
nouvelle implémentation”.
La syntaxe est :
```latex
\renewcommand{\commandname}{replacement}
```
La version étoilée `\renewcommand*` se comporte de manière similaire, mais elle
indique à LaTeX de ne pas autoriser de saut de paragraphe dans le texte de
remplacement. Pour des macros de symbole courts comme `\emailsymbol`, l’étoile a
peu d’impact pratique, mais elle est fréquente dans les classes et modèles.
Dans `moderncv`, les macros d’icône sont déjà définis, donc vous devez utiliser
`\renewcommand` plutôt que `\newcommand`. Si vous tentez de redéfinir une macro
existante avec `\newcommand`, LaTeX renverra une erreur. C’est pourquoi le patch
utilise :
```latex
\renewcommand*{\emailsymbol}{}
```
Cette ligne signifie : “remplacer la définition existante de `\emailsymbol` par
une chaîne vide”. Le reste de la classe fonctionne toujours, car `\email{...}`
continue de s’étendre correctement ; il n’ajoute simplement plus l’icône.
## Pour résumer
* `moderncv` est une classe LaTeX pour CVs avec des macros structurés et de bons
réglages par défaut.
* Elle utilise le package `fontawesome5` pour les icônes, exposés via des macros
comme `\emailsymbol` et `\homepagesymbol`.
* Vous pouvez masquer les icônes en redéfinissant ces macros en chaînes vides
avec `\renewcommand*`.
* `\renewcommand` est le mécanisme LaTeX pour surcharger des macros existants.
Si vous voulez un en-tête minimaliste sans pictogrammes, cette approche est la
plus robuste. Elle reste aussi compatible avec l’avenir : si vous changez de
style ou ajoutez de nouveaux champs, il suffit de redéfinir les symboles
correspondants. Et au passage, cette option `advanced.showIcons` fonctionne pour
le moteur [HTML](/fr/docs/layouts/html) comme pour le moteur
[LaTeX](/fr/docs/layouts/latex).
# YAMLResume v0.9 : Sortie HTML
URL: (/fr/blog/html-output)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
Nous sommes ravis d'annoncer la sortie de
[YAMLResume v0.9](https://github.com/yamlresume/yamlresume/releases/tag/v0.9.0),
introduisant un support de première classe pour la [sortie HTML](/docs/layouts/html). Suite à
notre [version v0.8](/blog/markdown-output) qui a apporté la [sortie
Markdown](/docs/layouts/markdown), nous franchissons maintenant une autre étape majeure pour
rendre vos données de CV vraiment polyvalentes et natives du web.
Avec la v0.9, vous pouvez maintenant compiler votre CV YAML directement en un fichier
HTML autonome et responsive, parfait pour l'hébergement sur votre site web personnel, GitHub Pages,
ou toute plateforme d'hébergement statique. Fini la conversion de PDF ou la maintenance manuelle de
versions web séparées de votre CV.
Pour l'instant, nous ne fournissons qu'un seul modèle pour la mise en page HTML : le
modèle [calm](/docs/layouts/html/templates/calm), qui s'inspire du
modèle LaTeX moderncv. Il présente un design minimaliste avec une séparation claire des sections
et une mise en page élégante optimisée pour la visualisation web. Voici l'aperçu :
Une démonstration rapide de l'utilisation de YAMLResume v0.9 pour générer un CV HTML :
[](https://asciinema.org/a/763505)
## Pourquoi HTML ?
Lorsque nous avons introduit l'[architecture multi-mises en page](/docs/layouts) dans la v0.8,
nous avons imaginé un monde où votre unique `resume.yml` pourrait être rendu dans n'importe quel
format dont vous avez besoin. Nous avons commencé avec [LaTeX/PDF](/docs/layouts/latex) pour
les candidatures professionnelles et [Markdown](/docs/layouts/markdown) pour
l'interopérabilité et les flux de travail LLM. Maintenant, HTML complète la trinité des formats
essentiels de CV.
HTML offre des avantages uniques :
**Natif du Web** : HTML est le langage du web. Votre CV devient un citoyen de première classe
sur Internet, pas seulement un document que vous devez intégrer ou convertir.
**Design Responsive** : Contrairement aux PDF qui nécessitent de pincer et zoomer sur les appareils
mobiles, les CV HTML s'adaptent parfaitement à toute taille d'écran, des moniteurs de bureau
aux smartphones.
**Favorable au SEO** : Les moteurs de recherche peuvent indexer votre CV HTML, rendant vos compétences
et votre expérience découvrables. C'est impossible avec des CV uniquement en PDF.
**Interactif** : HTML permet des liens cliquables, un défilement fluide et d'autres
éléments interactifs qui améliorent l'expérience utilisateur au-delà des documents statiques.
**Zéro Dépendance** : La sortie HTML est un fichier autonome avec CSS intégré.
Déposez-le n'importe où—S3, Netlify, GitHub Pages—et ça fonctionne.
## Commencer
Si vous avez `yamlresume` installé (version 0.9.0 ou supérieure), ajouter une sortie HTML
à votre CV est aussi simple que de mettre à jour votre configuration de mises en page.
### Étape 1 : Mettre à jour la Configuration de votre CV
Ajoutez la mise en page HTML à votre `resume.yml` :
```yml lineNumbers
layouts:
- engine: latex
template: moderncv-banking
typography:
fontSize: 11pt
- engine: markdown
- engine: html #[! code highlight]
template: calm #[! code highlight]
typography: #[! code highlight]
fontSize: 16px #[! code highlight]
```
Le moteur HTML prend en charge une [typographie](/docs/layouts/html#typography) personnalisable
avec des tailles de police allant de 14px à 20px. Le modèle par défaut `calm` est
inspiré du populaire package LaTeX `moderncv`, offrant un look propre et professionnel.
### Étape 2 : Construire votre CV
Exécutez la commande de construction :
```console
$ yamlresume build my-resume.yml
✔ Generated resume tex file successfully: my-resume.tex
◐ Generating resume pdf file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume pdf file successfully: my-resume.pdf
✔ Generated resume markdown file successfully: my-resume.md
✔ Generated resume html file successfully: my-resume.html
```
C'est tout ! Vous avez maintenant trois fichiers de sortie à partir d'une source unique de vérité.
## Le Modèle Calm
La version initiale comprend le modèle `calm`, une mise en page soigneusement conçue
qui équilibre professionnalisme et lisibilité. Le modèle présente :
* **Typographie Claire** : Tailles de police et hauteurs de ligne optimisées pour l'écran et
l'impression.
* **Mise en Page Responsive** : S'adapte automatiquement des larges écrans de bureau aux écrans
mobiles étroits.
* **HTML Sémantique** : Utilise des éléments sémantiques HTML5 appropriés pour une meilleure accessibilité
et SEO.
* **Favorable à l'Impression** : Bien que conçu pour le web, le modèle inclut des styles d'impression
pour qu'il soit magnifique lorsqu'il est enregistré en PDF depuis le navigateur.
## Cas d'Usage
### GitHub Pages
Déployez votre CV HTML sur GitHub Pages avec une configuration minimale :
```yml
# .github/workflows/deploy.yml
name: Deploy Resume
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm install -g yamlresume
- run: yamlresume build resume.yml
- uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public
```
### Portfolio Responsive
Intégrez votre CV directement dans votre portfolio. Puisque le HTML est
autonome, vous pouvez même l'intégrer dans une iframe ou extraire les styles pour une intégration plus profonde.
### Partage Rapide
Envoyez le fichier HTML par e-mail ou partagez-le via Dropbox/Google Drive. Les destinataires peuvent l'ouvrir
dans n'importe quel navigateur sans avoir besoin de lecteurs PDF ou de logiciels spéciaux.
## Architecture Technique
Le [moteur de rendu
HTML](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/renderer/html/renderer.ts)
est construit avec les mêmes normes d'ingénierie rigoureuses que notre moteur
LaTeX/Markdown. En coulisses :
1. **Rendu Type-Safe** : Le moteur de rendu est écrit en TypeScript avec une sécurité de type complète
via des [schémas Zod](/docs/compiler/schema/zod).
2. **Système de Modèles** : Les modèles sont modulaires et extensibles. Bien que nous livrions avec
`calm` initialement, l'architecture prend en charge plusieurs modèles. Les modèles futurs
peuvent être ajoutés facilement.
3. **Méthodologie CSS** : Nous utilisons une combinaison de CSS Reset (basé sur modern-normalize)
et de styles de modèle scopés pour garantir un rendu cohérent entre les navigateurs.
4. **Gestion de l'Échappement** : Tout le contenu est [correctement
échappé en HTML](https://github.com/yamlresume/yamlresume/blob/v0.9.1/packages/core/src/utils/string.ts#L34-L44)
pour prévenir les vulnérabilités d'injection et garantir que les caractères spéciaux se rendent
correctement.
5. **Tests Complets** : Le moteur de rendu HTML comprend plus de 1 000 lignes de
[cas de
test](https://github.com/yamlresume/yamlresume/blob/v0.9.1/packages/core/src/renderer/html/renderer.test.ts)
qui atteignent 100% de couverture de tests et garantissent que le moteur de rendu fonctionne comme
prévu.
## Comparaison : LaTeX vs Markdown vs HTML
Voyons comment les trois moteurs se comparent :
| Fonctionnalité | LaTeX (PDF) | Markdown | HTML |
| -------------------- | ------------- | ---------------- | --------------- |
| **Cas d'Usage** | Candidatures | AI/LLMs, contenu | Hébergement web |
| **Formatage** | Pixel parfait | Minimal | Responsive |
| **Portabilité** | Universel | Universel | Natif du web |
| **Personnalisation** | Étendue | Limitée | Croissante |
| **Taille Fichier** | \~50-200 KB | \~5-20 KB | \~20-50 KB |
| **Dépendances** | Chaîne LaTeX | Aucune | Aucune |
| **Interactif** | Non | Non | Oui |
| **SEO** | Non | Quand publié | Oui |
| **Responsive** | Non | Dépend du rendu | Oui |
Chaque moteur excelle dans son domaine. La beauté de l'architecture de YAMLResume est que
vous n'avez pas à choisir—générez les trois à partir du même fichier source et utilisez
chacun là où il convient le mieux.
## Quelle est la Suite ?
Le moteur HTML v0.9 a posé une base solide, mais nous avons des plans ambitieux pour
les améliorations futures :
### Plus de Modèles
Nous ajouterons des modèles supplémentaires avec différentes esthétiques de design—minimaliste,
créatif, corporate, etc. Vous voulez contribuer un modèle ? Consultez notre
[guide de contribution](/docs/contributing).
### Personnalisation Étendue
Les versions futures étendront les options de typographie pour inclure les familles de polices, les schémas
de couleurs et les contrôles d'espacement, vous donnant plus de contrôle sur la présentation
visuelle.
### Mode Sombre
Support intégré du mode sombre utilisant des variables CSS et des requêtes média `prefers-color-scheme`.
### Améliorations d'Accessibilité
Bien que l'implémentation actuelle utilise du HTML sémantique, nous prévoyons d'ajouter des
étiquettes ARIA complètes et un support de navigation au clavier pour rendre les CV accessibles à tous
les utilisateurs.
## Conclusion
YAMLResume v0.9 apporte le support de mise en page HTML, complétant la trilogie des formats de sortie principaux.
Maintenant, à partir d'un seul fichier `resume.yml`, vous pouvez générer :
* Un PDF professionnel via LaTeX pour les candidatures
* Un fichier Markdown propre pour les LLM et les flux de travail de contenu
* Une page HTML responsive pour l'hébergement web et les portfolios en ligne
Cette version renforce notre engagement envers la philosophie "CV en tant que Code" : écrivez
une fois, rendez partout. Vos données de CV restent la source unique de vérité, et
les sorties ne sont que différentes vues optimisées pour différents contextes.
Nous vous invitons à mettre à niveau vers la v0.9 et à découvrir la flexibilité des
CV natifs du web :
```console
$ npm install -g yamlresume@latest
$ pnpm install -g yamlresume@latest
$ yarn global add yamlresume@latest
$ bun add -g yamlresume@latest
$ brew install yamlresume
```
Vous avez des commentaires ou des idées pour de nouveaux modèles ? Rejoignez la discussion sur
[GitHub](https://github.com/yamlresume/yamlresume/discussions) ou contactez-nous sur
[X/Twitter](https://x.com/xiaohanyu1988). Nous avons hâte de voir comment vous utilisez les mises en page
HTML dans votre flux de travail !
# Présentation d'YAMLResume
URL: (/fr/blog/introducing-yamlresume)
import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
Chaque développeur a besoin d'un CV à moins d'être un professionnel mondialement célèbre.
Écrire un CV n'est peut-être pas difficile, mais ce n'est définitivement pas amusant et c'est fastidieux. Beaucoup
passent des jours à créer leurs CV, cherchant des CV sans faute de frappe à 100%, vérifiés grammaticalement
avec une mise en page et une composition professionnelles.
[YAMLResume](https://yamlresume.dev) vous permet de créer et de contrôler la version
de vos CV en utilisant [YAML](https://yaml.org/) et de générer des PDF
professionnels avec une belle composition en un clin d'œil.
Il a commencé comme le moteur de composition principal pour [PPResume](https://ppresume.com)—un
constructeur de CV commercial basé sur [LaTeX](https://www.latex-project.org/), parfait au pixel près—qui aide déjà des milliers de personnes à créer des CV magnifiquement composés. Sans trop d'hésitation, nous avons décidé de l'open sourcer pour que
les gens puissent toujours avoir le droit de dire [non au verrouillage fournisseur](https://blog.ppresume.com/posts/no-vendor-lock-in).
## Démarrage rapide
YAMLResume fournit un [outil CLI](https://www.npmjs.com/package/yamlresume),
en plus, il a une dépendance obligatoire sur un moteur de composition pour
générer un PDF. En d'autres termes, vous devriez [installer un moteur de composition](/docs/installation#typesetting-engine) d'abord si vous voulez générer
un PDF.
Installer le CLI `yamlresume` est un jeu d'enfant. Vous pouvez l'installer en utilisant votre
gestionnaire de packages Node.js préféré :
<>
```console
npm install -g yamlresume
```
```console
pnpm add -g yamlresume
```
```console
yarn global add yamlresume
```
```console
bun add -g yamlresume
```
>
Vérifiez que `yamlresume` est installé avec succès :
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build build a resume to LaTeX and PDF
languages i18n and l10n support
templates manage resume templates
help [command] display help for command
```
Nous recommandons aussi que vous installiez la police [Linux
Libertine](http://yamlresume.dev/docs/installation#linux-libertine) pour
obtenir les PDF les plus beaux.
Enfin, si vous voulez créer un CV CJK, nous recommandons aussi que
vous installiez les [polices Google Noto](https://fonts.google.com/noto/) pour [la meilleure
couverture unicode](https://github.com/ppresume/community/issues/63).
### Créer un nouveau CV
Vous pouvez créer un nouveau CV avec une seule ligne :
```console
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
Sous le capot `yamlresume new` clonerait un CV d'exemple d'[ici](https://github.com/yamlresume/yamlresume/blob/main/packages/cli/resources/resume.yml).
Ensuite vous pouvez obtenir un PDF avec une seule ligne encore :
```console
$ yamlresume build my-resume.yml
◐ Generating resume PDF with command: xelatex -halt-on-error my-resume.tex...
✔ Resume PDF generated successfully.
```
Vous avez terminé ! Regardez le PDF de CV généré :
Vous pouvez vérifier la [Galerie PPResume](https://ppresume.com/gallery) pour plus d'exemples
alimentés par YAMLResume comme moteur de composition.
### Dépannage
Le CLI YAMLResume fournit un drapeau verbeux `-v`/`--verbose` pour montrer plus d'informations de journalisation détaillées. Si vous avez des problèmes à construire un CV, vous pouvez essayer d'exécuter
les commandes à nouveau avec ce drapeau verbeux et coller la sortie dans les [problèmes github](https://github.com/yamlresume/yamlresume/issues), je regarderai et
vous répondrai.
## Comment ça fonctionne ?
Sous le capot, YAMLResume fonctionne comme un mini compilateur, c'est-à-dire, il prend une entrée,
l'analyse en [AST](https://en.wikipedia.org/wiki/Abstract_syntax_tree) et
puis génère une sortie.
Le principe de conception principal d'YAMLResume est la [séparation des
préoccupations](https://en.wikipedia.org/wiki/Separation_of_concerns). Un des exemples
les plus célèbres qui suit ce principe est HTML & CSS, qui sont les
fondations du web moderne—HTML est utilisé pour organiser le contenu dans une page web,
CSS est utilisé pour définir le style de présentation du contenu.
Suivant le principe principal, YAMLResume est conçu basé sur les
exigences suivantes :
* le contenu du CV devrait être écrit en texte brut, qui est amical au contrôle de version
* le texte brut devrait utiliser un format entièrement structuré, ce qui nous donne plus
de contrôle et de flexibilité
* YAML est meilleur que JSON car il est plus lisible et écrivable par l'homme
* le texte brut YAML est ensuite rendu en PDF avec un moteur de composition
branchable
* une mise en page opinionnée devrait être fournie prête à l'emploi, tout en permettant encore
aux gens d'ajuster les options en conséquence comme les tailles de police, les marges de page, etc.
## Pourquoi YAML ?
[JSON Resume](https://jsonresume.org/) est un autre projet qui permet aux gens de
créer des CV dans un format structuré. Cependant, la plupart des développeurs seraient d'accord que
YAML est meilleur que JSON en ce qui concerne la lisibilité et l'écritabilité humaines. Par
exemple, il est assez gênant de représenter des chaînes multi-lignes en JSON, tandis que
YAML a un support natif pour cela.
Comparez un extrait de CV en JSON et YAML :
```json
{
"content": {
"basics": {
"name": "Andy Dufresne",
"headline": "Headed for the Pacific",
"phone": "(213) 555-9876",
"email": "hi@ppresume.com",
"url": "https://ppresume.com/gallery",
"summary": "- Computer Science major with strong foundation in data structures, algorithms, and software development\n- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites\n- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)\n- Team player, with detail-oriented mindset and a keen eye for design and user experiences"
}
}
}
```
```yml lineNumbers
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@ppresume.com
url: https://ppresume.com/gallery
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
```
Lequel est plus lisible et écrivable ? La réponse est évidente.
JSON Resume n'a aucune préoccupation concernant la mise en page du CV. Dans le monde réel,
vous ne pouvez pas juste envoyer un fichier JSON aux recruteurs, n'est-ce pas ? Le format de CV
structuré doit être converti en format de document lisible par l'homme comme docx, PDF,
etc. YAMLResume offre une configuration de mise en page opinionnée, et garantit
une sortie PDF parfaite au pixel près.
Au moment de l'écriture, la mise en page opinionnée d'YAMLResume supporte :
* langues de locale
* Anglais
* Chinois simplifié
* Chinois traditionnel
* Espagnol
* marges
* haut
* gauche
* droite
* bas
* numéros de page
* template
* typographie
* taille de police
Voici un extrait de code d'exemple pour la configuration de mise en page dans YAMLResume :
```yml lineNumbers
layout:
locale:
language: en
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
page:
showPageNumbers: true
template: moderncv-banking
typography:
fontSize: 11pt
```
## Pourquoi pas Markdown ?
[Markdown](https://en.wikipedia.org/wiki/Markdown) est un autre choix populaire
pour écrire des CV, il y a aussi quelques constructeurs de CV qui adoptent markdown comme
le format d'entrée principal. Cependant, markdown est un langage de balisage à usage général
pour créer du texte formaté, tandis que les CV n'utilisent qu'un ensemble très limité de
fonctionnalités markdown.
Par exemple, les syntaxes markdown suivantes sont très peu susceptibles d'être utilisées dans un
CV :
* blockquote
* bloc de code
* règles horizontales
* images
* tableaux
* balisage html
* etc.
Deuxièmement, markdown est beaucoup trop flexible, donnant souvent aux utilisateurs plus de liberté qu'ils
n'ont besoin pour créer un CV. Il serait assez difficile d'analyser de manière fiable un document
markdown générique comme un CV.
Troisièmement, des fonctionnalités comme le changement de template, le contrôle de mise en page précis (comme `\hfill`
et `\hspace` en LaTeX) sont très difficiles à implémenter en markdown.
En conclusion, utiliser un format entièrement structuré comme YAML/JSON nous donne plus
de contrôle et de fiabilité sur le formatage et la mise en page pour les CV.
## Pourquoi encore LaTeX ?
[LaTeX](https://www.latex-project.org/) est un moteur de composition très mature et stable
qui peut produire des PDF de qualité extrêmement élevée. Cependant, de nombreux utilisateurs LaTeX,
même les enthousiastes LaTeX, seraient d'accord que le langage LaTeX est quelque peu
dépassé—ses messages d'erreur sont souvent assez confus, et la dépendance sur
les variables globales mène souvent à des conflits entre packages, la vitesse de
compilation est lente pour les gros documents et souvent assez compliquée, et il produit
des fichiers intermédiaires moches (`.aux`, `.log`, etc.).
Certains suggèrent de remplacer LaTeX par [typst](https://github.com/typst/typst),
qui est un moteur de composition moderne, avec un DX beaucoup meilleur et une compilation
beaucoup plus rapide. Cependant, après une évaluation soigneuse, j'ai décidé de rester avec LaTeX.
Le facteur décisif ici est que, YAMLResume est conçu pour supporter plusieurs langues
avec la meilleure qualité de composition possible, cependant, le support [CJK
de typst](https://blog.ppresume.com/posts/on-typesetting-engines#cjk-3) est encore
instable et manquant.
Plus tard, je pourrais ajouter un nouveau
[renderer](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/renderer/base.ts)
backend pour supporter typst.
## Support de texte riche
Bien que nous ayons décidé de ne pas utiliser markdown comme format d'entrée de CV, nous
supportons un ensemble limité de syntaxe markdown de texte riche pour le champ `summary` dans
diverses sections.
Pour l'instant, nous supportons les syntaxes markdown suivantes :
* `**gras**`
* `*italique*`
* `[lien](https://www.google.com)`
* liste ordonnée
* liste non ordonnée
* liste imbriquée
* paragraphes
Par exemple, voici un extrait d'exemple pour le champ `content.basics.summary` :
```yml lineNumbers
---
content:
basics:
# ...
summary: |
This is a sample YAML resume that supports a limited set of rich text markdown syntax (bold, italic, links, lists):
- Computer Science major with **strong foundation** in data structures, *algorithms*, and software development
1. Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
2. Experiened in databases (SQL, NoSQL), familiar with server-side technologies ([Node.js](https://nodejs.org/en), Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
```
Et voici le PDF généré :
Vous pouvez voir que la syntaxe de texte riche est rendue correctement avec du gras, des italiques,
des liens, des listes, assez solide, n'est-ce pas ?
## Feuille de route
Dans l'ensemble, le projet est encore dans un stade très précoce, nous avons un long chemin à parcourir.
J'ai déjà planifié une liste de fonctionnalités à faire dans un avenir proche :
1. plus de langues, japonais, allemand, français, etc
2. plus de templates
3. [alias de section](https://github.com/yamlresume/yamlresume/issues/11)
4. [réordonnancement de section](https://github.com/yamlresume/yamlresume/issues/12)
5. [validation de schéma](https://github.com/yamlresume/yamlresume/issues/10)
Pour tout problème, vous pouvez :
* soulever un [problème](https://github.com/yamlresume/yamlresume/issues/)
* ouvrir une [discussion](https://github.com/yamlresume/yamlresume/discussions)
* laisser un [message](https://discord.gg/9SyT7mVV4K)
Restez à l'écoute !
# YAMLResume v0.8 : Sortie Markdown
URL: (/fr/blog/markdown-output)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
Nous sommes ravis d'annoncer la sortie de
[YAMLResume v0.8](https://github.com/yamlresume/yamlresume/releases/tag/v0.8.0),
une étape importante dans notre voyage pour faire de "Resume as Code" la norme
pour les développeurs et les professionnels du monde entier.
Depuis sa création, YAMLResume s'est concentré sur une mission principale : vous
permettre de créer des CV dans un format YAML propre et contrôlé par version et
de les compiler en PDF magnifiquement composés et pixel perfect. Bien que le PDF
reste la référence absolue pour les demandes d'emploi, nous avons réalisé que
nos utilisateurs ont souvent besoin de leurs données de CV dans d'autres formats
— pour leurs sites Web personnels, pour coller dans des systèmes de suivi des
candidats (ATS), ou même pour alimenter des grands modèles de langage (LLM) pour
l'optimisation.
Avec la v0.8, nous introduisons une nouvelle architecture puissante :
[mises en page multiples](/fr/docs/layouts), et avec elle, une prise en charge
de première classe pour la [sortie Markdown](/fr/docs/layouts/markdown).
TL;DR, une démo rapide :
[](https://asciinema.org/a/759578)
## YAMLResume avec Mises en Page
Dans les versions précédentes de YAMLResume, le pipeline de compilation était
linéaire et singulier. Vous fournissiez un fichier YAML, et le moteur crachait
un PDF. Si vous vouliez un [modèle](/fr/docs/layouts/latex#templates) différent,
vous changiez le champ `layout.template`. Si vous vouliez une taille de police
différente, vous ajustiez les paramètres de
[typographie](/fr/docs/layouts/latex#typography). Mais au final, la destination
était toujours un fichier PDF généré via le moteur
[LaTeX](/fr/docs/layouts/latex).
Cela fonctionnait bien, mais c'était limitant. Et si vous vouliez générer un PDF
pour envoyer par e-mail aux recruteurs, mais aussi une version en texte brut
pour un formulaire hérité ? Et si vous vouliez une version
[Markdown](/fr/docs/layouts/markdown) à publier sur votre blog
[Hugo](https://gohugo.io/) ou [Next.js](https://nextjs.org/) ?
Dans la v0.8, nous avons complètement repensé le
[schéma des mises en page](/fr/docs/compiler/schema/zod#layoutsschema) pour
prendre en charge [plusieurs mises en page](/fr/docs/layouts). Au lieu d'un seul
ensemble de paramètres de sortie, vous pouvez désormais définir une liste de
mises en page dans le fichier YAML de votre CV. Chaque mise en page spécifie un
`engine` (comme `latex` ou `markdown`) et ses propres options de configuration
spécifiques.
Cela signifie qu'une seule commande [`yamlresume build`](/fr/docs/cli#build)
peut désormais produire plusieurs artefacts — un PDF, un fichier Markdown, et à
l'avenir, des fichiers HTML ou docx — simultanément. Cela respecte le principe
de "Source de Vérité" : votre `resume.yml` reste la source unique de vérité,
tandis que les sorties ne sont que des représentations dérivées adaptées aux
différents canaux de diffusion.
Voici à quoi ressemble la nouvelle configuration dans votre fichier YAML :
```yml lineNumbers
# Multiple output layouts configuration
layouts:
- engine: latex
page:
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
showPageNumbers: true
template: moderncv-banking
typography:
fontSize: 11pt
- engine: markdown
```
Comme vous pouvez le voir, nous avons défini deux mises en page ici. La première
utilise le moteur [`latex`](/fr/docs/layouts/latex) (notre générateur de PDF
classique) avec un modèle spécifique, des marges de page et des paramètres de
typographie, etc. La seconde utilise le nouveau moteur
[`markdown`](/fr/docs/layouts/markdown). La beauté de cette approche est que
vous pouvez ajouter ou supprimer des mises en page selon vos besoins sans
toucher au contenu réel de votre CV.
## Markdown comme Nouvelle Sortie
Pourquoi Markdown ? Markdown est devenu la lingua franca du monde des
développeurs. Il est léger, lisible et universellement pris en charge. En
ajoutant Markdown comme cible de sortie, YAMLResume comble le fossé entre un
document de CV formel et le monde flexible et web-first.
Voyons cela en action. Si vous avez `yamlresume` installé (version 0.8.0 ou
supérieure), vous pouvez générer un nouveau CV et le construire avec seulement
deux commandes.
### Étape 1 : Créer un Nouveau CV
Tout d'abord, générons un CV modèle en utilisant la [CLI](/fr/docs/cli) :
```console
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
Cela crée un fichier `my-resume.yml` avec la configuration par défaut, qui
inclut désormais des mises en page [LaTeX](/fr/docs/layouts/latex) et
[Markdown](/fr/docs/layouts/markdown) par défaut.
Voici le contenu d'un exemple de fichier de CV `my-resume.yml` — vous pouvez
ignorer le `content` et regarder la dernière ligne pour voir la configuration de
la mise en page `markdown` :
```yml lineNumbers
---
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@ppresume.com
url: https://ppresume.com/gallery
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
city: Sacramento
region: California
country: United States
postalCode: "95814"
profiles:
- network: Line
url: https://line.com/PPResumeX
username: PPResumeX
- network: Twitter
url: https://twitter.com/PPResumeX
username: PPResumeX
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
startDate: Sep 1, 2016
endDate: Jul 1, 2020
courses:
- Discrete Methods in Computer Science
- Programming Language Concepts
- Data Structures and Object-Oriented Design
- Operating Systems
- Computer Architecture
- Database Systems
- Computer Networking
- Introduction to the Theory of Computing
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
work:
- name: PPResume
url: https://ppresume.com
startDate: Dec 1, 2022
endDate:
position: Senior Software Engineer
summary: |
- Developed and implemented efficient and scalable code, ensuring high-quality and maintainable web applications
- Collaborated with cross-functional teams to gather project requirements and translate them into technical solutions
- Conducted thorough testing and debugging to identify and resolve any issues or bugs in the software
- Actively participated in code reviews, providing valuable feedback to improve code quality and adherence to best practices
- Mentored and guided junior developers, fostering a collaborative and growth-oriented team environment
keywords:
- Scalability
- Growth
- Quality
- Mentorship
- name: PPResume
url: https://ppresume.com
startDate: Sep 1, 2020
endDate: Dec 1, 2022
position: Software Engineer
summary: |
- Created reusable React components to ensure code efficiency and maintainability
- Integrated with RESTful APIs to fetch and display dynamic data on the frontend
- Implemented client-side routing using React Router for smooth navigation between pages
- Actively participated in Agile development methodologies, attending daily stand-up meetings and sprint planning sessions
keywords:
- RESTful
- React
- Agile
languages:
- language: English
fluency: Native or Bilingual Proficiency
keywords:
- TOEFL 110
- IELTS 7.5
- language: Chinese
fluency: Elementary Proficiency
keywords: []
skills:
- name: Web Development
level: Expert
keywords:
- Python
- Ruby
- CSS
- React
- JavaScript
- name: DevOps
level: Intermediate
keywords:
- Python
- Kubernetes
- Docker
- Shell
- Ansible
- name: Design
level: Intermediate
keywords:
- Sketch
- Figma
- Photoshop
awards:
- title: Dean's List
awarder: University of Southern California
date: Oct 2016
summary: |
Awarded to students who achieve a high academic standing by maintaining a specified grade point average (GPA) during a semester.
certificates:
- name: AWS Certified Developer - Associate
url: https://aws.amazon.com/certification/
issuer: AWS
date: Mar 2021
publications:
- publisher: ACM Transactions on Interactive Intelligent Systems
url: https://dl.acm.org/journal/tiis
name: Enhancing Human-Computer Interaction through Augmented Reality
releaseDate: Dec 2017
summary: |
- Explores the potential of augmented reality (AR) in improving interaction between humans and computers
- Highlights benefits of AR in various areas such as gaming, education, healthcare, and design
- Discusses challenges and future directions of AR technology in enhancing user experience
references:
- name: Dr. Amanda Reynolds
phone: "(555) 123-4567"
relationship: Computer Science Professor
email: amanda.reynolds@usc.edu
summary: |
Andy Dufresne shows exceptional problem-solving skills and a solid understanding of programming concepts, he would bring immense value to any team or organization he becomes a part of.
projects:
- name: EduWeb
url: https://www.eduweb.xyz/
description: A web-based educational platform for interactive learning
startDate: Sep 2016
endDate: Dec 2016
summary: |
- Designed to enhance online learning experiences
- Facilitates students' engagement and collaboration through interactive features and user-friendly interface
- Offers a wide range of courses across various subjects
- Aims to improve the way students learn through the power of the web
keywords:
- Education
- Online Learning
- HCI
interests:
- name: Sports
keywords:
- Soccer
- Swimming
- Bicycling
- Hiking
- name: Music
keywords:
- Piano
- Guitar
volunteer:
- organization: USC Computer Science and Engineering Society
url: https://www.usccsesociety.org/
position: Tech Mentor
startDate: Sep 2015
endDate: Jul 2023
summary: |
- Volunteered as a Tech Mentor at USC Computer Science and Engineering Society
- Provided guidance and assistance to fellow students in their technical projects and coursework
- Assisted in organizing workshops, coding competitions, and networking events for the society members
- Contributed to fostering a collaborative and supportive environment within the student community
locale:
language: en
layouts:
- engine: latex
page:
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
showPageNumbers: true
template: moderncv-banking
typography:
fontSize: 11pt
- engine: markdown #[!code highlight]
```
### Étape 2 : Construire le CV
Maintenant, exécutez la commande de construction :
```console lineNumbers
$ yamlresume build my-resume.yml
✔ Generated resume tex file successfully: my-resume.tex
◐ Generating resume pdf file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume pdf file successfully: my-resume.pdf
✔ Generated resume markdown file successfully: my-resume.md
```
Remarquez la dernière ligne :
`✔ Generated resume markdown file successfully: my-resume.md`. La CLI a détecté
automatiquement la mise en page [`markdown`](/fr/docs/layouts/markdown) dans
votre configuration YAML et a généré le fichier `.md` correspondant aux côtés du
PDF.
### Le Markdown Résultant
Regardons le `my-resume.md` généré. Le moteur transforme intelligemment vos
données YAML structurées en un document Markdown propre et bien formaté
utilisant la syntaxe standard des en-têtes, des listes et des liens.
```markdown lineNumbers
# Andy Dufresne
Headline: Headed for the Pacific
- Email: hi@ppresume.com
- Phone: (213) 555-9876
- URL: https://ppresume.com/gallery
Location: 123 Main Street, Sacramento, California, United States, 95814
Profiles:
- Line: [@PPResumeX](https://line.com/PPResumeX)
- Twitter: [@PPResumeX](https://twitter.com/PPResumeX)
## Basics
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
## Education
### University of Southern California
Bachelor, Computer Engineering and Computer Science, Score: 3.8, Sep 2016–Jul 2020
URL: https://www.cs.usc.edu/
Courses: Discrete Methods in Computer Science, Programming Language Concepts, Data Structures and Object-Oriented Design, Operating Systems, Computer Architecture, Database Systems, Computer Networking, Introduction to the Theory of Computing
Summary:
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
## Work
### Senior Software Engineer
PPResume, Dec 2022–Present
URL: https://ppresume.com
Keywords: Scalability, Growth, Quality, Mentorship
Summary:
- Developed and implemented efficient and scalable code, ensuring high-quality and maintainable web applications
- Collaborated with cross-functional teams to gather project requirements and translate them into technical solutions
- Conducted thorough testing and debugging to identify and resolve any issues or bugs in the software
- Actively participated in code reviews, providing valuable feedback to improve code quality and adherence to best practices
- Mentored and guided junior developers, fostering a collaborative and growth-oriented team environment
### Software Engineer
PPResume, Sep 2020–Dec 2022
URL: https://ppresume.com
Keywords: RESTful, React, Agile
Summary:
- Created reusable React components to ensure code efficiency and maintainability
- Integrated with RESTful APIs to fetch and display dynamic data on the frontend
- Implemented client-side routing using React Router for smooth navigation between pages
- Actively participated in Agile development methodologies, attending daily stand-up meetings and sprint planning sessions
## Languages
- English: Native or Bilingual Proficiency, Keywords: TOEFL 110, IELTS 7.5
- Chinese: Elementary Proficiency
## Skills
- Web Development: Expert, Keywords: Python, Ruby, CSS, React, JavaScript
- DevOps: Intermediate, Keywords: Python, Kubernetes, Docker, Shell, Ansible
- Design: Intermediate, Keywords: Sketch, Figma, Photoshop
## Awards
### Dean's List
University of Southern California, Oct 2016
Summary:
Awarded to students who achieve a high academic standing by maintaining a specified grade point average (GPA) during a semester.
## Certificates
### AWS Certified Developer - Associate
AWS, Mar 2021
URL: https://aws.amazon.com/certification/
## Publications
### Enhancing Human-Computer Interaction through Augmented Reality
ACM Transactions on Interactive Intelligent Systems, Dec 2017
URL: https://dl.acm.org/journal/tiis
Summary:
- Explores the potential of augmented reality (AR) in improving interaction between humans and computers
- Highlights benefits of AR in various areas such as gaming, education, healthcare, and design
- Discusses challenges and future directions of AR technology in enhancing user experience
## References
### Dr. Amanda Reynolds
Computer Science Professor, amanda.reynolds@usc.edu, (555) 123-4567
Summary:
Andy Dufresne shows exceptional problem-solving skills and a solid understanding of programming concepts, he would bring immense value to any team or organization he becomes a part of.
## Projects
### EduWeb
A web-based educational platform for interactive learning, Sep 2016–Dec 2016
URL: https://www.eduweb.xyz/
Keywords: Education, Online Learning, HCI
Summary:
- Designed to enhance online learning experiences
- Facilitates students' engagement and collaboration through interactive features and user-friendly interface
- Offers a wide range of courses across various subjects
- Aims to improve the way students learn through the power of the web
## Interests
- Sports: Soccer, Swimming, Bicycling, Hiking
- Music: Piano, Guitar
## Volunteer
### USC Computer Science and Engineering Society
Tech Mentor, Sep 2015–Jul 2023
URL: https://www.usccsesociety.org/
Summary:
- Volunteered as a Tech Mentor at USC Computer Science and Engineering Society
- Provided guidance and assistance to fellow students in their technical projects and coursework
- Assisted in organizing workshops, coding competitions, and networking events for the society members
- Contributed to fostering a collaborative and supportive environment within the student community
```
## Avantages de Markdown
Vous vous demandez peut-être : "J'ai déjà un joli PDF, pourquoi ai-je besoin
d'une version Markdown ?" Les avantages d'avoir une représentation structurée en
texte brut de votre CV sont immenses, en particulier dans le monde moderne
piloté par l'IA.
### 1. Convivial pour les LLM
C'est peut-être l'avantage le plus significatif aujourd'hui. Nous vivons à l'ère
des Grands Modèles de Langage (LLM). Des outils comme ChatGPT, Claude et Gemini
sont incroyablement bons pour analyser du texte, mais ils peuvent avoir du mal
avec des fichiers PDF binaires ou du code source LaTeX complexe.
En générant une version Markdown propre de votre CV, vous avez l'entrée parfaite
pour un LLM. Vous pouvez copier-coller votre `resume.md` dans ChatGPT et lui
demander de :
* "Adapter mon CV pour cette description de poste..."
* "Critiquer ma section résumé et suggérer des améliorations..."
* "Extraire mes compétences clés et les formater pour une lettre de
motivation..."
Parce que Markdown est sémantiquement structuré (en-têtes, listes, texte en
gras), les LLM peuvent "comprendre" la hiérarchie et le contenu de votre CV bien
mieux qu'ils ne le peuvent avec du texte brut ou des conversions PDF.
### 2. Interopérabilité et Publication Web
Markdown est le format de contenu natif pour le Web. Si vous avez un
portefeuille personnel ou un blog construit avec Next.js, Hugo, Jekyll ou
Gatsby, vous pouvez déposer votre `resume.md` directement dans votre dossier de
contenu.
Avec la nouvelle sortie Markdown, vous pouvez automatiser votre flux de travail
de marque personnelle :
1. Mettez à jour votre `resume.yml` avec votre dernier emploi ou projet.
2. Exécutez `yamlresume build`.
3. Le `resume.pdf` généré va vers votre lien de téléchargement.
4. Le `resume.md` généré met à jour votre page "À propos de moi" sur votre site
Web.
Plus besoin de copier-coller manuellement ou de maintenir deux versions
distinctes de votre CV.
### 3. Lisibilité Humaine et Diffs Git
Alors que YAML est lisible, Markdown l'est encore plus pour les textes longs. Il
sert d'excellent format intermédiaire pour examiner votre contenu sans le
"bruit" de la syntaxe YAML ou des commandes LaTeX.
De plus, parce que la sortie est un texte brut déterministe, vous pouvez suivre
les changements facilement dans Git. Si vous modifiez une description de poste,
le diff dans `resume.md` montrera clairement le changement de texte, ce qui est
beaucoup plus convivial pour les examens par les pairs (par exemple, dans une
Pull Request GitHub) que d'essayer de faire un diff sur un PDF binaire.
### 4. Portabilité Universelle
Markdown peut être facilement converti dans presque n'importe quel autre format
de document en utilisant des outils comme [Pandoc](https://pandoc.org/). Besoin
d'un fichier `.docx` pour un recruteur qui insiste sur Word ?
`pandoc resume.md -f gfm -o resume.docx`. Besoin d'un extrait HTML ?
`pandoc resume.md -f gfm -o resume.html`. La sortie Markdown agit comme un
format "pivot" polyvalent qui déverrouille la compatibilité avec l'ensemble de
l'écosystème documentaire.
## La Suite : Mise en Page HTML
L'introduction du système de mise en page et du moteur Markdown n'est que le
début. Nous travaillons activement sur un
[moteur de mise en page HTML](https://github.com/yamlresume/yamlresume/issues/45).
Imaginez exécuter `yamlresume build` et obtenir un fichier HTML entièrement
réactif, optimisé pour le SEO et autonome qui a l'air aussi bien que votre PDF
mais qui est natif du navigateur. Cela vous permettra d'héberger votre CV comme
une simple page statique sur GitHub Pages, Vercel ou Netlify sans frais
généraux.
La mise en page HTML prendra en charge :
* Conception réactive pour l'affichage mobile (plus de pincement et de zoom sur
les PDF sur les téléphones).
* Métadonnées SEO générées automatiquement à partir du contenu de votre CV.
* Prise en charge des thèmes via des variables CSS.
* Éléments interactifs (par exemple, liens de projet cliquables, sections
pliables).
Nous pensons que vos données de CV vous appartiennent et que vous devriez
pouvoir les rendre dans le format qui convient le mieux à vos besoins — que ce
soit un PDF pixel perfect pour l'impression, un fichier Markdown propre pour
l'IA ou une page HTML réactive pour le Web.
## Conclusion
YAMLResume v0.8 est une avancée majeure en termes de flexibilité. En découplant
le contenu (YAML) de la présentation (mises en page), nous permettons aux
développeurs d'utiliser leurs données de CV de nouvelles et créatives manières.
Nous vous invitons à passer à la v0.8, à ajouter le moteur `markdown` à vos
mises en page, et à faire l'expérience de la liberté d'avoir votre CV disponible
dans le format dont vous avez besoin, quand vous en avez besoin.
Essayez-le :
```console lineNumbers
$ npm install -g yamlresume@latest
$ pnpm install -g yamlresume@latest
$ yarn global add yamlresume@latest
$ bun add -g yamlresume@latest
$ brew install yamlresume
```
# YAMLResume v0.6 : Personnalisation des sections
URL: (/fr/blog/section-customization)
YAMLResume [v0.6](https://github.com/yamlresume/yamlresume/releases/tag/v0.6.0)
est là, et il apporte deux fonctionnalités puissantes pour personnaliser la
structure de votre CV : [alias de sections](/docs/layouts/sections/aliases) et [réordonnancement de
sections](/docs/layouts/sections/reorder). Ces fonctionnalités vous permettent de renommer
les titres de sections et de contrôler leur séquence dans le PDF final, vous donnant une plus grande
flexibilité pour adapter votre CV.
Plongeons dans leur fonctionnement.
## Alias de sections
Les titres de sections par défaut dans YAMLResume (par ex., `education`, `work`) sont
automatiquement [traduits](/docs/layouts/sections/docs/locale)
basés sur votre [langue de locale](/docs/layouts#locale) choisie. Cependant, vous pourriez
préférer un titre différent. Par exemple, vous pourriez vouloir changer "Work" en
"Expérience professionnelle" pour la section `work`.
Pour définir des alias, utilisez la carte `layout.sections.aliases` dans votre `resume.yml`.
```yml lineNumbers title="resume.yml"
---
content:
# ...
layout: # [!code focus]
sections: # [!code focus]
aliases: # [!code focus]
work: Professional Experience # [!code focus]
education: Academic Background # [!code focus]
skills: Technical Skills # [!code focus]
```
## Réordonnancement de sections
Par défaut, les sections sont rendues dans un [ordre
standard](/docs/layouts/sections/reorder#default-section-order). La
fonctionnalité `layout.sections.order` vous permet de changer cette séquence pour mettre en évidence votre
information la plus importante en premier.
Par exemple, pour placer vos sections "Compétences" et "Projets" avant votre expérience "Travail",
vous pouvez définir l'ordre comme ceci :
```yml lineNumbers title="resume.yml"
---
content:
# ...
layout: #[!code focus]
sections: #[!code focus]
order: #[!code focus]
- skills #[!code focus]
- projects #[!code focus]
- work #[!code focus]
```
Les sections dans la liste `order` apparaîtront en premier, suivies des sections restantes
dans leur ordre par défaut.
## Tout mettre ensemble : Un exemple complet
Créons un CV d'une page qui utilise les deux fonctionnalités. Nous allons aliaser et
réordonner certaines sections en même temps.
```yml lineNumbers title="resume.yml"
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
---
layout:
sections: # [!code highlight]
aliases: # [!code highlight]
work: Professional Experience # [!code highlight]
education: Academic Background # [!code highlight]
skills: Technical Skills # [!code highlight]
order: # [!code highlight]
- basics # [!code highlight]
- work # [!code highlight]
- education # [!code highlight]
- skills # [!code highlight]
template: moderncv-banking
typography:
fontSize: 11pt
content:
basics:
name: Jane Doe
headline: Senior Software Engineer
email: jane.doe@example.com
phone: "555-123-4567"
summary: |
A passionate and experienced software engineer with a proven track record
of designing, developing, and deploying robust web applications. Skilled
in both front-end and back-end development, with an eye for detail and
a devotion to writing clean and efficient code.
education:
- institution: Tech University
area: Software Engineering
degree: Master
startDate: 2018-09-01
endDate: 2020-06-01
summary: Specialized in distributed systems and cloud computing.
- institution: State University
area: Computer Science
degree: Bachelor
startDate: 2014-09-01
endDate: 2018-06-01
summary: |
- Graduated with honors.
- Focused on algorithms, data structures, and distributed systems.
courses:
- Data Structures and Algorithms
- Operating Systems
- Computer Networks
- Database Systems
work:
- name: Tech Solutions Inc.
position: Senior Software Engineer
startDate: 2020-07-01
summary: |
- Led development of a new microservices-based architecture, improving system scalability and reliability.
- Mentored junior engineers, providing guidance on best practices and code quality.
- Optimized application performance, reducing API response times by 30%.
- name: Innovate Corp.
position: Software Engineer
startDate: 2018-07-01
endDate: 2020-06-30
summary: |
- Developed and maintained features for a large-scale e-commerce platform using React and Node.js.
- Collaborated with product managers and designers to deliver high-quality user experiences.
- Participated in on-call rotation to ensure application stability.
- name: Data Systems LLC
position: Software Engineering Intern
startDate: 2017-06-01
endDate: 2017-08-31
summary: |
- Assisted in developing a data processing pipeline.
- Wrote unit tests to ensure code quality.
- Gained experience with Agile development methodologies.
skills:
- name: Programming Languages
level: Expert
keywords:
- JavaScript (ES6+)
- TypeScript
- Python
- Go
- name: Technologies and Frameworks
level: Advanced
keywords:
- React
- Node.js
- Express
- Docker
- Kubernetes
- PostgreSQL
- name: Development Tools
level: Advanced
keywords:
- Git & GitHub
- Webpack
- Jest
- CircleCI
languages:
- language: English
fluency: Native or Bilingual Proficiency
- language: Spanish
fluency: Limited Working Proficiency
```
Ici nous aliasons les sections `work`, `education`, et `skills`, et réordonnons les
sections en assignant une priorité plus élevée à `work` qu'à `education`, suivi par
la section `skills` :
Maintenant, construisons le CV :
```bash
yamlresume build resume.yml
```
Vous obtiendrez un fichier PDF avec le contenu suivant—j'ai mis en évidence les sections
avec des personnalisations :
Génial, ça fonctionne comme attendu ! N'est-ce pas cool ?
## En résumé
Avec les alias de sections et le réordonnancement, vous avez maintenant un contrôle fin sur la
structure de votre CV. Nous espérons que ces fonctionnalités vous aident à créer des CV encore plus
personnalisés et efficaces.
La meilleure partie de la personnalisation des sections est que vous pouvez toujours étendre [les capacités i18n d'YAMLResume pour supporter plus
de langues](/docs/layouts/sections/reorder#default-section-order) par vous-même. Par
défaut, les titres de sections par défaut seront traduits vers la langue de locale cible
(définie via `layout.locale.language`) automatiquement. Cependant, il y a
toujours des cas où YAMLResume [n'a pas encore supporté votre langue cible](https://github.com/yamlresume/yamlresume/discussions/36), donc vous pouvez
remplacer les titres de sections par défaut par les vôtres.
En attendant, les gens avec des arrière-plans différents ont des préférences différentes pour l'ordre des
sections. Par exemple, les candidats cherchant un emploi dans l'industrie pourraient ordonner
`work` avant `education`, tandis que les chercheurs postdoc cherchant un
poste académique ordonneraient `education` avant `work`.
J'espère que vous apprécierez ces nouvelles fonctionnalités !
# YAMLResume v0.10 : Modèle VS Code et Support du Néerlandais
URL: (/fr/blog/v0.10)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
Nous sommes ravis d'annoncer la sortie de
[YAMLResume v0.10](https://github.com/yamlresume/yamlresume/releases/tag/v0.10.0).
Cette version se concentre sur l'expansion de notre écosystème de mises en page
avec un thème favori des développeurs, l'élargissement de notre support
international et l'ajout d'un contrôle précis sur le formatage des documents.
## Nouveau Modèle HTML : VS Code
Pour les développeurs, votre éditeur de code est votre maison. Désormais, votre
CV peut être tout aussi familier. Nous avons introduit un nouveau [modèle VS
Code](/docs/layouts/html/templates/vscode) pour le moteur HTML, avec un thème
sombre inspiré de la palette de couleurs "Dark+" de Visual Studio Code.
Il présente une esthétique de coloration syntaxique—traitant votre nom comme une
classe, vos compétences comme des objets et votre expérience comme des
fonctions. Pour l'utiliser, mettez simplement à jour votre configuration de
mise en page :
```yml lineNumbers
layouts:
- engine: html
template: vscode #[!code highlight]
```
Ce modèle est parfait pour les ingénieurs logiciel, les professionnels devops
et tous ceux qui souhaitent signaler immédiatement leurs racines techniques.
## Support de la Langue Néerlandaise
YAMLResume continue de croître à l'échelle mondiale. Grâce à la contribution de
[MattiaPun](https://github.com/MattiaPun), nous supportons désormais le
[néerlandais (nl)](/docs/locale/dutch) !
Cela porte notre nombre de langues supportées à six :
* [Anglais (en)](/docs/locale/english)
* [Chinois (zh)](/docs/locale/chinese)
* [Espagnol (es)](/docs/locale/spanish)
* [Français (fr)](/docs/locale/french)
* [Norvégien (no)](/docs/locale/norwegian)
* [Néerlandais (nl)](/docs/locale/dutch)
Pour générer votre CV en néerlandais, définissez la langue dans votre
`resume.yml` :
```yml lineNumbers
locale:
language: nl
```
Cela traduira automatiquement les en-têtes de section (par exemple,
"Werkervaring", "Opleidingen"), les formats de date et les noms de pays.
## Support de la Taille de Papier LaTeX
Nous avons ajouté un contrôle explicite sur les tailles de papier pour le
moteur LaTeX/PDF. Alors que l'A4 est la norme dans de nombreuses régions du
monde, le format US Letter est essentiel pour l'Amérique du Nord.
Vous pouvez désormais spécifier votre taille de papier préférée directement
dans la configuration :
```yml lineNumbers
layouts:
- engine: latex
page:
# Options : 'a4' (par défaut) ou 'letter'
paperSize: letter #[!code highlight]
```
Cela garantit que votre CV au format PDF s'imprime parfaitement, quelle que
soit votre région. Un grand merci à [djryanj](https://github.com/djryanj) pour
avoir porté cette fonctionnalité !
## Activer/Désactiver les Icônes
Parfois, moins c'est mieux. Bien que les icônes ajoutent un attrait visuel,
certains contextes formels ou axés sur les ATS peuvent nécessiter une
présentation textuelle plus stricte.
Nous avons introduit une option `showIcons` sous les paramètres `advanced` pour
les moteurs HTML et LaTeX. Cela vous donne la possibilité d'activer ou de
désactiver les icônes pour les coordonnées et les profils sociaux.
```yml lineNumbers
layouts:
- engine: html
advanced:
showIcons: false #[!code highlight]
- engine: latex
advanced:
showIcons: false #[!code highlight]
```
## Conclusion
YAMLResume v0.10 vise à vous donner plus de choix—de l'apparence de votre CV à
son adaptation à vos normes locales.
Mettez à jour dès aujourd'hui pour explorer les nouvelles fonctionnalités :
```console
$ npm install -g yamlresume@latest
# ou
$ brew upgrade yamlresume
```
Comme toujours, nous apprécions vos commentaires et contributions sur
[GitHub](https://github.com/yamlresume/yamlresume). Bonne création !
# YAMLResume v0.5 : Le compilateur de CV
URL: (/fr/blog/yamlresume-compiler)
Nous sommes ravis d'annoncer la sortie d'[YAMLResume
v0.5](https://github.com/yamlresume/yamlresume/releases/tag/v0.8.1), un
jalon significatif qui transforme YAMLResume d'un simple outil en un
**compilateur de CV** à part entière. Cette version introduit une architecture
robuste, une validation de schéma puissante, et un CLI amélioré pour rendre votre
processus de création de CV plus fiable, efficace et sans erreur.
## Le problème avec l'écriture manuelle de CV
Rédiger un CV est souvent un processus fastidieux et sujet aux erreurs. Que vous
utilisiez un traitement de texte ou un simple langage de balisage, il est facile de faire
des erreurs :
* Une faute de frappe dans un champ clé comme `degree` ou `fluency`.
* Une adresse email ou URL mal formatée.
* Des formats de date inconsistants.
* Oublier un champ requis pour une candidature d'emploi.
Ces petites erreurs peuvent mener à un cycle frustrant d'édition, génération, et
relecture. Le problème central est l'absence d'un système pour faire respecter la structure et
valider les données *avant* que le document final soit généré.
## La solution : Un compilateur de CV
Inspiré par les compilateurs de langages de programmation, [YAMLResume
v0.5](https://github.com/yamlresume/yamlresume/releases/tag/v0.8.1) introduit
une nouvelle architecture de compilateur qui traite votre fichier source de CV (en YAML) comme
du code. Ce "code" est ensuite traité à travers un pipeline pour produire un PDF
poli et professionnel.
Cette nouvelle architecture définit deux composants principaux :
1. Un [format de données standard](/docs/compiler/types) pour un CV, avec un
[schéma](/docs/compiler/schema) pour valider les données.
2. Un [compilateur](/docs/compiler) de référence qui implémente le format de données et
la validation de schéma.
Cette approche apporte plusieurs avantages clés :
* **Séparation des préoccupations** : Vous vous concentrez uniquement sur le **contenu** de votre
CV. Le compilateur gère la **présentation**—mise en page, typographie, et
formatage.
* **Détection précoce d'erreurs** : Le compilateur valide votre CV contre un
schéma prédéfini, attrapant les erreurs instantanément avec un retour clair et
actionnable.
* **Cohérence et fiabilité** : En faisant respecter une structure standard, le
compilateur s'assure que vos données de CV sont toujours cohérentes et prêtes pour n'importe quel
template.
### Voir en action
Par exemple, considérez le CV suivant avec plusieurs erreurs communes :
```yml lineNumbers title="invalid-resume.yml"
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
---
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@pp # [!code highlight]
url: https//ppresume.com/gallery # [!code highlight]
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
region: California
city: S # [!code highlight]
country: United States
postalCode: "95814"
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
startDate: Sep 1, 2016
endDate:
courses:
- D # [!code highlight]
- Programming Language Concepts
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
layout:
typography:
fontSize: 13pt # [!code highlight]
```
Nous avons plusieurs problèmes :
1. `email: hi@pp` - le format est invalide
2. `url: https//ppresume.com/gallery` - la partie protocole manque un `:`
3. `city: S` - trop court, devrait être 2 caractères ou plus, y a-t-il une ville dans le
monde dont le nom n'est que d'1 caractère ?
4. `- D` - le premier cours est juste trop court, devrait être 2 caractères ou
plus
5. `fontSize: 13pt` - devrait être 10pt, 11pt ou 12pt, 13pt est juste trop grand et n'a
pas de sens dans le scénario de rédaction de CV
Ces erreurs, qui auraient pu passer inaperçues auparavant, sont maintenant attrapées
instantanément. Vous pouvez exécuter `yamlresume validate my-resume.yml` ou simplement `yamlresume
build my-resume.yml`. YAMLResume rapportera tous les problèmes dans le format d'erreur largement adopté
[style clang](https://clang.llvm.org/diagnostics.html), vous permettant de
les corriger avant que le PDF final soit généré.
## Au cœur du compilateur : Le schéma
La pierre angulaire de cette nouvelle version est le **[Schéma
YAMLResume](/docs/compiler/schema)**. Nous fournissons un schéma complet qui
définit la structure et les règles pour chaque morceau de données dans votre CV.
Nous utilisons deux technologies puissantes pour cela :
* **[Zod](https://zod.dev)** : Pour la validation runtime dans le compilateur,
fournissant un filet de sécurité robuste et des messages d'erreur détaillés.
* **[JSON Schema](https://json-schema.org)** : Pour l'intégration éditeur et IDE.
En ajoutant une seule ligne à votre fichier YAML, vous débloquez l'auto-complétion,
la documentation de propriété en survol inline, et la validation de format en temps réel
directement dans votre éditeur.
Si vous avez un CV créé avant la v0.5, vous pouvez toujours profiter de la
validation de schéma. Ajoutez simplement la ligne suivante à votre fichier de CV et installez
le [Serveur de langage YAML](https://github.com/redhat-developer/yaml-language-server) pour votre
éditeur.
```yml lineNumbers
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
```
Cette intégration fournit une suite d'avantages qui améliorent drastiquement l'expérience
d'écriture de CV :
### Auto-complétion
Passez moins de temps à chercher les noms de champs. Votre éditeur suggérera des
propriétés valides pendant que vous tapez, s'assurant que vous utilisez les bons champs à chaque fois.
### Validation de format en temps réel
Attrapez les erreurs au moment où elles se produisent. La validation de schéma fournit un retour instantané sur
tout, des simples fautes de frappe aux formats d'email incorrect ou aux champs requis manquants.
Si une clé requise est manquante, l'avertissement est escaladé à son objet parent,
le rendant facile à repérer et corriger.
### Documentation de propriété inline
Plus besoin de deviner ce que fait un champ. Survolez n'importe quelle propriété pour obtenir une
documentation instantanée expliquant son but, son format attendu, et ses valeurs autorisées.
## Le CLI amélioré
Le [CLI](/docs/cli) `yamlresume` est maintenant plus puissant que jamais. La
commande [build](/docs/cli#build) exécute tout le pipeline du compilateur, de
la validation à la génération PDF, tandis que la nouvelle commande [validate](/docs/cli#validate)
vous permet de vérifier votre CV sans le construire.
[](https://asciinema.org/a/728098)
Ce flux de travail fluide transforme votre processus de création de CV, le rendant plus
efficace et fiable tout en minimisant les erreurs.
## Ce que cela signifie pour vous
Avec [YAMLResume
v0.5](https://github.com/yamlresume/yamlresume/releases/tag/v0.8.1), vous pouvez :
* **Écrire avec confiance** : Sachez que la structure de votre CV est solide et
que vos données sont valides.
* **Gagner du temps** : Attrapez les erreurs tôt et éliminez le cycle fastidieux de
relecture.
* **Rester flexible** : Échangez entre différents templates de CV sans effort.
* **Profiter d'une meilleure expérience d'édition** : Obtenez un retour en temps réel et
de l'auto-complétion dans votre éditeur préféré.
Nous vous invitons à expérimenter la puissance et la simplicité du nouveau compilateur YAMLResume :
* **Installer ou mettre à jour** vers la dernière version : `npm install -g
yamlresume@latest`
* **Lire la nouvelle [Documentation du compilateur](/docs/compiler)** pour en apprendre plus sur
l'architecture et le schéma.
* **Rejoindre notre communauté** sur
[GitHub](https://github.com/yamlresume/yamlresume/discussions) pour poser
des questions, rapporter des problèmes, ou contribuer.
Nous croyons que cette version marque une nouvelle ère pour la création de CV, apportant la puissance
et la fiabilité des compilateurs à tout le monde. Nous avons hâte de voir les CV incroyables
que vous allez construire !
Et n'oubliez pas, vous pouvez essayer le nouveau compilateur avec notre [image
Docker](/blog/yamlresume-docker) :
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
```
# YAMLResume dans Docker
URL: (/fr/blog/yamlresume-docker)
Je suis super excité d'annoncer qu'YAMLResume a maintenant une [image
docker](https://hub.docker.com/r/yamlresume/yamlresume), et vous pouvez [exécuter
YAMLResume instantanément avec docker](https://asciinema.org/a/722057).
## Pourquoi Docker ?
YAMLResume est un outil CLI Node.js et une
[bibliothèque](https://www.npmjs.com/package/@yamlresume/core). Installer YAMLResume
lui-même n'est pas difficile puisqu'il ne nécessite que Node.js. En fait, nous pouvons même le compiler
en binaire et l'exécuter directement sans installer Node.js.
Cependant, YAMLResume a une dépendance obligatoire sur LaTeX, ce qui apporte quelques nouveaux
problèmes :
* Installer LaTeX prend du temps ; il faut généralement environ 5–10 minutes pour télécharger une
distribution LaTeX appropriée et la configurer.
* LaTeX n'est pas un seul programme binaire ; c'est une collection de programmes. Certains
utilisateurs [n'aiment pas installer beaucoup de programmes sur leurs
machines](https://github.com/yamlresume/yamlresume/issues/6#issuecomment-2916479009).
Bien que nous fournissions déjà un [guide d'installation
très complet](/docs/installation) couvrant macOS, Windows, Ubuntu, et RHEL, même avec
des instructions sur l'installation d'YAMLResume et LaTeX et les faire fonctionner ensemble,
le processus peut encore être pénible pour certains utilisateurs.
Docker est une excellente solution à ces problèmes : il peut tout empaqueter dans une
seule image, rendant l'installation et la configuration faciles.
## Comment l'utiliser
Une image vaut mille mots. Voici une capture d'écran montrant comment l'utiliser :
Notre [image docker](https://hub.docker.com/r/yamlresume/yamlresume) a
tout pré-empaqueté, incluant :
* [Node.js](/docs/installation#nodejs)
* [CLI yamlresume](/docs/installation#yamlresume)
* [XeTeX](/docs/installation#xetex)
* [quelques polices recommandées](/docs/installation#font)
Vous pouvez créer un nouveau CV instantanément avec la commande suivante :
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
```
Éditez `my-resume.yml` en conséquence et ensuite construisez le CV du YAML vers PDF :
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
```
#### Sous le capot
Si vous connaissez docker, vous savez peut-être déjà comment cela fonctionne. Sinon,
voici une explication rapide :
1. `docker run ... yamlresume/yamlresume` - exécute un nouveau conteneur depuis l'image
`yamlresume/yamlresume`. Si cette image n'existe pas sur votre machine locale,
elle sera téléchargée depuis le [docker
Hub](https://hub.docker.com/r/yamlresume/yamlresume).
2. `--rm` - supprime automatiquement le conteneur quand il se termine.
3. `-v $(pwd):/home/yamlresume` - monte le répertoire courant (`$(pwd)`) dans le
conteneur à `/home/yamlresume`, permettant au conteneur d'accéder aux fichiers locaux.
4. `new my-resume.yml` ou `build my-resume.yml` - exécute la sous-commande CLI yamlresume
[new](/docs/cli#new) ou [build](/docs/cli#build) pour créer ou
construire un CV avec le nom de fichier `my-resume.yml`.
En gros, vous pouvez appeler toutes les [sous-commandes CLI](/cli) `yamlresume` de cette
façon—ajoutez simplement la sous-commande après `yamlresume/yamlresume` et suivez ensuite
le guide d'utilisation correspondant.
Le drapeau `-v` est assez important car il monte le répertoire courant
(`$(pwd)`) dans le conteneur à `/home/yamlresume`, permettant une synchronisation de fichiers bidirectionnelle
entre le répertoire local et le conteneur. Sans ce drapeau, l'artefact de sortie de construction
sera perdu après que le conteneur se termine.
## Ingénierie
Construire une image docker n'est pas difficile si vous connaissez un peu docker. Cependant,
envelopper YAMLResume dans docker n'est pas aussi facile que cela en a l'air. Voici quelques-uns des
défis.
### La configuration LaTeX est fastidieuse
Installer une distribution LaTeX fonctionnelle prend du temps ; il faut généralement environ 5–10
minutes pour télécharger et configurer une distribution LaTeX appropriée. Dans les runners GitHub Action,
ce processus est [encore plus long—jusqu'à 20+
minutes](https://github.com/yamlresume/yamlresume/actions/runs/15438395862/job/43450134447).
```docker
RUN apt update && \
apt install -y \
texlive-xetex \
texlive-fonts-extra \
texlive-lang-all \
fonts-noto-cjk \
fonts-noto-cjk-extra \
```
Nous en faisons un processus en 3 étapes pour construire [l'image docker
d'yamlresume](https://hub.docker.com/r/yamlresume/yamlresume) :
1. Commencer depuis une image Node.js comme base.
2. Installer et configurer une distribution LaTeX.
3. Installer le CLI yamlresume.
Comme mentionné, l'étape 2 est la partie la plus chronophage. Si nous devions recommencer
chaque fois que nous avions besoin de mettre à jour l'image docker, cela prendrait 30 minutes pour
construire l'image docker dans un runner d'action github.
Pour éviter cela, nous utilisons une construction multi-étapes pour mettre en cache la distribution LaTeX, donc nous n'avons
pas besoin de l'installer depuis zéro à chaque fois que nous mettons à jour l'image docker.
Par conséquent, nous avons créé une nouvelle
[yamlresume/yamlresume-base](https://hub.docker.com/r/yamlresume/yamlresume-base),
qui est une image de base qui a Node.js et une distribution LaTeX installés. Cette
image de base est stable et ne sera pas mise à jour trop souvent, et notre image `yamlresume/yamlresume`
est construite au-dessus de cette image de base. Il ne faut que 3 minutes pour télécharger
l'image `yamlresume/yamlresume-base` et installer le CLI yamlresume dessus,
ce qui réduit drastiquement le temps d'itération.
### Support multi-plateforme
Un autre défi est de supporter les [constructions
multi-plateformes](https://docs.docker.com/build/building/multi-platform/). Comme nous le savons,
macOS M1 et plus tard sont des machines basées sur ARM. Bien qu'elles puissent exécuter des images docker
avec l'architecture AMD64 par émulation, les performances sont 10 fois pires.
Par conséquent, nous devons supporter des images multi-plateformes pour `yamlresume/yamlresume`.
Heureusement, docker fournit officiellement un guide détaillé sur comment [construire
des images multi-plateformes dans les actions
github](https://docs.docker.com/build/ci/github-actions/multi-platform/).
L'image docker d'YAMLResume supporte [deux
plateformes](https://hub.docker.com/r/yamlresume/yamlresume/tags) : `linux/amd64`
et `linux/arm64`, ce qui devrait être suffisant pour couvrir la plupart des machines de bureau et serveur.
Profitez d'YAMLResume avec docker !
# YAMLResume arrive sur Homebrew
URL: (/fr/blog/yamlresume-homebrew)
YAMLResume vient d'être [accepté](https://github.com/Homebrew/homebrew-core/pull/246949) par
[Homebrew](https://brew.sh), le gestionnaire de paquets le plus populaire sur macOS.
Cela signifie que les utilisateurs macOS peuvent désormais installer et garder YAMLResume
à jour avec une seule commande fiable—sans installation globale manuelle de
[Node.js](https://nodejs.org), sans gymnastique de chemins. Cet article présente
une configuration pas à pas plus détaillée de YAMLResume avec Homebrew et un moteur
de composition pour une sortie PDF optimale.
## Pourquoi c'est important
Auparavant, le chemin typique pour obtenir le CLI YAMLResume sur macOS était :
1. [installer Node.js](/fr/docs/installation#nodejs),
2. [installer le CLI `yamlresume`](/fr/docs/installation#yamlresume) via un gestionnaire
de paquets Node.js (npm/pnpm/yarn/bun)
3. [installer un moteur de composition](/fr/docs/installation#typesetting-engine)
afin de générer le PDF
Une [formule Homebrew](https://formulae.brew.sh/formula/yamlresume) peut fusionner
les étapes 1 et 2, puisque Homebrew gère pour vous la dépendance Node.js.
Cela réduit les dérives d'environnement et simplifie les mises à jour (`brew upgrade yamlresume`).
## Installation rapide
```sh
brew install yamlresume
```
Homebrew installera Node.js comme dépendance si vous ne l'avez pas encore.
Puis vérifiez :
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build a resume on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
Si vous voyez l'aide, le binaire du CLI est disponible dans votre `PATH`.
YAMLResume dépend d'un moteur de composition pour générer le PDF ; vous pouvez installer
[MacTeX](/fr/docs/installation#xetex) ou [Tectonic](/fr/docs/installation#tectonic) via Homebrew.
### Option A : TeX Live complet (XeTeX)
Installation via le cask MacTeX (inclut XeTeX) :
```sh
# install the full mactex
brew install mactex
# or if you want to save some disk space
brew install mactex-no-gui
```
Après installation, assurez-vous que les binaires TeX sont dans le `PATH`
(Homebrew crée généralement des liens symboliques sous `/Library/TeX/texbin`). Test :
```console
$ xelatex --version
XeTeX 3.141592653-2.6-0.999994 (TeX Live 2022)
kpathsea version 6.3.4
Copyright 2022 SIL International, Jonathan Kew and Khaled Hosny.
There is NO warranty. Redistribution of this software is
covered by the terms of both the XeTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the XeTeX source.
Primary author of XeTeX: Jonathan Kew.
Compiled with ICU version 70.1; using 70.1
Compiled with zlib version 1.2.11; using 1.2.11
Compiled with FreeType2 version 2.11.1; using 2.11.1
Compiled with Graphite2 version 1.3.14; using 1.3.14
Compiled with HarfBuzz version 3.4.0; using 3.4.0
Compiled with libpng version 1.6.37; using 1.6.37
Compiled with pplib version v2.05 less toxic i hope
Using Mac OS X Core Text and Cocoa frameworks
```
### Option B : Tectonic (léger)
```console
$ brew install tectonic
$ tectonic --version
```
Quel moteur choisir ?
| Moteur | Atouts | Inconvénients |
| -------- | --------------------------------------------------------- | --------------------------------------------- |
| XeTeX | compatibilité maximale ; écosystème mature | téléchargement volumineux (4–6 Go) |
| Tectonic | empreinte initiale minime ; récupération auto des paquets | écarts de compatibilité occasionnels vs XeTeX |
En cas de problèmes LaTeX inexpliqués ou de gestion avancée de polices,
revenez à XeTeX.
## Créer et construire un CV
Créez un CV YAML de départ :
```console
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
Modifiez `my-resume.yml` puis construisez le PDF :
```console
$ yamlresume build my-resume.yml
◐ Generating resume PDF with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume PDF successfully.
```
Interne :
1. transformation de `my-resume.yml` en LaTeX (`my-resume.tex`)
2. invocation du moteur (`xelatex` ou `tectonic`)
3. production de `my-resume.pdf`
## Mise à jour
Restez à jour (nouveaux templates, correctifs, améliorations i18n) :
```console
$ brew update
$ brew upgrade yamlresume
```
## Désinstallation
```console
$ brew uninstall yamlresume
```
Ne supprimez les dépendances optionnelles (polices, moteur TeX, etc.) que si elles ne sont plus nécessaires.
## Dépannage
Le mode verbeux aide à diagnostiquer les problèmes de génération :
```console
$ yamlresume build --verbose my-resume.yml
```
Correctifs courants :
* moteur manquant : installer MacTeX ou utiliser Tectonic.
* permissions d'écriture refusées : vérifier que le répertoire courant est accessible en écriture (éviter les chemins système).
* erreurs LaTeX étranges avec Tectonic : revenir à XeTeX (`brew install mactex`).
## Notes finales
Être inclus dans Homebrew abaisse la barrière d'entrée et signale la maturité du
projet. Pour tout cas particulier, ouvrez une
[issue](https://github.com/yamlresume/yamlresume/issues/) ou une
[discussion](https://github.com/yamlresume/yamlresume/discussions) — nous
itérons rapidement. Bon hacking, et que vos CV soient toujours pixel perfect !
Enfin, merci à [@chenrui333](https://github.com/chenrui333) pour son
[premier PR](https://github.com/Homebrew/homebrew-core/pull/246949) qui a permis
l'inclusion de YAMLResume dans Homebrew.
# 1000 スター
URL: (/ja/blog/1000-stars)
YAMLResume が大きなマイルストーンを達成しました:[GitHub で 1000 スター](https://github.com/yamlresume/yamlresume/stargazers)——[プロジェクトをオープンソース化](/ja/blog/introducing-yamlresume)してから約半年後です。すべてのスター、issue、ディスカッション、貢献、口コミでのシェアに感謝します。小さなバッジですが、「resume as code」、優れたタイポグラフィ、開発者ファーストのワークフローに対する真の勢いを反映しています。
6 月に[500 スター](/ja/blog/500-stars)を祝い、今日は 1000 スターで戻ってきました。その間、YAMLResume は大幅に成熟しました——特に、多くの人が迅速にフォローし採用した 3 つのリリースを通じて:[v0.5](/ja/blog/yamlresume-compiler)、[v0.6](/ja/blog/section-customization)、[v0.7](/ja/blog/dev-mode)。この投稿では、私たちがリリースした最も重要なことを振り返り、次の旅の段階のための実践的なロードマップを提示します。
## 振り返り
### v0.5:信頼できる履歴書コンパイラ
[v0.5](/ja/blog/yamlresume-compiler) は、YAMLResume を単なるフォーマッタではなく、コンパイラとして再定義しました。この単一の概念的なシフト——履歴書 YAML をソースコードとして扱う——は、正確性、一貫性、そして非常にシンプルな CLI ワークフローを解き放ちました。
v0.5 でリリースした主要なアイデア:
* [コンパイラアーキテクチャ](/ja/docs/compiler/architecture)と標準[データモデル](/ja/docs/compiler/schema):履歴書の構造を正式化し、下流のレンダラーやテンプレートがクリーンで予測可能なデータを受け取れるようにしました。これにより、エラーが減り、テンプレートの移植性が向上しました。
* 2 つのレベルでの強力な検証:[エディタ統合用の JSON Schema](/ja/docs/compiler/schema/json)(自動補完、ホバードキュメント、早期フォーマットチェック)と[ランタイム安全性と詳細な診断のための Zod](/ja/docs/compiler/schema/zod)。エディタは賢く感じられ、ビルドは安全に感じられます。
* ループを短縮する新しいコマンド:迅速なチェック用の [`yamlresume validate`](/ja/docs/cli#validate) と、常に最初に検証する改良された `build`。`--no-validate` オプションにより、大きな編集中でも動き続けることができます。
* [Clang スタイルのエラー出力](https://asciinema.org/a/728098):ファイル名と行に関連付けられた明確なエラーは、各反復で数分を節約します。
v0.5 は、YAMLResume を信頼できるツールにしました——締め切りに追われている場合でも。まだの場合は、v0.5 のブログの例とビデオをざっと見てください;それらは、バリデーター、スキーマのヒント、診断の動作を示しています。
### v0.6:あなたの物語の語り方に合わせたセクションカスタマイズ
[v0.6](/ja/blog/section-customization) は、見た目は単純だが非常に強力なものに焦点を当てました:テンプレートをフォークしたり LaTeX をハックしたりせずに、自分の声と順序で物語を表現すること。
リリースした内容:
* [セクションエイリアス](/ja/docs/layouts/sections/aliases):`layout.sections.aliases` を使用して、標準セクション(例:`work` を「専門経験」に、`education` を「学歴」に)を名前変更します。これは、トーン、地域/文化、または役割のターゲティングに特に役立ちます。
* [セクションの並び替え](/ja/docs/layouts/sections/reorder):`layout.sections.order` を使用して、最も関連性の高いセクションをトップに持ってきます。`skills` を `work` の前に置くか、ポートフォリオ重視の役割では `projects` を最初に表示します。
* 実用的な回復力:無効な日付を許容するなどの改善(文字列にフォールバック)
なぜ重要か:
* 採用の文脈は異なります。ポストドクターに応募する博士は `education` を最初にしたい;シニアエンジニアは `work` を最初にしたい。v0.6 は、その選択を 1 回の YAML 編集で可能にします。
* 言語とトーンは認識を形作ります。エイリアスにより、テンプレートの手術なしで業界の規範(「経験」、「選定出版物」、「オープンソース」)に合わせることができます。
要するに:v0.6 は、YAMLResume をあなたの物語に適応させました。その逆ではありません。
### v0.7:開発モード、履歴書も現代的な開発体験に値する
[v0.7](/ja/blog/dev-mode) は、履歴書のホットリロードのような感覚のウォッチモード開発フローをリリースしました。YAML を保存すると、PDF が自動的に再構築されます。小さな変更が大きなコンテキストスイッチを必要としなくなります。
リリースした内容:
* [`yamlresume dev`](/ja/docs/cli#dev):履歴書ファイルを監視し、保存時に再構築する永続的なプロセス。サイドバイサイドの PDF ビューアーと組み合わせて、即座のフィードバックを得られます。
* 堅牢なウォッチ内部:[chokidar](https://github.com/paulmillr/chokidar) を採用し、連続する迅速な保存でビルドを過負荷にしないように[結合ロジック](https://github.com/yamlresume/coalescifn)を追加しました。一度に 1 つのビルドのみ;最新の状態が常に勝ちます。
* dev での実用的なフラグ:デバッグに `.tex` のみが必要な場合は `--no-pdf`、速度が最も重要となる大規模なリファクタリング中は `--no-validate`。
なぜ重要か:
* より速く反復し、より良く書けます。
* ツールが退屈な作業を引き受け、あなたはフローを保ちます。それが開発体験のすべてです。
`npm run dev` に慣れているなら、すぐに慣れるでしょう。
### Homebrew での YAMLResume
最後に、YAMLResume が [Homebrew](https://brew.sh) で利用可能になりました:
```sh
brew install yamlresume
```
使用方法を詳しく説明する新しいブログ投稿を公開しました:[YAMLResume が Homebrew に登場](/ja/blog/yamlresume-homebrew)。
## 今後の展望
YAMLResume は、[PPResume](https://ppresume.com) の小さなコアエンジンから、今日の強力な履歴書コンパイラまで、長い道のりを歩んできました。しかし、YAMLResume の機能をさらに強化し、履歴書作成の理想的なツールにするには、まだ多くの作業があります。
### 複数のレイアウト
現在、YAMLResume は LaTeX 出力のみをサポートしています。コンパイラからレンダラーへのパイプラインを拡張し、複数のレイアウトエンジンと出力形式をサポートする予定です。まず Markdown、次に HTML から始めます。
リリース予定の機能:
* [Markdown 出力](https://github.com/yamlresume/yamlresume/issues/110):履歴書のセクションとコンテンツを反映する、クリーンで構造化された Markdown アーティファクト。README、Markdown を受け入れる求人ポータル、または markdown を受け入れる他の履歴書ビルダーへの引き継ぎに役立ちます。
* [HTML 出力](https://github.com/yamlresume/yamlresume/issues/45):HTML は Web 履歴書の最も人気のある出力形式です。YAMLResume が HTML 出力をサポートする日には、どこでも履歴書をホストし、誰とでも共有し、任意のデバイスで開くことができます。
1 つのデータモデル、複数の出力。コンパイラの検証が中核であり続けます;レンダラーはプラグインになります。オーディエンスごとに出力を選択します:正式な提出には PDF、Web プレゼンスには HTML、開発者向けチャネルには Markdown。
### GitHub Actions
一部の人は、[GitHub で履歴書を構築してホストする](https://github.com/yamlresume/yamlresume/discussions/50)ために YAMLResume を採用していますが、それぞれが PDF を生成する独自のワークフローを持っています。
公式の GitHub YAMLResume アクションをリリースし、人々が独自のワークフローを書くことなく、履歴書を検証、構築、ホスト、公開できるようにします。
専用の GitHub Action により、更新はプッシュして完了になります。
### より多くの言語
YAMLResume v0.7 はすでに[英語](/ja/docs/locale/english)、[中国語](/ja/docs/locale/chinese)、[ノルウェー語](/ja/docs/locale/norwegian)、[スペイン語](/ja/docs/locale/spanish)をサポートしています。リストを拡張してより多くの言語をサポートし、YAMLResume を世界中のより多くの人々にとってさらにアクセスしやすくします。
フランス語、ドイツ語、日本語が、今後数ヶ月でサポートする最初の言語バッチになります。
## 謝辞
1000 スターは終わりではなく、別の始まりです。それは、あなたの早期採用、バグレポート、言語への貢献、ロードマップを形作った思慮深いリクエストから生まれました。サポートと貢献に感謝します。
勢いを維持する方法:
* 最新の CLI を試す:`npm install -g yamlresume@latest` または macOS で `brew install yamlresume`。
* 次の編集ループで開発モードを使用:`yamlresume dev my-resume.yml`。
* 問題とアイデアを提出:[https://github.com/yamlresume/yamlresume/issues](https://github.com/yamlresume/yamlresume/issues)
* ディスカッションに参加:[https://github.com/yamlresume/yamlresume/discussions](https://github.com/yamlresume/yamlresume/discussions)
私たちは、履歴書の作成をより落ち着いた、より速い、より美しいものにする実践的な機能をリリースし続けます——単一の検証された真実の源に忠実でありながら。次のマイルストーンへ進みましょう。
# 500 スター
URL: (/ja/blog/500-stars)
YAMLResume は重要なマイルストーンを達成しました—わずか 1 ヶ月で GitHub で 500 スターを獲得しました。
タイムラインは以下の通りです:
* 3 月 29 日:[PPResume](https://ppresume.com) の背後にあるエンジンをオープンソース化することを決定
* 4 月 2 日:ローカル [CLI デモ](https://x.com/xiaohanyu1988/status/1907427362259771748) を取得
* 4 月 10 日:[100% テストカバレッジ](https://x.com/xiaohanyu1988/status/1910193021989368311) を達成
* 4 月 25 日:[ローカル npm パッケージ](https://x.com/PPResumeX/status/1915789536610967741) を取得
* 5 月 8 日:正式に [yamlresume をオープンソース化](https://x.com/PPResumeX/status/1920294577497387493)
* 5 月 17 日:[200 スター](https://x.com/PPResumeX/status/1923635538046955662) に到達
* 5 月 23 日:[300 スター](https://x.com/PPResumeX/status/1925834873723396131) に到達
* 5 月 30 日:[400 スター](https://x.com/PPResumeX/status/1928347464693862635) に到達
* 6 月 11 日:[500 スター](https://x.com/PPResumeX/status/1932716523401150840) に到達
その間、最初の [Pull Request](https://github.com/yamlresume/yamlresume/pull/2) を受け取り、[別の Pull Request](https://github.com/yamlresume/yamlresume/pull/19) をマージし、最初の[バグレポート](https://github.com/yamlresume/yamlresume/issues/13) に対応しました。[@jizusun](https://github.com/jizusun)、[@koo6666](https://github.com/koo6666)、[@luyuhuang](https://github.com/luyuhuang) の皆様のご協力に特別に感謝いたします!
## なぜオープンソースなのか?
YAMLResume の最初のコード行は実際には 2023 年に書かれました。これは [PPResume](https://ppresume.com) のコアタイプセッティングエンジンとして始まりました。PPResume は [LaTeX](https://www.latex-project.org/) ベースの商用ピクセルパーフェクト履歴書ビルダーで、すでに何千人もの人々が美しくタイプセットされた履歴書を作成するのに役立っています。
PPResume 自体をオープンソース化する準備はできていませんが、ユーザーに履歴書の完全なコントロールを与えたいと思っています。2024年12月、PPResume はユーザーが履歴書の生成された LaTeX コードをダウンロードできるようになり、[ベンダーロックインなし](https://blog.ppresume.com/posts/no-vendor-lock-in) の約束を確保し、ユーザーにデータの完全な所有権を与えました。
さらに、PPResume の開発はオープンソースコミュニティから大いに恩恵を受けています。私自身も多くのことを学び、今こそ恩返しをする時です。
YAML を履歴書形式として使用するオープンソースツールは非常に少ないです。[JSON Resume](https://jsonresume.org) は良い試みです—ご存知の通り、YAML は JSON のスーパーセットです。しかし、JSON Resume は履歴書のタイプセッティング、レイアウト、出力について意見のあるソリューションを提供しておらず、実用性がはるかに低いです。一方、YAML は履歴書フォーマットにおいて JSON よりもはるかに良い選択肢です。
YAMLResume をオープンソース化することは明らかに正しい決定でした。NPM での YAMLResume のダウンロードトレンドをご覧ください:
## 次は何か?
YAMLResume は商用履歴書ビルダーで約 2 年間使用されてきましたが、まだ開発の初期段階にあり、やるべきことがたくさんあります。
[Docker サポート](./yamlresume-docker) は最も要求の多かった機能の一つで、現在 [利用可能](/ja/docs/installation#docker-users) になったことを嬉しく思います。
もう一つの重要な機能はデータ検証です。PPResume とは異なり、PPResume はユーザーが履歴書データを入力・検証するための慎重に作成・設計されたフォームを提供しますが、YAMLResume は制約のない入力—任意の `.yaml` ファイル—を受け入れます。プログラムがすべての形式の入力を適切に処理することを保証するために、[入力を検証する](https://github.com/yamlresume/yamlresume/issues/10) 方法を提供する必要があります。
機能面では、[セクションエイリアス](https://github.com/yamlresume/yamlresume/issues/11) と [セクション並び替え](https://github.com/yamlresume/yamlresume/issues/12) をサポートする予定で、PDF 出力をより適応性があり柔軟にします。
開発者体験については、ユーザーが履歴書を修正して PDF の変更をほぼリアルタイムで確認できるように [`dev` サブコマンドをサポート](https://github.com/yamlresume/yamlresume/issues/25) することを目指しています。
最後に、一部のユーザーは ATS 互換性について懸念を表明しています。PDF 出力が [ATS 互換](https://github.com/yamlresume/yamlresume/issues/23) であることを保証することを約束します。
お楽しみに!
# YAMLResume v0.7: 開発モード
URL: (/ja/blog/dev-mode)
私は [YAMLResume v0.7](https://github.com/yamlresume/yamlresume/releases/tag/v0.7.0) の紹介に非常に興奮しています。これは開発者体験(DX)の向上に焦点を当てたリリースです。このアップデートの中心は新しい [`dev` モード](/ja/docs/cli#dev) で、履歴書作成プロセスにシームレスでリアルタイムの開発ワークフローをもたらす機能です。
面倒な編集-保存-ビルドのサイクルの日々は終わりました。`dev` モードにより、YAMLResume は履歴書ファイルの変更を監視し、ほぼリアルタイムで PDF を自動的に再ビルドします。この一見シンプルな追加により、履歴書作成の体験が流動的でインタラクティブ、そしてはるかに楽しいプロセスに変わります。
## 古いワークフローの摩擦
v0.7 以前は、YAMLResume で履歴書を作成することは強力でしたが、反復的で手動のプロセスを伴いました。以下の手順が必要でした:
1. お好みのテキストエディタで `my-resume.yml` ファイルを開く
2. 変更を加える—仕事の説明を更新したり、新しいスキルを追加したり
3. ファイルを保存
4. ターミナルに切り替え
5. `yamlresume build my-resume.yml` コマンドを実行
6. コマンドの完了を待つ
7. PDF ビューアに切り替えて更新して結果を確認
8. 小さなタイポやフォーマットの問題に気づく
9. サイクル全体を繰り返す
以下に示すこのループは、履歴書作成プロセスに大きな摩擦をもたらしました。小さな変更でも、コンテキストスイッチと手動コマンド実行が必要でした。この継続的な中断は創造的な流れを破り、履歴書を磨くプロセスを遅くします。
B{ファイルを保存};
B --> C[ターミナルに切り替え];
C --> D['yamlresume build' を実行];
D --> E{ビルドを待つ};
E --> F[PDF ビューアに切り替え];
F --> G{PDF を更新};
G --> H{変更を確認};
H -- 修正が必要 --> A;
H -- 良さそう --> I[完了];
subgraph 手動ビルドサイクル
A
B
C
D
E
F
G
H
end
`}
/>
現代のソフトウェア開発の世界では、即座のフィードバックを提供するツールに慣れています。Web 開発者は [ホットリロード](https://webpack.js.org/concepts/hot-module-replacement/) を持ち、コードを変更するとブラウザが自動的に更新されます。この密接なフィードバックループは生産性にとって重要で、優れた開発者体験の核心原則です。履歴書をコードとして作成することも同じであるべきだと信じています。
## 解決策:シームレスな開発モード
`yamlresume dev` コマンドは手動ビルドサイクルを完全に排除します。一度起動すれば、バックグラウンドで静かに動作し、変更を監視して履歴書を自動的に再ビルドします。
開発モードを開始するには、単純に実行してください:
```bash
yamlresume dev my-resume.yml
```
これで、`my-resume.yml` ファイルと PDF を並べて開くことができます。YAML ファイルに変更を保存するたびに、YAMLResume が自動的に検出して再ビルドをトリガーします。PDF ビューアは数秒後に更新され、履歴書の最新バージョンを表示します。
新しいワークフローは大幅にシンプルで効率的です:
B[my-resume.yml を編集];
B --> C{ファイルを保存};
C --> D{PDF が自動的に再ビルド};
D --> E{PDF で変更を確認};
E -- 修正が必要 --> B;
E -- 良さそう --> F[開発モードを停止];
subgraph リアルタイムワークフロー
B
C
D
E
end
`}
/>
この即座のフィードバックループにより、継続的なコンテキストスイッチなしに、迅速に反復し、異なる表現を試し、履歴書のレイアウトを完璧にすることができます。このプロセスを雑用ではなく、創造的な取り組みのように感じさせます。
以下は `dev` モードの実際のデモです:
詳細については [YouTube デモ](https://youtu.be/xytlzedEQ_w) をご覧ください。
## 仕組み:内部の仕組み
`dev` モードは使用が簡単ですが、堅牢で効率的であることを保証するために、背後で興味深い技術が働いています。
### ファイルウォッチャー:`chokidar`
`dev` モードの中心はファイルウォッチャーです。素朴なアプローチは Node.js の組み込み [`fs.watch` API](https://nodejs.org/docs/latest/api/fs.html#fswatchfilename-options-listener) を使用することです。しかし、`fs.watch` には既知の制限があり、異なるオペレーティングシステム間で一貫性がありません。さらに重要なのは、特定のテキストエディタの動作で苦労することです。
例えば、Vim のようなエディタは「アトミック保存」戦略を使用します。ファイルを保存する際、Vim は元のファイルに直接書き込みません。代わりに、変更を一時ファイル(有名な `.swp` ファイル)に書き込み、その一時ファイルを元のファイルを置き換えるためにリネームします。このプロセスは基本的なファイルウォッチャーを混乱させ、変更を完全に見逃したり、複数のイベントをトリガーしたりする可能性があります。
信頼できる体験を提供するため、**[chokidar](https://github.com/paulmillr/chokidar)** を採用しました。これは人気で実戦でテストされたファイルウォッチングライブラリです。Chokidar はクロスプラットフォームの不整合を抽象化し、これらのトリッキーなエディタの動作を優雅に処理するように特別に設計されています。ファイルの書き込みが完了するまで待つように設定し、部分的に保存されたファイルをビルドしようとしないことを保証しています。
### ビルドストームの防止:`coalescifn`
ファイルを短時間で複数回保存するとどうなるでしょうか?シンプルな実装では、すべての保存イベントに対して新しいビルドを開始しようとするかもしれません。これにより「ビルドストーム」が発生し、複数のビルドプロセスが同時に実行され、不要なシステムリソースを消費し、競合状態を引き起こす可能性があります。
この問題を解決するため、[coalescifn](https://github.com/yamlresume/coalescifn) という巧妙な小さなユーティリティを書き、オープンソース化しました。このユーティリティは複数の呼び出しを**一つにまとめる**のに役立ちます。以下は `dev` モードのコンテキストでの動作方法です:
1. 最初のファイル変更が検出されると、すぐにビルドを開始します
2. そのビルドが実行中にさらに変更が検出された場合、新しいビルドを開始しません。単にファイルが再び変更されたことを記録します
3. 初期ビルドが完了すると、その間にさらに変更が発生したかどうかを確認します
4. 後続の変更があった場合、最終 PDF がファイルの最新バージョンを反映することを保証するために、正確に**もう一つ**のビルドを実行します。新しい変更がなかった場合、何もしずに次の保存イベントを待ちます
この戦略により、一度に実行されるビルドは一つだけで、最終ビルドが常に履歴書ファイルの最新バージョンを使用することを保証します。これは `dev` モードを応答性が高く、システムリソースを軽く保つ効率的なアプローチです。
以下は合体ロジックを説明する図です:
>Watcher: ファイルを保存 (t=0s)
Watcher->>Coalesce: ビルドをトリガー
Coalesce->>Builder: ビルド #1 を開始
User->>Watcher: ファイルを保存 (t=1s)
Watcher->>Coalesce: ビルドをトリガー (無視、ビルド進行中)
User->>Watcher: ファイルを保存 (t=2s)
Watcher->>Coalesce: ビルドをトリガー (無視、ビルド進行中)
Builder-->>Coalesce: ビルド #1 完了 (t=3s)
Coalesce->>Builder: ビルド #2 を開始 (最新ファイル内容で)
Builder-->>Coalesce: ビルド #2 完了 (t=6s)
`}
/>
## 高度な制御
`dev` コマンドには、`build` コマンドで利用可能なフラグをミラーして、ビルドプロセスをより細かく制御できるオプションも付属しています。
### PDF 生成のスキップ
時々、YAMLResume が生成する中間 LaTeX (`.tex`) ファイルを検査したいだけの場合があります。これはデバッグや、LaTeX コードを手動で調整したい人にとって有用です。PDF の生成はビルドプロセスで最も時間のかかる部分です。必要ない場合は、`dev` モードにスキップするよう指示できます:
```bash
yamlresume dev my-resume.yml --no-pdf
```
このフラグを使用すると、`dev` モードは変更を監視し、`.tex` ファイルを即座に再生成しますが、`xelatex` コマンドは実行しません。これにより再ビルドプロセスがほぼ瞬時に完了します。
### 検証の無効化
[v0.5](/ja/blog/yamlresume-compiler) から、YAMLResume にはビルド中に履歴書の潜在的なエラーをキャッチする強力なスキーマ検証ステップが含まれています。これは正確性を保証するのに非常に有用ですが、一時的に無効にしたい場合があります。例えば、履歴書構造の大きなリファクタリングの途中で、検証エラーに中断されたくない場合があります。
`--no-validate` フラグで検証を無効にできます:
```bash
yamlresume dev my-resume.yml --no-validate
```
これにより、履歴書が適切に形成されていることを確認するために後で検証を再有効化する必要があることを理解した上で、より自由に作業できます。
## 「履歴書即コード」の新しい DX
`dev` モードの導入は単なる新機能以上のものです。これは「履歴書即コード」の真の約束を果たすための一歩です。静的でコマンドライン駆動のプロセスから、現代のソフトウェア開発により似た動的でインタラクティブなプロセスに体験を向上させます。
過去に `npm run build` と `npm run dev` に慣れていましたか?YAMLResume には同じワークフローが組み込まれています。
フィードバックループを閉じることで、美しくプロフェッショナルな履歴書をより簡単に、より速く作成できるようになります。これにより、より多くの実験が奨励され、本当に重要なことに集中できるようになると信じています:履歴書の内容と、それがあなたのプロフェッショナルなストーリーをどのように語るかです。
YAMLResume v0.7 に更新して、新しい `dev` モードを体験してください:
* **インストールまたは更新** 最新バージョンへ:`npm install -g yamlresume@latest`
* **試してみる** 既存の履歴書で:`yamlresume dev my-resume.yml`
* **コミュニティに参加** [GitHub](https://github.com/yamlresume/yamlresume/discussions) でフィードバックを共有し、質問したり、YAMLResume の未来に貢献したりしてください
履歴書作成の最高の開発者体験を構築することにコミットしており、この新リリースについてどう思うかを聞くのが待ちきれません!
# moderncvのアイコンを隠す方法
URL: (/ja/blog/hide-moderncv-icons)
[LaTeX](https://www.latex-project.org/)でPDF履歴書を作成する際、小さな見た目の要素が全体の印象を大きく左右します。[`moderncv`](https://ctan.org/pkg/moderncv)クラスは連絡先項目(電話、メール、ホームページなど)の横にアイコンを表示し、見栄えの良いヘッダーを作れますが、誰もがアイコンを使いたいわけではありません。よりミニマルな見た目を好む人もいれば、ピクトグラムを禁止する企業テンプレートに合わせる必要がある人もいます。この記事では、`moderncv`とは何か、使用しているアイコンライブラリ、アイコンを非表示にする方法、そしてそれを可能にするLaTeXの`\renewcommand`マクロについて解説します。
## 1. moderncvとは?
[`moderncv`](https://ctan.org/pkg/moderncv)は、履歴書や職務経歴書のために設計されたLaTeXドキュメントクラスです。名前、肩書き、連絡先、セクション見出し、職歴・学歴のエントリなど、履歴書で頻出する要素を整形するための高レベルなマクロと、統一感のあるプロフェッショナルなレイアウトを提供します。素のLaTeXに比べて、`moderncv`は`banking`や`classic`、`casual`といったスタイルを備え、1ページの履歴書に適した視覚的な階層を標準で用意しています。
`moderncv`のヘッダーは次のように書きます。
```latex
\name{}{Andy Dufresne}
\title{Software Engineer}
\phone[mobile]{+1 555 123 456}
\email{jane@example.com}
\homepage{https://example.com}
```
クラスはこれらのコマンドを解釈して整ったヘッダーを生成します。既定では各項目にアイコンも表示され、連絡先情報を視認しやすくします。
## 2. moderncvが使うアイコンライブラリは?
`moderncv`は[`fontawesome5`](https://ctan.org/pkg/fontawesome5)パッケージでアイコンを提供します。[Font Awesome](https://fontawesome.com/)は有名なアイコンセットで、`fontawesome5`は`\faEnvelope`、`\faMobileAlt`、`\faGlobe`などのコマンドとしてLaTeXから利用できます。`moderncv`では、これらのアイコンを`\emailsymbol`や`\homepagesymbol`といった「シンボル」マクロに紐づけています。`\email{...}`や`\homepage{...}`を呼ぶと、対応するシンボルマクロが前置され、Font Awesomeのグリフが表示されます。
アイコンはシンボルマクロ経由で出力されるため、連絡先の内容を変えずにアイコンだけ置き換えたり削除したりできます。つまり、内容と装飾が分離されているので、いくつかの再定義だけでミニマルなスタイルにできます。
## 3. moderncvのアイコンを隠す方法
最も簡潔な方法は、シンボルマクロを空文字列に再定義することです。LaTeXの`\renewcommand`は既存のマクロを新しい挙動で置き換えます。`moderncv`の各シンボルマクロを空にすれば、ラベルは残り、アイコンだけが消えます。
`moderncv`を読み込んだ後のプリアンブルに、次の最小スニペットを追加してください。
```latex
% disable icons
\renewcommand*{\addresssymbol}{}
\renewcommand*{\mobilephonesymbol}{}
\renewcommand*{\fixedphonesymbol}{}
\renewcommand*{\faxphonesymbol}{}
\renewcommand*{\emailsymbol}{}
\renewcommand*{\homepagesymbol}{}
```
この方法は[YAMLResume](https://yamlresume.dev/)の`moderncv`レンダラーでも採用されています。YAMLResumeの[v0.10](/ja/blog/v0.10)では、LaTeXのプリアンブルが`advanced`配下の`showIcons`オプションが`false`のときに、これらの`\renewcommand*`行を[任意で挿入](https://github.com/yamlresume/yamlresume/commit/b53f73d9b4b04bf04b90236ef01da56062f8ca1f)します。つまり、履歴書の内容を触らずにPDF出力のアイコン表示を切り替えられるわけです。
アイコンなしのmoderncv履歴書は次のとおりです。
該当するLaTeXブロックは次のとおりです。
YAMLResumeを使う場合は、レイアウト設定で制御してレンダラーに自動挿入させられます。手書きのLaTeXなら、プリアンブルにこのスニペットを貼るだけです。どちらでも結果は同じで、ヘッダーのテキストは残り、アイコンだけが消えます。
### 仕組み
`moderncv`は各アイコンに対応するマクロを定義しています。例えば`\emailsymbol`はメールアイコンを表示するためのものです。これを`{}`に再定義すると、LaTeXは展開しますが、出力するものがなくなります。つまり、メール自体を消すのではなく、前に付く装飾だけを消しています。
### 追加のヒント:SNSアイコンを隠す
カスタム行で`\faGithub`や`\faTwitter`を直接使っている場合は、コマンドを呼ばなければアイコンは出ません。YAMLResumeのレンダラーでは、SNSプロフィールにFont Awesomeのグリフを付ける前に`showIcons`フラグを確認しています。やり方は同じで、`\href`の内容は残し、アイコンのプレフィックスだけを省略します。
## 4. \renewcommandマクロとは?
LaTeXはマクロでコマンドの動作を定義します。`\newcommand`は新しいコマンドを作り、`\renewcommand`は既存のコマンドを再定義します。つまり「このコマンドを新しい実装で上書きする」という意味です。
書式は次のとおりです。
```latex
\renewcommand{\commandname}{replacement}
```
`\renewcommand*`のスター付き版も同様に動きますが、置き換えテキスト内で段落区切りを許可しない点が異なります。`\emailsymbol`のような短いシンボルマクロでは大きな違いはありませんが、クラスやテンプレートでよく使われます。
`moderncv`ではアイコンマクロがすでに定義されているため、`\newcommand`ではなく`\renewcommand`を使う必要があります。既存マクロに`\newcommand`を使うとLaTeXがエラーを出すため、パッチでは次のように書かれています。
```latex
\renewcommand*{\emailsymbol}{}
```
これは「`\emailsymbol`の定義を空文字列に置き換える」という意味です。`\email{...}`はそのまま展開されるので、メールアドレスは表示されますが、アイコンは前置されません。
## まとめ
* `moderncv`はCV向けのLaTeXクラスで、構造化されたマクロと整った既定値を提供します。
* アイコンは`fontawesome5`パッケージで提供され、`\emailsymbol`や`\homepagesymbol`のようなシンボルマクロ経由で表示されます。
* これらのマクロを`\renewcommand*`で空文字列に再定義すれば、アイコンだけを非表示にできます。
* `\renewcommand`は既存のマクロを安全に上書きするLaTeXの仕組みです。
テキストだけのミニマルなヘッダーを目指すなら、この方法が最も堅牢です。将来`moderncv`のスタイルを変えたり新しい連絡先を追加したりしても、対応するシンボルマクロを同じように再定義すればOKです。なお、`advanced.showIcons`オプションは[HTML](/ja/docs/layouts/html)エンジンと[LaTeX](/ja/docs/layouts/latex)エンジンの両方で機能します。
# YAMLResume v0.9: HTML出力
URL: (/ja/blog/html-output)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
[YAMLResume v0.9](https://github.com/yamlresume/yamlresume/releases/tag/v0.9.0)のリリースを発表できることを嬉しく思います。
[HTML出力](/docs/layouts/html)の第一級サポートを導入しました。[Markdown
出力](/docs/layouts/markdown)をもたらした[v0.8リリース](/blog/markdown-output)に続き、
履歴書データを真に多用途でWebネイティブにするための、もう一つの大きな前進を遂げています。
v0.9では、YAML履歴書を直接スタンドアロンでレスポンシブなHTMLファイルにコンパイルできるようになりました。
個人のWebサイト、GitHub Pages、または任意の静的ホスティングプラットフォームでのホスティングに最適です。
PDFを変換したり、履歴書のWeb版を手動で管理する必要はもうありません。
現在、HTMLレイアウト用のテンプレートは1つのみ提供しています。
[calm](/docs/layouts/html/templates/calm)テンプレートは、
moderncv LaTeXテンプレートにインスパイアされています。明確なセクション分割と
Web表示に最適化されたエレガントなレイアウトを特徴とするミニマリストデザインです。プレビューは以下の通りです:
YAMLResume v0.9を使用してHTML履歴書を生成する方法のクイックデモ:
[](https://asciinema.org/a/763505)
## なぜHTML?
v0.8で[複数レイアウトアーキテクチャ](/docs/layouts)を導入したとき、
単一の`resume.yml`を必要なあらゆる形式でレンダリングできる世界を想像しました。
プロフェッショナルな応募のための[LaTeX/PDF](/docs/layouts/latex)と
相互運用性とLLMワークフローのための[Markdown](/docs/layouts/markdown)から始めました。
そして今、HTMLが履歴書の必須フォーマットの三位一体を完成させます。
HTMLには独自の利点があります:
**Webネイティブ**: HTMLはWebの言語です。あなたの履歴書は、埋め込んだり変換したりしなければならない
文書ではなく、インターネット上の第一級市民になります。
**レスポンシブデザイン**: モバイルデバイスでピンチやズームが必要なPDFとは異なり、
HTML履歴書はデスクトップモニターからスマートフォンまで、あらゆる画面サイズにシームレスに適応します。
**SEOフレンドリー**: 検索エンジンがHTML履歴書をインデックス化でき、スキルと
経験を発見可能にします。これはPDFのみの履歴書では不可能です。
**インタラクティブ**: HTMLはクリック可能なリンク、スムーズなスクロール、その他の
インタラクティブ要素を可能にし、静的文書を超えたユーザー体験を向上させます。
**依存関係ゼロ**: HTML出力はインラインCSSを含む自己完結型ファイルです。
S3、Netlify、GitHub Pagesなど、どこにでも配置でき、そのまま動作します。
## はじめに
`yamlresume`がインストールされている場合(バージョン0.9.0以上)、履歴書にHTML出力を
追加することは、レイアウト設定を更新するのと同じくらい簡単です。
### ステップ1: 履歴書の設定を更新する
`resume.yml`にHTMLレイアウトを追加します:
```yml lineNumbers
layouts:
- engine: latex
template: moderncv-banking
typography:
fontSize: 11pt
- engine: markdown
- engine: html #[! code highlight]
template: calm #[! code highlight]
typography: #[! code highlight]
fontSize: 16px #[! code highlight]
```
HTMLエンジンは、14pxから20pxまでのフォントサイズを持つカスタマイズ可能な
[タイポグラフィ](/docs/layouts/html#typography)をサポートしています。デフォルトの`calm`テンプレートは
人気のあるLaTeX `moderncv`パッケージにインスパイアされており、クリーンでプロフェッショナルな
外観を提供します。
### ステップ2: 履歴書をビルドする
ビルドコマンドを実行します:
```console
$ yamlresume build my-resume.yml
✔ Generated resume tex file successfully: my-resume.tex
◐ Generating resume pdf file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume pdf file successfully: my-resume.pdf
✔ Generated resume markdown file successfully: my-resume.md
✔ Generated resume html file successfully: my-resume.html
```
以上です!単一の真実のソースから3つの出力ファイルが得られました。
## Calmテンプレート
初期リリースには`calm`テンプレートが含まれており、プロフェッショナリズムと
可読性のバランスを取った慎重に設計されたレイアウトです。テンプレートの特徴:
* **クリーンなタイポグラフィ**: 画面と印刷の両方に最適化されたフォントサイズと行の高さ。
* **レスポンシブレイアウト**: 広いデスクトップ画面から狭い
モバイルディスプレイまで自動的に適応します。
* **セマンティックHTML**: より良いアクセシビリティと
SEOのために適切なHTML5セマンティック要素を使用します。
* **印刷フレンドリー**: Web用に設計されていますが、テンプレートには印刷スタイルが含まれているため、
ブラウザからPDFとして保存したときに見栄えが良くなります。
## ユースケース
### GitHub Pages
最小限の設定でGitHub PagesにHTML履歴書をデプロイ:
```yml
# .github/workflows/deploy.yml
name: Deploy Resume
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm install -g yamlresume
- run: yamlresume build resume.yml
- uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public
```
### レスポンシブポートフォリオ
履歴書をポートフォリオに直接埋め込みます。HTMLは
自己完結型なので、iframeに埋め込んだり、より深い統合のためにスタイルを抽出したりすることもできます。
### クイック共有
HTMLファイルをメールで送信したり、Dropbox/Google Driveで共有したりします。受信者は
PDFリーダーや特別なソフトウェアを必要とせず、任意のブラウザで開くことができます。
## 技術アーキテクチャ
[HTMLレンダラー](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/renderer/html/renderer.ts)は、
LaTeX/Markdownエンジンと同じ厳格なエンジニアリング標準で構築されています。内部的には:
1. **型安全なレンダリング**: レンダラーはTypeScriptで記述され、[Zodスキーマ](/docs/compiler/schema/zod)を通じて
完全な型安全性を備えています。
2. **テンプレートシステム**: テンプレートはモジュール式で拡張可能です。最初は
`calm`で出荷していますが、アーキテクチャは複数のテンプレートをサポートします。将来の
テンプレートは簡単に追加できます。
3. **CSS方法論**: CSS Reset(modern-normalizeベース)と
スコープ付きテンプレートスタイルの組み合わせを使用して、ブラウザ間で一貫したレンダリングを保証します。
4. **エスケープ処理**: すべてのコンテンツは[適切に
HTMLエスケープ](https://github.com/yamlresume/yamlresume/blob/v0.9.1/packages/core/src/utils/string.ts#L34-L44)され、
インジェクション脆弱性を防ぎ、特殊文字が正しく
レンダリングされることを保証します。
5. **包括的なテスト**: HTMLレンダラーには1,000行以上の
[テストケース](https://github.com/yamlresume/yamlresume/blob/v0.9.1/packages/core/src/renderer/html/renderer.test.ts)が含まれており、
100%のテストカバレッジを達成し、レンダラーが
期待通りに動作することを保証します。
## 比較: LaTeX vs Markdown vs HTML
3つのエンジンを比較してみましょう:
| 機能 | LaTeX (PDF) | Markdown | HTML |
| ------------ | ------------ | ------------- | ---------- |
| **ユースケース** | 求人応募 | AI/LLMs、コンテンツ | Webホスティング |
| **フォーマット** | ピクセル完璧 | ミニマル | レスポンシブ |
| **可搬性** | ユニバーサル | ユニバーサル | Webネイティブ |
| **カスタマイズ** | 広範 | 限定的 | 成長中 |
| **ファイルサイズ** | \~50-200 KB | \~5-20 KB | \~20-50 KB |
| **依存関係** | LaTeXツールチェーン | なし | なし |
| **インタラクティブ** | いいえ | いいえ | はい |
| **SEO** | いいえ | 公開時 | はい |
| **レスポンシブ** | いいえ | レンダラー依存 | はい |
各エンジンはそのドメインで優れています。YAMLResumeのアーキテクチャの美しさは、
選択する必要がないことです。同じソースファイルから3つすべてを生成し、
最適な場所でそれぞれを使用します。
## 次は何?
v0.9 HTMLエンジンは堅固な基盤を築きましたが、
将来の拡張のための野心的な計画があります:
### より多くのテンプレート
ミニマリスト、クリエイティブ、コーポレートなど、異なるデザイン美学を持つ追加のテンプレートを追加します。
テンプレートを提供したいですか?[貢献ガイド](/docs/contributing)をチェックしてください。
### 拡張カスタマイズ
将来のリリースでは、フォントファミリー、カラースキーム、
スペーシングコントロールを含むタイポグラフィオプションを拡張し、視覚的な
プレゼンテーションをより細かく制御できるようにします。
### ダークモード
CSS変数と`prefers-color-scheme`メディアクエリを使用した組み込みのダークモードサポート。
### アクセシビリティの強化
現在の実装はセマンティックHTMLを使用していますが、包括的な
ARIAラベルとキーボードナビゲーションサポートを追加して、すべての
ユーザーが履歴書にアクセスできるようにする予定です。
## 結論
YAMLResume v0.9はHTMLレイアウトサポートをもたらし、コア出力フォーマットの三部作を完成させます。
今、単一の`resume.yml`ファイルから、次のものを生成できます:
* 求人応募用のLaTeX経由のプロフェッショナルなPDF
* LLMとコンテンツワークフロー用のクリーンなMarkdownファイル
* Webホスティングとオンラインポートフォリオ用のレスポンシブHTMLページ
このリリースは、「Code as Resume」哲学への私たちのコミットメントを強化します:一度書けば、
どこでもレンダリングできます。履歴書データは単一の真実のソースのままであり、
出力は異なるコンテキストに最適化された異なるビューにすぎません。
v0.9にアップグレードして、Webネイティブな
履歴書の柔軟性を体験することをお勧めします:
```console
$ npm install -g yamlresume@latest
$ pnpm install -g yamlresume@latest
$ yarn global add yamlresume@latest
$ bun add -g yamlresume@latest
$ brew install yamlresume
```
フィードバックや新しいテンプレートのアイデアはありますか?
[GitHub](https://github.com/yamlresume/yamlresume/discussions)でディスカッションに参加するか、
[X/Twitter](https://x.com/xiaohanyu1988)でお問い合わせください。ワークフローでHTML
レイアウトをどのように使用するか楽しみにしています!
# YAMLResume のご紹介
URL: (/ja/blog/introducing-yamlresume)
import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
世界で有名なプロフェッショナルでない限り、すべての開発者は履歴書が必要です。履歴書を書くことは難しいことではありませんが、確実に楽しくなく、面倒です。多くの人が数日を費やして履歴書を作成し、100% の誤字脱字なし、文法チェック済み、プロフェッショナルなレイアウトとタイポグラフィの履歴書を追い求めています。
[YAMLResume](https://yamlresume.dev) を使用すると、[YAML](https://yaml.org/) を使用して履歴書を作成・バージョン管理し、美しいタイポグラフィでプロフェッショナルな見た目の PDF を簡単に生成できます。
これは [PPResume](https://ppresume.com) のコアタイプセッティングエンジンとして始まりました。PPResume は [LaTeX](https://www.latex-project.org/) ベースの商用ピクセルパーフェクト履歴書ビルダーで、すでに何千人もの人々が美しくタイプセットされた履歴書を作成するのに役立っています。あまり躊躇することなく、人々が常に[ベンダーロックインにノーを言う](https://blog.ppresume.com/posts/no-vendor-lock-in) 権利を持てるように、オープンソース化することを決定しました。
## クイックスタート
YAMLResume は [CLI ツール](https://www.npmjs.com/package/yamlresume) を提供し、さらに PDF を生成するためにタイプセッティングエンジンへの強制依存があります。言い換えれば、PDF を生成したい場合は、まず [タイプセッティングエンジンをインストール](/ja/docs/installation#typesetting-engine) する必要があります。
`yamlresume` CLI のインストールは非常に簡単です。お好みの Node.js パッケージマネージャーを使用してインストールできます:
<>
```console
npm install -g yamlresume
```
```console
pnpm add -g yamlresume
```
```console
yarn global add yamlresume
```
```console
bun add -g yamlresume
```
>
`yamlresume` のインストールを確認:
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build build a resume to LaTeX and PDF
languages i18n and l10n support
templates manage resume templates
help [command] display help for command
```
最適な PDF 外観のために [Linux Libertine](http://yamlresume.dev/ja/docs/installation#linux-libertine) フォントのインストールも推奨します。
最後に、CJK 履歴書を作成したい場合は、[Google Noto フォント](https://fonts.google.com/noto/) のインストールも推奨して、[最適な Unicode カバレッジ](https://github.com/ppresume/community/issues/63) を得ることができます。
### 新しい履歴書の作成
一行のコマンドで新しい履歴書を作成できます:
```console
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
内部的には、`yamlresume new` は[ここ](https://github.com/yamlresume/yamlresume/blob/main/packages/cli/resources/resume.yml) からサンプル履歴書をクローンします。その後、もう一行のコマンドで PDF を生成できます:
```console
$ yamlresume build my-resume.yml
◐ Generating resume PDF with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume PDF successfully.
```
完了です!生成された履歴書 PDF を確認してください:
YAMLResume をタイプセッティングエンジンとして使用したより多くの例については、[PPResume ギャラリー](https://ppresume.com/gallery) をご覧ください。
### トラブルシューティング
YAMLResume CLI は詳細フラグ `-v`/`--verbose` を提供して、より詳細なログ情報を表示します。履歴書のビルドで問題が発生した場合は、この詳細フラグを使用してコマンドを再実行し、出力を [github issues](https://github.com/yamlresume/yamlresume/issues) に貼り付けてください。確認して返信いたします。
## 仕組みは?
内部的には、YAMLResume はミニコンパイラのように動作します。つまり、入力を受け取り、それを [AST](https://en.wikipedia.org/wiki/Abstract_syntax_tree) に解析し、その後出力を生成します。
YAMLResume のコア設計原則は [関心の分離](https://en.wikipedia.org/wiki/Separation_of_concerns) です。この原則に従う最も有名な例の一つは HTML と CSS で、これらは現代のウェブの基盤です—HTML はウェブページのコンテンツを整理し、CSS はコンテンツの表示スタイルを定義します。
コア原則に従い、YAMLResume は以下の要件に基づいて設計されています:
* 履歴書のコンテンツはバージョン管理に適したプレーンテキストで書かれるべき
* プレーンテキストは完全に構造化された形式を使用すべきで、これによりより多くの制御と柔軟性が得られる
* YAML は人間が読みやすく書きやすいため、JSON よりも優れている
* YAML プレーンテキストはその後、プラグ可能なタイプセッティングエンジンを通じて PDF にレンダリングされる
* フォントサイズ、マージンなどのオプションを適切に調整できるようにしながら、すぐに使える主観的レイアウトを提供すべき
## なぜ YAML なのか?
[JSON Resume](https://jsonresume.org/) は、人々が構造化された形式で履歴書を作成できるようにする別のプロジェクトです。しかし、ほとんどの開発者は、人間の可読性と可読性の点で、YAML が JSON よりも優れていることに同意するでしょう。例えば、JSON で複数行文字列を表現するのは非常に不便ですが、YAML にはこれに対するネイティブサポートがあります。
JSON と YAML での履歴書スニペットを比較してください:
```json
{
"content": {
"basics": {
"name": "Andy Dufresne",
"headline": "Headed for the Pacific",
"phone": "(213) 555-9876",
"email": "hi@ppresume.com",
"url": "https://ppresume.com/gallery",
"summary": "- Computer Science major with strong foundation in data structures, algorithms, and software development\n- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites\n- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)\n- Team player, with detail-oriented mindset and a keen eye for design and user experiences"
}
}
}
```
```yml lineNumbers
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@ppresume.com
url: https://ppresume.com/gallery
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
```
どちらが読みやすく書きやすいでしょうか?答えは明らかです。
JSON Resume は履歴書のレイアウトを気にしません。現実の世界では、JSON ファイルを直接採用担当者に送ることはできませんよね?構造化された履歴書形式は、docx、PDF などの人間が読める文書形式に変換される必要があります。YAMLResume は主観的なレイアウト設定を提供し、ピクセルパーフェクトな PDF 出力を保証します。
この記事を書いている時点で、YAMLResume の主観的レイアウトサポート:
* 地域言語
* 英語
* 簡体字中国語
* 繁体字中国語
* スペイン語
* マージン
* 上部
* 左側
* 右側
* 下部
* ページ番号
* テンプレート
* タイポグラフィ
* フォントサイズ
これは YAMLResume でのレイアウト設定のサンプルコードスニペットです:
```yml lineNumbers
layout:
locale:
language: ja
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
page:
showPageNumbers: true
template: moderncv-banking
typography:
fontSize: 11pt
```
## なぜ Markdown ではないのか?
[Markdown](https://en.wikipedia.org/wiki/Markdown) は履歴書を書くための別の人気のある選択肢で、markdown を主要な入力形式として採用する履歴書ビルダーもあります。しかし、markdown はフォーマットされたテキストを作成するための汎用マークアップ言語で、履歴書は非常に限られた markdown 機能セットのみを使用します。
例えば、以下の markdown 構文は履歴書では使用される可能性が非常に低いです:
* 引用ブロック
* コードブロック
* 水平線
* 画像
* テーブル
* html タグ
* など
第二に、markdown は過度に柔軟で、履歴書作成に必要な自由度を超えてユーザーに提供することがよくあります。汎用 markdown 文書を履歴書に信頼性高く解析することは非常に困難でしょう。
第三に、テンプレート切り替え、LaTeX の `\hfill` や `\hspace` のような正確なレイアウト制御などの機能は、markdown では実装が困難です。
要するに、YAML/JSON のような完全に構造化された形式を使用することで、履歴書の形式とレイアウトに対してより多くの制御と信頼性を得ることができます。
## なぜまだ LaTeX なのか?
[LaTeX](https://www.latex-project.org/) は非常に成熟した安定したタイプセッティングエンジンで、極めて高品質な PDF を生成できます。しかし、多くの LaTeX ユーザー、さらには LaTeX 愛好家でさえ、LaTeX 言語がある程度時代遅れであることに同意するでしょう—そのエラーメッセージは通常非常に混乱しやすく、グローバル変数への依存はしばしばパッケージ間の競合を引き起こし、大きな文書のコンパイル速度は遅く通常非常に複雑で、醜い中間ファイル(`.aux`、`.log` など)を生成します。
[typst](https://github.com/typst/typst) で LaTeX を置き換えることを提案する人もいます。これはより良い開発者体験とより速いコンパイル速度を持つ現代的なタイプセッティングエンジンです。しかし、慎重に評価した結果、LaTeX に固執することを決定しました。ここでの決定要因は、YAMLResume が多言語をサポートし、最高のタイプセッティング品質を持つように設計されていることですが、typst の [CJK サポート](https://blog.ppresume.com/posts/on-typesetting-engines#cjk-3) はまだ不安定で不足しています。
後で typst をサポートする新しい [レンダラー](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/renderer/base.ts) バックエンドを追加するかもしれません。
## リッチテキストサポート
履歴書の入力形式として markdown を使用しないことを決定しましたが、各セクションの `summary` フィールドで限定的な markdown リッチテキスト構文セットをサポートしています。
現在、以下の markdown 構文をサポートしています:
* `**太字**`
* `*斜体*`
* `[リンク](https://www.google.com)`
* 順序付きリスト
* 順序なしリスト
* ネストされたリスト
* 段落
例えば、これは `content.basics.summary` フィールドのサンプルスニペットです:
```yml lineNumbers
---
content:
basics:
# ...
summary: |
This is a sample YAML resume that support limited set of markdown rich text syntax (bold, italics, links, lists):
- Computer Science major with **strong foundation** in data structures, *algorithms*, and software development
1. Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
2. Experiened in databases (SQL, NoSQL), familiar with server-side technologies ([Node.js](https://nodejs.org/en), Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
```
これが生成された PDF です:
リッチテキスト構文が太字、斜体、リンク、リストを含めて正しくレンダリングされているのがわかります。かなり良いですよね?
## ロードマップ
全体的に、このプロジェクトはまだ非常に初期段階にあり、まだ長い道のりがあります。近い将来に実装予定の機能リストを計画しています:
1. より多くの言語、日本語、ドイツ語、フランス語など
2. より多くのテンプレート
3. [セクションエイリアス](https://github.com/yamlresume/yamlresume/issues/11)
4. [セクション並び替え](https://github.com/yamlresume/yamlresume/issues/12)
5. [スキーマ検証](https://github.com/yamlresume/yamlresume/issues/10)
ご質問がございましたら:
* [issue](https://github.com/yamlresume/yamlresume/issues/) を提出
* [ディスカッション](https://github.com/yamlresume/yamlresume/discussions) を開始
* [メッセージ](https://discord.gg/9SyT7mVV4K) を送信
お楽しみに!
# YAMLResume v0.8: Markdown出力
URL: (/ja/blog/markdown-output)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
私たちは[YAMLResume v0.8](https://github.com/yamlresume/yamlresume/releases/tag/v0.8.0)のリリースを発表できることを大変嬉しく思います。これは、世界中の開発者や専門家にとって「Resume as Code」を標準にするための私たちの旅における重要なマイルストーンです。
当初から、YAMLResumeは1つの主要な使命に焦点を当ててきました。それは、クリーンでバージョン管理されたYAML形式で履歴書を作成し、美しく組版されたピクセルパーフェクトなPDFにコンパイルできるようにすることです。PDFは依然として求職活動のゴールドスタンダードですが、ユーザーは履歴書のデータを他の形式で必要とすることがよくあることに気付きました。例えば、個人のウェブサイト用、応募者追跡システム(ATS)への貼り付け用、さらには最適化のために大規模言語モデル(LLM)にフィードするためなどです。
v0.8では、強力な新しいアーキテクチャである[複数のレイアウト](/ja/docs/layouts)を導入し、それに伴い[Markdown出力](/ja/docs/layouts/markdown)のファーストクラスサポートを追加しました。
TL;DR、簡単なデモ:
[](https://asciinema.org/a/759578)
## レイアウト付きYAMLResume
YAMLResumeの以前のバージョンでは、コンパイルパイプラインは線形で単一でした。YAMLファイルを提供すると、エンジンがPDFを出力していました。別の[テンプレート](/ja/docs/layouts/latex#templates)が必要な場合は、`layout.template`フィールドを変更していました。フォントサイズを変えたい場合は、[タイポグラフィ](/ja/docs/layouts/latex#typography)設定を微調整していました。しかし、最終的な出力先は常に[LaTeX](/ja/docs/layouts/latex)エンジンを介して生成されたPDFファイルでした。
これはうまく機能しましたが、制限がありました。採用担当者にメールで送るためのPDFを生成したいが、レガシーフォーム用のプレーンテキストバージョンも必要な場合はどうでしょうか? [Hugo](https://gohugo.io/)や[Next.js](https://nextjs.org/)のブログで公開するために[Markdown](/ja/docs/layouts/markdown)バージョンが必要な場合はどうでしょうか?
v0.8では、[レイアウトスキーマ](/ja/docs/compiler/schema/zod#layoutsschema)を完全に再設計し、[複数のレイアウト](/ja/docs/layouts)をサポートするようにしました。単一の出力設定セットの代わりに、履歴書のYAMLファイルでレイアウトのリストを定義できるようになりました。各レイアウトは、`engine`(`latex`や`markdown`など)と独自の構成オプションを指定します。
これは、単一の[`yamlresume build`](/ja/docs/cli#build)コマンドで、PDF、Markdownファイル、将来的にはHTMLやdocxファイルなど、複数のアーティファクトを同時に生成できることを意味します。これは「信頼できる唯一の情報源(Source of Truth)」の原則に準拠しています。`resume.yml`は信頼できる唯一の情報源であり続け、出力はさまざまな配信チャネルに合わせて調整された派生表現にすぎません。
新しい構成はYAMLファイルで次のようになります。
```yml lineNumbers
# Multiple output layouts configuration
layouts:
- engine: latex
page:
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
showPageNumbers: true
template: moderncv-banking
typography:
fontSize: 11pt
- engine: markdown
```
ご覧のとおり、ここでは2つのレイアウトを定義しています。1つ目は、特定のテンプレート、ページ余白、タイポグラフィ設定などを持つ[`latex`](/ja/docs/layouts/latex)エンジン(従来のPDFジェネレーター)を使用します。2つ目は、新しい[`markdown`](/ja/docs/layouts/markdown)エンジンを使用します。このアプローチの利点は、履歴書の実際の内容に触れることなく、必要に応じてレイアウトを追加または削除できることです。
## 新しい出力としてのMarkdown
なぜMarkdownなのでしょうか? Markdownは開発者の世界共通語になっています。軽量で読みやすく、広くサポートされています。Markdownを出力ターゲットとして追加することで、YAMLResumeは正式な履歴書ドキュメントと柔軟なウェブファーストの世界との間のギャップを埋めます。
実際に見てみましょう。`yamlresume`がインストールされている(バージョン0.8.0以上)場合、2つのコマンドだけで新しい履歴書を生成してビルドできます。
### ステップ1:新しい履歴書の作成
まず、[CLI](/ja/docs/cli)を使用してボイラープレートの履歴書を生成しましょう。
```console
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
これにより、デフォルトの構成を持つ`my-resume.yml`ファイルが作成されます。これには、デフォルトで[LaTeX](/ja/docs/layouts/latex)と[Markdown](/ja/docs/layouts/markdown)の両方のレイアウトが含まれるようになりました。
生成された`my-resume.yml`ファイルの内容は次のとおりです(`content`は無視して、最後の行の`markdown`レイアウト構成を見てください)。
```yml lineNumbers
---
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@ppresume.com
url: https://ppresume.com/gallery
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
city: Sacramento
region: California
country: United States
postalCode: "95814"
profiles:
- network: Line
url: https://line.com/PPResumeX
username: PPResumeX
- network: Twitter
url: https://twitter.com/PPResumeX
username: PPResumeX
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
startDate: Sep 1, 2016
endDate: Jul 1, 2020
courses:
- Discrete Methods in Computer Science
- Programming Language Concepts
- Data Structures and Object-Oriented Design
- Operating Systems
- Computer Architecture
- Database Systems
- Computer Networking
- Introduction to the Theory of Computing
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
work:
- name: PPResume
url: https://ppresume.com
startDate: Dec 1, 2022
endDate:
position: Senior Software Engineer
summary: |
- Developed and implemented efficient and scalable code, ensuring high-quality and maintainable web applications
- Collaborated with cross-functional teams to gather project requirements and translate them into technical solutions
- Conducted thorough testing and debugging to identify and resolve any issues or bugs in the software
- Actively participated in code reviews, providing valuable feedback to improve code quality and adherence to best practices
- Mentored and guided junior developers, fostering a collaborative and growth-oriented team environment
keywords:
- Scalability
- Growth
- Quality
- Mentorship
- name: PPResume
url: https://ppresume.com
startDate: Sep 1, 2020
endDate: Dec 1, 2022
position: Software Engineer
summary: |
- Created reusable React components to ensure code efficiency and maintainability
- Integrated with RESTful APIs to fetch and display dynamic data on the frontend
- Implemented client-side routing using React Router for smooth navigation between pages
- Actively participated in Agile development methodologies, attending daily stand-up meetings and sprint planning sessions
keywords:
- RESTful
- React
- Agile
languages:
- language: English
fluency: Native or Bilingual Proficiency
keywords:
- TOEFL 110
- IELTS 7.5
- language: Chinese
fluency: Elementary Proficiency
keywords: []
skills:
- name: Web Development
level: Expert
keywords:
- Python
- Ruby
- CSS
- React
- JavaScript
- name: DevOps
level: Intermediate
keywords:
- Python
- Kubernetes
- Docker
- Shell
- Ansible
- name: Design
level: Intermediate
keywords:
- Sketch
- Figma
- Photoshop
awards:
- title: Dean's List
awarder: University of Southern California
date: Oct 2016
summary: |
Awarded to students who achieve a high academic standing by maintaining a specified grade point average (GPA) during a semester.
certificates:
- name: AWS Certified Developer - Associate
url: https://aws.amazon.com/certification/
issuer: AWS
date: Mar 2021
publications:
- publisher: ACM Transactions on Interactive Intelligent Systems
url: https://dl.acm.org/journal/tiis
name: Enhancing Human-Computer Interaction through Augmented Reality
releaseDate: Dec 2017
summary: |
- Explores the potential of augmented reality (AR) in improving interaction between humans and computers
- Highlights benefits of AR in various areas such as gaming, education, healthcare, and design
- Discusses challenges and future directions of AR technology in enhancing user experience
references:
- name: Dr. Amanda Reynolds
phone: "(555) 123-4567"
relationship: Computer Science Professor
email: amanda.reynolds@usc.edu
summary: |
Andy Dufresne shows exceptional problem-solving skills and a solid understanding of programming concepts, he would bring immense value to any team or organization he becomes a part of.
projects:
- name: EduWeb
url: https://www.eduweb.xyz/
description: A web-based educational platform for interactive learning
startDate: Sep 2016
endDate: Dec 2016
summary: |
- Designed to enhance online learning experiences
- Facilitates students' engagement and collaboration through interactive features and user-friendly interface
- Offers a wide range of courses across various subjects
- Aims to improve the way students learn through the power of the web
keywords:
- Education
- Online Learning
- HCI
interests:
- name: Sports
keywords:
- Soccer
- Swimming
- Bicycling
- Hiking
- name: Music
keywords:
- Piano
- Guitar
volunteer:
- organization: USC Computer Science and Engineering Society
url: https://www.usccsesociety.org/
position: Tech Mentor
startDate: Sep 2015
endDate: Jul 2023
summary: |
- Volunteered as a Tech Mentor at USC Computer Science and Engineering Society
- Provided guidance and assistance to fellow students in their technical projects and coursework
- Assisted in organizing workshops, coding competitions, and networking events for the society members
- Contributed to fostering a collaborative and supportive environment within the student community
locale:
language: en
layouts:
- engine: latex
page:
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
showPageNumbers: true
template: moderncv-banking
typography:
fontSize: 11pt
- engine: markdown #[!code highlight]
```
### ステップ2:履歴書のビルド
次に、ビルドコマンドを実行します。
```console lineNumbers
$ yamlresume build my-resume.yml
✔ Generated resume tex file successfully: my-resume.tex
◐ Generating resume pdf file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume pdf file successfully: my-resume.pdf
✔ Generated resume markdown file successfully: my-resume.md
```
最後の行に注目してください:
`✔ Generated resume markdown file successfully: my-resume.md`。CLIはYAML構成内の[`markdown`](/ja/docs/layouts/markdown)レイアウトを自動的に検出し、PDFと一緒に対応する`.md`ファイルを生成しました。
### 結果のMarkdown
生成された`my-resume.md`を見てみましょう。エンジンは、標準的な構文のヘッダー、リスト、リンクを使用して、構造化されたYAMLデータをクリーンで整形されたMarkdownドキュメントにインテリジェントに変換します。
```markdown lineNumbers
# Andy Dufresne
Headline: Headed for the Pacific
- Email: hi@ppresume.com
- Phone: (213) 555-9876
- URL: https://ppresume.com/gallery
Location: 123 Main Street, Sacramento, California, United States, 95814
Profiles:
- Line: [@PPResumeX](https://line.com/PPResumeX)
- Twitter: [@PPResumeX](https://twitter.com/PPResumeX)
## Basics
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
## Education
### University of Southern California
Bachelor, Computer Engineering and Computer Science, Score: 3.8, Sep 2016–Jul 2020
URL: https://www.cs.usc.edu/
Courses: Discrete Methods in Computer Science, Programming Language Concepts, Data Structures and Object-Oriented Design, Operating Systems, Computer Architecture, Database Systems, Computer Networking, Introduction to the Theory of Computing
Summary:
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
## Work
### Senior Software Engineer
PPResume, Dec 2022–Present
URL: https://ppresume.com
Keywords: Scalability, Growth, Quality, Mentorship
Summary:
- Developed and implemented efficient and scalable code, ensuring high-quality and maintainable web applications
- Collaborated with cross-functional teams to gather project requirements and translate them into technical solutions
- Conducted thorough testing and debugging to identify and resolve any issues or bugs in the software
- Actively participated in code reviews, providing valuable feedback to improve code quality and adherence to best practices
- Mentored and guided junior developers, fostering a collaborative and growth-oriented team environment
### Software Engineer
PPResume, Sep 2020–Dec 2022
URL: https://ppresume.com
Keywords: RESTful, React, Agile
Summary:
- Created reusable React components to ensure code efficiency and maintainability
- Integrated with RESTful APIs to fetch and display dynamic data on the frontend
- Implemented client-side routing using React Router for smooth navigation between pages
- Actively participated in Agile development methodologies, attending daily stand-up meetings and sprint planning sessions
## Languages
- English: Native or Bilingual Proficiency, Keywords: TOEFL 110, IELTS 7.5
- Chinese: Elementary Proficiency
## Skills
- Web Development: Expert, Keywords: Python, Ruby, CSS, React, JavaScript
- DevOps: Intermediate, Keywords: Python, Kubernetes, Docker, Shell, Ansible
- Design: Intermediate, Keywords: Sketch, Figma, Photoshop
## Awards
### Dean's List
University of Southern California, Oct 2016
Summary:
Awarded to students who achieve a high academic standing by maintaining a specified grade point average (GPA) during a semester.
## Certificates
### AWS Certified Developer - Associate
AWS, Mar 2021
URL: https://aws.amazon.com/certification/
## Publications
### Enhancing Human-Computer Interaction through Augmented Reality
ACM Transactions on Interactive Intelligent Systems, Dec 2017
URL: https://dl.acm.org/journal/tiis
Summary:
- Explores the potential of augmented reality (AR) in improving interaction between humans and computers
- Highlights benefits of AR in various areas such as gaming, education, healthcare, and design
- Discusses challenges and future directions of AR technology in enhancing user experience
## References
### Dr. Amanda Reynolds
Computer Science Professor, amanda.reynolds@usc.edu, (555) 123-4567
Summary:
Andy Dufresne shows exceptional problem-solving skills and a solid understanding of programming concepts, he would bring immense value to any team or organization he becomes a part of.
## Projects
### EduWeb
A web-based educational platform for interactive learning, Sep 2016–Dec 2016
URL: https://www.eduweb.xyz/
Keywords: Education, Online Learning, HCI
Summary:
- Designed to enhance online learning experiences
- Facilitates students' engagement and collaboration through interactive features and user-friendly interface
- Offers a wide range of courses across various subjects
- Aims to improve the way students learn through the power of the web
## Interests
- Sports: Soccer, Swimming, Bicycling, Hiking
- Music: Piano, Guitar
## Volunteer
### USC Computer Science and Engineering Society
Tech Mentor, Sep 2015–Jul 2023
URL: https://www.usccsesociety.org/
Summary:
- Volunteered as a Tech Mentor at USC Computer Science and Engineering Society
- Provided guidance and assistance to fellow students in their technical projects and coursework
- Assisted in organizing workshops, coding competitions, and networking events for the society members
- Contributed to fostering a collaborative and supportive environment within the student community
```
## Markdownの利点
「すでに素晴らしいPDFがあるのに、なぜMarkdownバージョンが必要なのか?」と疑問に思うかもしれません。履歴書の構造化されたプレーンテキスト表現を持つことの利点は計り知れず、特に現代のAI主導の世界では重要です。
### 1. LLMフレンドリー
これはおそらく今日最も重要な利点です。私たちは大規模言語モデル(LLM)の時代に生きています。ChatGPT、Claude、Geminiのようなツールはテキストの分析に非常に優れていますが、バイナリPDFファイルや複雑なLaTeXソースコードには苦労する可能性があります。
履歴書のクリーンなMarkdownバージョンを生成することで、LLMへの完璧な入力を得ることができます。`resume.md`をChatGPTにコピー&ペーストして、次のように依頼できます。
* 「この職務記述書に合わせて私の履歴書を調整してください...」
* 「要約セクションを批評し、改善を提案してください...」
* 「私の主要なスキルを抽出し、カバーレター用にフォーマットしてください...」
Markdownは意味的に構造化されている(見出し、リスト、太字)ため、LLMは生のテキストやPDF変換よりも、履歴書の階層と内容をはる実によく「理解」できます。
### 2. 相互運用性とウェブ公開
Markdownはウェブのネイティブコンテンツ形式です。Next.js、Hugo、Jekyll、またはGatsbyで構築された個人のポートフォリオやブログがある場合は、`resume.md`をコンテンツフォルダに直接ドロップできます。
新しいMarkdown出力を使用すると、パーソナルブランディングのワークフローを自動化できます。
1. 最新の仕事やプロジェクトで`resume.yml`を更新します。
2. `yamlresume build`を実行します。
3. 生成された`resume.pdf`はダウンロードリンクに送られます。
4. 生成された`resume.md`はウェブサイトの「About Me」ページを更新します。
手動でコピー&ペーストしたり、履歴書の2つの別々のバージョンを維持したりする必要はもうありません。
### 3. 人間が読める形式とGitの差分
YAMLは読みやすいですが、Markdownは長いテキストにおいてはさらに読みやすいです。YAML構文やLaTeXコマンドの「ノイズ」なしにコンテンツを確認するための優れた中間フォーマットとして機能します。
さらに、出力は決定論的なプレーンテキストであるため、Gitで変更を簡単に追跡できます。職務記述書を変更した場合、`resume.md`の差分はテキストの変更を明確に示します。これは、バイナリPDFの差分を取ろうとするよりも、ピアレビュー(GitHubのプルリクエストなど)にとって非常に友好的です。
### 4. 普遍的な移植性
Markdownは、[Pandoc](https://pandoc.org/)のようなツールを使用して、他のほぼすべてのドキュメント形式に簡単に変換できます。Wordにこだわる採用担当者のために`.docx`ファイルが必要ですか? `pandoc resume.md -f gfm -o resume.docx`。HTMLスニペットが必要ですか? `pandoc resume.md -f gfm -o resume.html`。Markdown出力は、ドキュメントエコシステム全体との互換性を解き放つ多目的な「ピボット」形式として機能します。
## 次のステップ:HTMLレイアウト
レイアウトシステムとMarkdownエンジンの導入は始まりに過ぎません。私たちは現在、[HTMLレイアウトエンジン](https://github.com/yamlresume/yamlresume/issues/45)に積極的に取り組んでいます。
`yamlresume build`を実行して、PDFと同じくらい見栄えが良く、ブラウザネイティブで、完全にレスポンシブでSEO最適化されたスタンドアロンのHTMLファイルを取得することを想像してください。これにより、オーバーヘッドなしでGitHub Pages、Vercel、またはNetlifyで履歴書をシンプルな静的ページとしてホストできるようになります。
HTMLレイアウトは以下をサポートします。
* モバイル表示用のレスポンシブデザイン(電話でPDFをピンチやズームする必要はありません)。
* 履歴書の内容から自動生成されるSEOメタデータ。
* CSS変数を介したテーマのサポート。
* インタラクティブな要素(クリック可能なプロジェクトリンク、折りたたみ可能なセクションなど)。
私たちは、履歴書のデータはあなたのものであり、印刷用のピクセルパーフェクトなPDF、AI用のクリーンなMarkdownファイル、ウェブ用のレスポンシブなHTMLページなど、ニーズに最適な形式でレンダリングできるべきだと信じています。
## 結論
YAMLResume v0.8は、柔軟性における大きな前進です。コンテンツ(YAML)をプレゼンテーション(レイアウト)から分離することで、開発者が履歴書のデータを新しい創造的な方法で使用できるようにしています。
ぜひv0.8にアップグレードし、レイアウトに`markdown`エンジンを追加して、必要な形式で必要なときに履歴書を利用できる自由を体験してください。
試してみる:
```console lineNumbers
$ npm install -g yamlresume@latest
$ pnpm install -g yamlresume@latest
$ yarn global add yamlresume@latest
$ bun add -g yamlresume@latest
$ brew install yamlresume
```
# YAMLResume v0.6: セクションカスタマイズ
URL: (/ja/blog/section-customization)
YAMLResume [v0.6](https://github.com/yamlresume/yamlresume/releases/tag/v0.6.0) がリリースされ、履歴書の構造をカスタマイズするための 2 つの強力な機能が追加されました:[セクションエイリアス](/ja/docs/layouts/sections/aliases) と [セクション並び替え](/ja/docs/layouts/sections/reorder)。これらの機能により、セクションタイトルを変更し、最終 PDF での順序を制御でき、履歴書をカスタマイズするためのより大きな柔軟性を提供します。
仕組みを詳しく見てみましょう。
## セクションエイリアス
YAMLResume のデフォルトセクションタイトル(例:`education`、`work`)は、選択した [ロケール言語](/ja/docs/layouts#locale) に基づいて自動的に[翻訳](/ja/docs/layouts/sections/docs/locale) されます。しかし、異なるタイトルを好む場合があります。例えば、「仕事」を「プロフェッショナル経験」に変更したい場合があります。
エイリアスを定義するには、`resume.yml` で `layout.sections.aliases` マップを使用してください。
```yml lineNumbers title="resume.yml"
---
content:
# ...
layout: # [!code focus]
sections: # [!code focus]
aliases: # [!code focus]
work: プロフェッショナル経験 # [!code focus]
education: 学術背景 # [!code focus]
skills: 技術スキル # [!code focus]
```
## セクション並び替え
デフォルトでは、セクションは [標準順序](/ja/docs/layouts/sections/reorder#default-section-order) でレンダリングされます。`layout.sections.order` 機能により、この順序を変更して、最も重要な情報を最初に強調表示できます。
例えば、「スキル」と「プロジェクト」セクションを「仕事」経験の前に配置するには、以下のように順序を定義できます:
```yml lineNumbers title="resume.yml"
---
content:
# ...
layout: #[!code focus]
sections: #[!code focus]
order: #[!code focus]
- skills #[!code focus]
- projects #[!code focus]
- work #[!code focus]
```
`order` リスト内のセクションが最初に表示され、その後残りのセクションがデフォルト順序で表示されます。
## すべてを組み合わせる:完全な例
両方の機能を使用する 1 ページの履歴書を作成しましょう。いくつかのセクションに対してエイリアスと並び替えを同時に設定します。
```yml lineNumbers title="resume.yml"
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
---
layout:
sections: # [!code highlight]
aliases: # [!code highlight]
work: Professional Experience # [!code highlight]
education: Academic Background # [!code highlight]
skills: Technical Skills # [!code highlight]
order: # [!code highlight]
- basics # [!code highlight]
- work # [!code highlight]
- education # [!code highlight]
- skills # [!code highlight]
template: moderncv-banking
typography:
fontSize: 11pt
content:
basics:
name: Jane Doe
headline: Senior Software Engineer
email: jane.doe@example.com
phone: "555-123-4567"
summary: |
A passionate and experienced software engineer with a proven track record
of designing, developing, and deploying robust web applications. Skilled
in both front-end and back-end development, with a keen eye for detail and
a dedication to writing clean, efficient code.
education:
- institution: Tech University
area: Software Engineering
degree: Master
startDate: 2018-09-01
endDate: 2020-06-01
summary: Specialized in distributed systems and cloud computing.
- institution: State University
area: Computer Science
degree: Bachelor
startDate: 2014-09-01
endDate: 2018-06-01
summary: |
- Graduated with honors.
- Focused on algorithms, data structures, and distributed systems.
courses:
- Data Structures & Algorithms
- Operating Systems
- Computer Networks
- Database Systems
work:
- name: Tech Solutions Inc.
position: Senior Software Engineer
startDate: 2020-07-01
summary: |
- Led the development of a new microservices-based architecture, improving system scalability and reliability.
- Mentored junior engineers, providing guidance on best practices and code quality.
- Optimized application performance, reducing API response times by 30%.
- name: Innovate Corp.
position: Software Engineer
startDate: 2018-07-01
endDate: 2020-06-30
summary: |
- Developed and maintained features for a large-scale e-commerce platform using React and Node.js.
- Collaborated with product managers and designers to deliver high-quality user experiences.
- Participated in on-call rotation to ensure application stability.
- name: Data Systems LLC
position: Software Engineer Intern
startDate: 2017-06-01
endDate: 2017-08-31
summary: |
- Assisted in the development of a data processing pipeline.
- Wrote unit tests to ensure code quality.
- Gained experience with Agile development methodologies.
skills:
- name: Programming Languages
level: Expert
keywords:
- JavaScript (ES6+)
- TypeScript
- Python
- Go
- name: Technologies & Frameworks
level: Advanced
keywords:
- React
- Node.js
- Express
- Docker
- Kubernetes
- PostgreSQL
- name: Developer Tools
level: Advanced
keywords:
- Git & GitHub
- Webpack
- Jest
- CircleCI
languages:
- language: English
fluency: Native or Bilingual Proficiency
- language: Spanish
fluency: Limited Working Proficiency
```
ここで、`work`、`education`、`skills` セクションのエイリアスを設定し、`work` の優先度を `education` より高くし、その後に `skills` セクションを配置してセクションを並び替えました:
それでは、履歴書をビルドしましょう:
```bash
yamlresume build resume.yml
```
カスタマイズされたセクションをハイライトした以下の内容の PDF ファイルが得られます:
素晴らしい、期待通りに動作しています!これはクールではありませんか?
## まとめ
セクションエイリアスと並び替えにより、履歴書の構造を細かく制御できるようになりました。これらの機能が、より個性的で効果的な履歴書の作成に役立つことを願っています。
セクションカスタマイズの最良の側面は、[YAMLResume の i18n 機能を拡張してより多くの言語をサポート](/ja/docs/layouts/sections/reorder#default-section-order) できることです。デフォルトでは、デフォルトセクションタイトルは対象ロケール言語(`layout.locale.language` で設定)に基づいて自動的に翻訳されます。しかし、YAMLResume が [まだ対象言語をサポートしていない](https://github.com/yamlresume/yamlresume/discussions/36) 場合があるため、デフォルトセクションタイトルを独自のものにオーバーライドできます。
同時に、異なる背景を持つ人々はセクション順序に異なる好みを持っています。例えば、業界の仕事を探している候補者は `work` を `education` の前に配置するかもしれませんが、学術ポジションを探しているポスドク研究者は `education` を `work` の前に配置するでしょう。
これらの新機能をお楽しみください!
# YAMLResume v0.10: VS Code テンプレートとオランダ語サポート
URL: (/ja/blog/v0.10)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
[YAMLResume v0.10](https://github.com/yamlresume/yamlresume/releases/tag/v0.10.0) のリリースをお知らせできることを嬉しく思います。このリリースでは、開発者に人気のテーマによるレイアウトエコシステムの拡張、国際的なサポートの拡大、およびドキュメント形式のきめ細かな制御の追加に焦点を当てています。
## 新しい HTML テンプレート: VS Code
開発者にとって、コードエディタは自宅のようなものです。これからは、履歴書も同じように親しみやすいものになります。HTML エンジン向けに新しく [VS Code テンプレート](/docs/layouts/html/templates/vscode) を導入しました。これは、Visual Studio Code の "Dark+" カラースキームにインスパイアされたダークテーマを特徴としています。
名前をクラス、スキルをオブジェクト、経験を関数の形にするなど、シンタックスハイライトの美学を取り入れています。使用するには、レイアウト設定を更新するだけです:
```yml lineNumbers
layouts:
- engine: html
template: vscode #[!code highlight]
```
このテンプレートは、ソフトウェアエンジニア、DevOps プロフェッショナル、および自分の技術的なルーツをすぐにアピールしたいすべての人に最適です。
## オランダ語サポート
YAMLResume は世界中で成長を続けています。[MattiaPun](https://github.com/MattiaPun) 氏の貢献により、[オランダ語 (nl)](/docs/locale/dutch) をサポートしました!
これにより、サポートされている言語は 6 つになりました:
* [英語 (en)](/docs/locale/english)
* [中国語 (zh)](/docs/locale/chinese)
* [スペイン語 (es)](/docs/locale/spanish)
* [フランス語 (fr)](/docs/locale/french)
* [ノルウェー語 (no)](/docs/locale/norwegian)
* [オランダ語 (nl)](/docs/locale/dutch)
オランダ語で履歴書を生成するには、`resume.yml` でロケールを設定します:
```yml lineNumbers
locale:
language: nl
```
これにより、セクションヘッダー(例:「Werkervaring」、「Opleidingen」)、日付形式、および国名が自動的に翻訳されます。
## LaTeX 用紙サイズのサポート
LaTeX/PDF エンジンで用紙サイズを明示的に制御できるようになりました。世界の多くの地域では A4 が標準ですが、北米では US Letter が不可欠です。
設定で直接、好みの用紙サイズを指定できるようになりました:
```yml lineNumbers
layouts:
- engine: latex
page:
# オプション:'a4' (デフォルト) または 'letter'
paperSize: letter #[!code highlight]
```
これにより、お住まいの地域に関係なく、PDF 履歴書が完璧に印刷されます。この機能を推進してくれた [djryanj](https://github.com/djryanj) 氏に感謝します!
## アイコンの切り替え
時には「少ないほど豊か」なこともあります。アイコンは視覚的な華やかさを添えますが、特定のフォーマルな場面や ATS(採用管理システム)向けの文脈では、テキストのみの厳格なプレゼンテーションが必要になる場合があります。
HTML エンジンと LaTeX エンジンの両方の `advanced` 設定に `showIcons` オプションを導入しました。これにより、連絡先の詳細やソーシャルプロフィールのアイコンの表示・非表示を柔軟に切り替えることができます。
```yml lineNumbers
layouts:
- engine: html
advanced:
showIcons: false #[!code highlight]
- engine: latex
advanced:
showIcons: false #[!code highlight]
```
## 結論
YAMLResume v0.10 は、履歴書の見栄えから地域の基準への適合まで、より多くの選択肢を提供することを目的としています。
今すぐアップグレードして新機能を試してみてください:
```console
$ npm install -g yamlresume@latest
# または
$ brew upgrade yamlresume
```
いつものように、[GitHub](https://github.com/yamlresume/yamlresume) でのフィードバックや貢献を歓迎します。Happy building!
# YAMLResume v0.5: 履歴書コンパイラ
URL: (/ja/blog/yamlresume-compiler)
[YAMLResume v0.5](https://github.com/yamlresume/yamlresume/releases/tag/v0.8.1) のリリースを発表できることを非常に嬉しく思います。これは重要なマイルストーンで、YAMLResume を単純なツールから本格的な**履歴書コンパイラ**に変革します。このリリースでは、堅牢なアーキテクチャ、強力なスキーマ検証、強化された CLI を導入し、履歴書作成プロセスをより信頼性が高く、効率的で、エラーのないものにします。
## 手動履歴書作成の問題
履歴書の起草は、しばしば面倒でエラーが発生しやすいプロセスです。ワードプロセッサを使用しているか、シンプルなマークアップ言語を使用しているかに関わらず、エラーを犯しやすいです:
* `degree` や `fluency` などの重要なフィールドでのタイポ
* 不正な形式のメールアドレスや URL
* 一貫性のない日付形式
* 求職申請に必要なフィールドの忘れ
これらの小さなエラーは、編集、生成、校正の終わりのないサイクルにつながる可能性があります。核心的な問題は、最終文書が生成される前に構造を強制し、データを検証するシステムの欠如です。
## 解決策:履歴書コンパイラ
プログラミング言語コンパイラにインスパイアされて、[YAMLResume v0.5](https://github.com/yamlresume/yamlresume/releases/tag/v0.8.1) は新しいコンパイラアーキテクチャを導入し、履歴書のソースファイル(YAML 形式)をコードとして扱います。その後、この「コード」はパイプラインを通じて処理され、洗練されたプロフェッショナルな PDF が生成されます。
この新しいアーキテクチャは 2 つのコアコンポーネントを定義します:
1. 履歴書の[標準データ形式](/ja/docs/compiler/types) と、データを検証するための[スキーマ](/ja/docs/compiler/schema)
2. データ形式とスキーマ検証を実装する参照[コンパイラ](/ja/docs/compiler)
このアプローチはいくつかの重要な利点をもたらします:
* **関心の分離**:履歴書の**コンテンツ**にのみ集中します。コンパイラが**プレゼンテーション**—レイアウト、タイポグラフィ、フォーマット—を処理します
* **早期エラー検出**:コンパイラが事前定義されたスキーマに対して履歴書を検証し、明確で実行可能なフィードバックと共にエラーを即座にキャッチします
* **一貫性と信頼性**:標準構造を強制することで、コンパイラは履歴書データが常に一貫しており、任意のテンプレートで使用する準備ができていることを保証します
### 実際の動作
例えば、いくつかの一般的なエラーを含む以下の履歴書を考えてみましょう:
```yml lineNumbers title="invalid-resume.yml"
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
---
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@pp # [!code highlight]
url: https//ppresume.com/gallery # [!code highlight]
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
region: California
city: S # [!code highlight]
country: United States
postalCode: "95814"
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
startDate: Sep 1, 2016
endDate:
courses:
- D # [!code highlight]
- Programming Language Concepts
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
layout:
typography:
fontSize: 13pt # [!code highlight]
```
いくつかの問題があります:
1. `email: hi@pp` - 形式が無効
2. `url: https//ppresume.com/gallery` - プロトコル部分に `:` が欠けている
3. `city: S` - 短すぎる、2 文字以上であるべき、世界に名前が 1 文字だけの都市はありますか?
4. `- D` - 最初のコースが短すぎる、2 文字以上であるべき
5. `fontSize: 13pt` - 10pt、11pt または 12pt であるべき、13pt は大きすぎて履歴書作成シナリオでは意味がない
以前は見落とされていた可能性のあるこれらのエラーが、今では即座にキャッチされます。`yamlresume validate my-resume.yml` を実行するか、単純に `yamlresume build my-resume.yml` を実行できます。YAMLResume は広く採用されている [clang スタイルエラー形式](https://clang.llvm.org/diagnostics.html) ですべての問題を報告し、最終 PDF が生成される前に修正できるようにします。
## コンパイラの核心:スキーマ
この新リリースの基盤は **[YAMLResume スキーマ](/ja/docs/compiler/schema)** です。履歴書のすべてのデータピースの構造とルールを定義する包括的なスキーマを提供します。
これには 2 つの強力なテクノロジーを使用しています:
* **[Zod](https://zod.dev)**:コンパイラ内でのランタイム検証に使用し、堅牢な安全網と詳細なエラーメッセージを提供
* **[JSON Schema](https://json-schema.org)**:エディタと IDE 統合に使用。YAML ファイルに 1 行追加するだけで、エディタで自動補完、ホバー時のプロパティドキュメント、リアルタイム形式検証のロックを解除
v0.5 より前に作成された履歴書がある場合でも、スキーマ検証を活用できます。履歴書ファイルに以下の行を追加し、エディタに [YAML 言語サーバー](https://github.com/redhat-developer/yaml-language-server) をインストールするだけです。
```yml lineNumbers
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
```
この統合は、履歴書作成体験を劇的に改善する一連の利点を提供します:
### 自動補完
フィールド名を調べる時間を短縮します。エディタが入力時に有効なプロパティを提案し、毎回正しいフィールドを使用することを保証します。
### リアルタイム形式検証
エラーが発生した瞬間にキャッチします。スキーマ検証は、シンプルなタイポから不正なメール形式や必須フィールドの欠落まで、すべてについて即座のフィードバックを提供します。
必須キーが欠落している場合、警告は親オブジェクトにエスカレートされ、発見と修正が容易になります。
### インラインプロパティドキュメント
フィールドの機能を推測する必要がなくなります。任意のプロパティにホバーして、その目的、期待される形式、許可される値についての即座のドキュメントを取得できます。
## 強化された CLI
`yamlresume` [CLI](/ja/docs/cli) はこれまで以上に強力になりました。[ビルド](/ja/docs/cli#build) コマンドは検証から PDF 生成までコンパイラパイプライン全体を実行し、新しい [検証](/ja/docs/cli#validate) コマンドはビルドせずに履歴書をチェックできます。
[](https://asciinema.org/a/728098)
このシームレスなワークフローは履歴書作成プロセスを変革し、エラーを最小限に抑えながら、より効率的で信頼性の高いものにします。
## これがあなたにとって何を意味するか
[YAMLResume v0.5](https://github.com/yamlresume/yamlresume/releases/tag/v0.8.1) により、以下が可能になります:
* **自信を持って書く**:履歴書の構造が健全で、データが有効であることを知る
* **時間を節約**:エラーを早期にキャッチし、面倒な校正サイクルを排除
* **柔軟性を保つ**:異なる履歴書テンプレート間を簡単に切り替え
* **より良い編集体験を楽しむ**:お好みのエディタでリアルタイムフィードバックと自動補完を取得
新しい YAMLResume コンパイラの力とシンプルさを体験してください:
* **インストールまたは更新** 最新バージョンへ:`npm install -g yamlresume@latest`
* **新しい[コンパイラドキュメント](/ja/docs/compiler)を読む** アーキテクチャとスキーマについてもっと学ぶ
* **コミュニティに参加** [GitHub](https://github.com/yamlresume/yamlresume/discussions) で質問、問題報告、貢献
このリリースが履歴書作成の新時代をマークし、すべての人にコンパイラの力と信頼性をもたらすと信じています。あなたが構築する素晴らしい履歴書を見るのが待ちきれません!
忘れずに、[Docker イメージ](/ja/blog/yamlresume-docker) で新しいコンパイラを試すことができます:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
```
# Docker での YAMLResume
URL: (/ja/blog/yamlresume-docker)
YAMLResume に [docker イメージ](https://hub.docker.com/r/yamlresume/yamlresume) ができたことを発表できて非常に興奮しています。これで [docker で YAMLResume を即座に実行](https://asciinema.org/a/722057) できます。
## なぜ Docker なのか?
YAMLResume は Node.js CLI ツールと[ライブラリ](https://www.npmjs.com/package/@yamlresume/core) です。YAMLResume 自体のインストールは Node.js のみが必要なので困難ではありません。実際、Node.js をインストールせずに直接実行できるバイナリにコンパイルすることもできます。
しかし、YAMLResume には LaTeX への強制依存があり、いくつかの新しい問題をもたらします:
* LaTeX のインストールには時間がかかる;適切な LaTeX ディストリビューションをダウンロードして設定するのに通常約 5-10 分かかる
* LaTeX は単一のバイナリプログラムではない;プログラムの集合である。一部のユーザーは[マシンに多くのプログラムをインストールすることを嫌う](https://github.com/yamlresume/yamlresume/issues/6#issuecomment-2916479009)
macOS、Windows、Ubuntu、RHEL をカバーし、YAMLResume と LaTeX をインストールして連携させる手順を含む非常に包括的な[インストールガイド](/ja/docs/installation) を既に提供していますが、一部のユーザーにとってこのプロセスは依然として苦痛である可能性があります。
Docker はこれらの問題に対する素晴らしい解決策です:すべてを単一のイメージにパッケージ化し、インストールと設定を簡単にします。
## 使用方法
百聞は一見に如かず。使用方法を示すスクリーンショットです:
私たちの [docker イメージ](https://hub.docker.com/r/yamlresume/yamlresume) には、以下を含むすべてが事前パッケージ化されています:
* [Node.js](/ja/docs/installation#nodejs)
* [yamlresume CLI](/ja/docs/installation#yamlresume)
* [XeTeX](/ja/docs/installation#xetex)
* [推奨フォント](/ja/docs/installation#font)
以下のコマンドで即座に新しい履歴書を作成できます:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
```
`my-resume.yml` を適切に編集し、YAML から PDF に履歴書をビルドします:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
```
#### 内部の仕組み
docker に慣れている場合、これがどのように動作するかは既にご存知かもしれません。そうでない場合、簡単な説明です:
1. `docker run ... yamlresume/yamlresume` - `yamlresume/yamlresume` イメージから新しいコンテナを実行。このイメージがローカルマシンに存在しない場合、[docker Hub](https://hub.docker.com/r/yamlresume/yamlresume) からプルします
2. `--rm` - 終了時にコンテナを自動削除
3. `-v $(pwd):/home/yamlresume` - 現在のディレクトリ (`$(pwd)`) をコンテナ内の `/home/yamlresume` にマウントし、コンテナがローカルファイルにアクセスできるようにします
4. `new my-resume.yml` または `build my-resume.yml` - yamlresume CLI [new](/ja/docs/cli#new) または [build](/ja/docs/cli#build) サブコマンドを実行して、ファイル名 `my-resume.yml` で履歴書を作成またはビルド
基本的に、この方法で `yamlresume` [CLI サブコマンド](/cli) をすべて呼び出すことができます—`yamlresume/yamlresume` の後にサブコマンドを追加し、対応する使用ガイドに従うだけです。
`-v` フラグは非常に重要です。現在のディレクトリ (`$(pwd)`) をコンテナ内の `/home/yamlresume` にマウントし、ローカルディレクトリとコンテナ間の双方向ファイル同期を可能にします。このフラグがないと、ビルド出力アーティファクトはコンテナ終了後に失われます。
## エンジニアリング
docker を少し知っていれば、docker イメージの構築は困難ではありません。しかし、YAMLResume を docker でラップすることは聞こえるほど簡単ではありません。以下がいくつかの課題です。
### LaTeX 設定は面倒
動作する LaTeX ディストリビューションのインストールには時間がかかります;適切な LaTeX ディストリビューションをダウンロードして設定するのに通常約 5-10 分かかります。GitHub Action ランナーでは、このプロセスは[さらに長く—20 分以上](https://github.com/yamlresume/yamlresume/actions/runs/15438395862/job/43450134447) かかります。
```docker
RUN apt update && \
apt install -y \
texlive-xetex \
texlive-fonts-extra \
texlive-lang-all \
fonts-noto-cjk \
fonts-noto-cjk-extra \
```
[yamlresume の docker イメージ](https://hub.docker.com/r/yamlresume/yamlresume) の構築を 3 ステップのプロセスにしました:
1. Node.js イメージをベースとして開始
2. LaTeX ディストリビューションをインストール・設定
3. yamlresume CLI をインストール
前述のように、ステップ 2 が最も時間のかかる部分です。docker イメージを更新する必要があるたびに最初から始めなければならない場合、github action ランナーで docker イメージを構築するのに 30 分かかります。
これを避けるため、LaTeX ディストリビューションをキャッシュするマルチステージビルドを使用し、docker イメージを更新するたびに最初からインストールする必要がないようにしました。
したがって、Node.js と LaTeX ディストリビューションがインストールされたベースイメージである新しい [yamlresume/yamlresume-base](https://hub.docker.com/r/yamlresume/yamlresume-base) を作成しました。このベースイメージは安定しており、頻繁に更新されることはなく、私たちの `yamlresume/yamlresume` イメージはこのベースイメージの上に構築されます。`yamlresume/yamlresume-base` イメージをプルダウンして yamlresume CLI をインストールするのに 3 分しかかからず、反復時間を大幅に短縮します。
### マルチプラットフォームサポート
もう一つの課題は[マルチプラットフォームビルド](https://docs.docker.com/build/building/multi-platform/) のサポートです。ご存知の通り、macOS M1 以降は ARM ベースのマシンです。エミュレーションによって AMD64 アーキテクチャの docker イメージを実行できますが、パフォーマンスは 10 倍悪くなります。
したがって、`yamlresume/yamlresume` のマルチプラットフォームイメージをサポートする必要があります。幸い、docker は [github actions でマルチプラットフォームイメージを構築する方法](https://docs.docker.com/build/ci/github-actions/multi-platform/) についての詳細ガイドを公式に提供しています。
YAMLResume の docker イメージは[2 つのプラットフォーム](https://hub.docker.com/r/yamlresume/yamlresume/tags) をサポートします:`linux/amd64` と `linux/arm64` で、これはほとんどのデスクトップとサーバーマシンをカバーするのに十分です。
docker で YAMLResume をお楽しみください!
# YAMLResume が Homebrew に登場
URL: (/ja/blog/yamlresume-homebrew)
YAMLResume は [Homebrew に採用されました](https://github.com/Homebrew/homebrew-core/pull/246949)。[Homebrew](https://brew.sh) は macOS で最も人気のあるパッケージマネージャーです。これにより、macOS ユーザーは信頼できる 1 つのコマンドで YAMLResume をインストール・最新版維持できるようになり、手動のグローバルな [Node.js](https://nodejs.org) インストールやパス調整から解放されます。本記事では Homebrew とタイブセッティングエンジンを使った、より詳細なステップバイステップのセットアップ方法を紹介します。
## なぜ重要か
以前、macOS で YAMLResume CLI を導入する典型的な手順は次のとおりでした:
1. [Node.js をインストール](/ja/docs/installation#nodejs)
2. Node.js のパッケージマネージャー (npm / pnpm / yarn / bun) で [`yamlresume` CLI をインストール](/ja/docs/installation#yamlresume)
3. PDF を生成するために [タイプセッティングエンジンをインストール](/ja/docs/installation#typesetting-engine)
[Homebrew formula](https://formulae.brew.sh/formula/yamlresume) によって 1 と 2 を 1 回に統合でき、Homebrew が Node.js 依存を管理してくれます。これで環境のズレが減り、アップグレード (`brew upgrade yamlresume`) がシンプルになります。
## クイックインストール
```sh
brew install yamlresume
```
Node.js がまだ無ければ依存として自動的にインストールされます。
確認:
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build a resume on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
ヘルプが表示されれば CLI バイナリは `PATH` に入っています。
YAMLResume は PDF 生成のためにタイプセッティングエンジンへ依存します。Homebrew 経由で [MacTeX](/ja/docs/installation#xetex) もしくは [Tectonic](/ja/docs/installation#tectonic) をインストールできます。
### オプション A: フル TeX Live (XeTeX)
MacTeX cask でインストール (XeTeX を含む):
```sh
# install the full mactex
brew install mactex
# or if you want to save some disk space
brew install mactex-no-gui
```
インストール後、TeX のバイナリが `PATH` にあることを確認してください (通常 `/Library/TeX/texbin` 下にシンボリックリンクが置かれます)。テスト:
```console
$ xelatex --version
XeTeX 3.141592653-2.6-0.999994 (TeX Live 2022)
kpathsea version 6.3.4
Copyright 2022 SIL International, Jonathan Kew and Khaled Hosny.
There is NO warranty. Redistribution of this software is
covered by the terms of both the XeTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the XeTeX source.
Primary author of XeTeX: Jonathan Kew.
Compiled with ICU version 70.1; using 70.1
Compiled with zlib version 1.2.11; using 1.2.11
Compiled with FreeType2 version 2.11.1; using 2.11.1
Compiled with Graphite2 version 1.3.14; using 1.3.14
Compiled with HarfBuzz version 3.4.0; using 3.4.0
Compiled with libpng version 1.6.37; using 1.6.37
Compiled with pplib version v2.05 less toxic i hope
Using Mac OS X Core Text and Cocoa frameworks
```
### オプション B: Tectonic (軽量)
```console
$ brew install tectonic
$ tectonic --version
```
どちらを選ぶべきか?
| エンジン | 長所 | 短所 |
| -------- | ------------------------ | --------------------- |
| XeTeX | 互換性最大・成熟したエコシステム | ダウンロードが大きい (4–6 GB) |
| Tectonic | 初期フットプリント極小・必要パッケージを自動取得 | XeTeX に比べ互換性ギャップが時折発生 |
原因不明の LaTeX パッケージ問題や高度なフォント処理で行き詰まった場合は XeTeX に戻してください。
## 履歴書の作成とビルド
スターター YAML 履歴書を作成:
```console
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
`my-resume.yml` を編集し、PDF をビルド:
```console
$ yamlresume build my-resume.yml
◐ Generating resume PDF with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume PDF successfully.
```
内部的な処理:
1. `my-resume.yml` を LaTeX (`my-resume.tex`) に変換
2. タイプセッティングエンジン (`xelatex` または `tectonic`) を呼び出し
3. `my-resume.pdf` を生成
## アップグレード
最新状態 (新テンプレート、修正、i18n 改善) を維持:
```console
$ brew update
$ brew upgrade yamlresume
```
## アンインストール
```console
$ brew uninstall yamlresume
```
不要になったオプション依存 (フォント、TeX エンジン等) は必要に応じて削除してください。
## トラブルシューティング
詳細モードでビルド問題を診断:
```console
$ yamlresume build --verbose my-resume.yml
```
よくある対処法:
* タイプセッティングエンジンが無い: MacTeX をインストールするか Tectonic を使用
* ファイル書き込み権限エラー: 書き込み可能なディレクトリで作業しているか確認 (システムパスを避ける)
* Tectonic で不可解な LaTeX エラー: XeTeX に戻る (`brew install mactex`)
## まとめ
Homebrew 収録は新規ユーザーの参入障壁を下げ、プロジェクト成熟度の証です。エッジケースに遭遇したら [issue](https://github.com/yamlresume/yamlresume/issues/) や [discussion](https://github.com/yamlresume/yamlresume/discussions) を気軽に作成してください—迅速に改善します。ハッキングを楽しみ、あなたの履歴書が常にピクセルパーフェクトでありますように!
最後に、YAMLResume を Homebrew に含める最初の [PR](https://github.com/Homebrew/homebrew-core/pull/246949) を送ってくれた [@chenrui333](https://github.com/chenrui333) に感謝します。
# 1000 Estrellas
URL: (/es/blog/1000-stars)
YAMLResume acaba de alcanzar un gran hito: [1000 estrellas en
GitHub](https://github.com/yamlresume/yamlresume/stargazers)—aproximadamente
medio año después de [hacer código abierto del
proyecto](/es/blog/introducing-yamlresume). Gracias por cada estrella, issue,
discusión, contribución y recomendación boca a boca. Es una insignia pequeña,
pero una que refleja un impulso real para "resume as code", gran tipografía y
un flujo de trabajo centrado en desarrolladores.
En junio celebramos [500 estrellas](/es/blog/500-stars), hoy volvemos con 1000.
En el medio, YAMLResume maduró significativamente—especialmente a través de
tres versiones que muchos de ustedes siguieron y adoptaron rápidamente:
[v0.5](/es/blog/yamlresume-compiler),
[v0.6](/es/blog/section-customization) y
[v0.7](/es/blog/dev-mode). Esta publicación resume las cosas más importantes
que lanzamos, luego presenta una hoja de ruta pragmática para la siguiente
etapa del viaje.
## Resumen
### v0.5: El Compilador de Currículums en el que puedes confiar
[v0.5](/es/blog/yamlresume-compiler) reformuló YAMLResume no solo como un
formateador, sino como un compilador. Ese único cambio conceptual—tratar un
YAML de currículum como código fuente—desbloqueó corrección, consistencia y un
flujo de trabajo CLI brutalmente simple.
Ideas clave que lanzamos en v0.5:
* [Arquitectura del compilador](/es/docs/compiler/architecture) y [modelo de
datos estándar](/es/docs/compiler/schema): Formalizamos la estructura del
currículum para que cualquier renderizador o plantilla downstream reciba
datos limpios y predecibles. Esto redujo errores y mejoró la portabilidad de
las plantillas.
* Validación fuerte en dos niveles: [JSON Schema para integración con
editores](/es/docs/compiler/schema/json) (autocompletado, documentación al
pasar el mouse, verificaciones de formato tempranas) y [Zod para seguridad
en tiempo de ejecución y diagnósticos
detallados](/es/docs/compiler/schema/zod). Los editores se sienten
inteligentes; las compilaciones se sienten seguras.
* Nuevos comandos que acortan los bucles: [`yamlresume
validate`](/es/docs/cli#validate) para verificaciones rápidas, y `build`
mejorado que siempre valida primero. Con la opción `--no-validate`, te
mantienes en movimiento durante ediciones grandes.
* [Salida de errores estilo
Clang](https://asciinema.org/a/728098): Errores claros vinculados a nombres
de archivos y líneas ahorran minutos en cada iteración.
v0.5 hizo de YAMLResume una herramienta en la que puedes confiar—incluso bajo
plazos ajustados. Si aún no lo has hecho, echa un vistazo a los ejemplos y
videos en el blog de v0.5; muestran el validador, sugerencias de esquema y
diagnósticos en acción.
### v0.6: Personalización de secciones que coincide con cómo cuentas tu
historia
[v0.6](/es/blog/section-customization) se centró en algo engañosamente simple
pero increíblemente poderoso: expresar tu narrativa en tu propia voz y orden,
sin hacer fork de plantillas o hackear LaTeX.
Lo que se lanzó:
* [Alias de secciones](/es/docs/layouts/sections/aliases): Renombra secciones
canónicas (por ejemplo, convierte `work` en "Experiencia Profesional,"
`education` en "Formación Académica") usando `layout.sections.aliases`. Esto
es especialmente útil para tono, región/cultura o orientación de rol.
* [Reordenamiento de secciones](/es/docs/layouts/sections/reorder): Lleva las
secciones más relevantes a la parte superior con `layout.sections.order`.
Pon `skills` antes de `work`, o muestra `projects` primero para roles
centrados en portafolio.
* Resiliencia práctica: Mejoras como tolerar fechas inválidas (recurriendo a
cadenas)
Por qué importa:
* Los contextos de contratación difieren. Un doctorado que solicita un
postdoctorado quiere `education` primero; un ingeniero senior quiere `work`
primero. v0.6 pone esa elección a una edición YAML de distancia.
* El idioma y el tono moldean la percepción. Los alias te permiten coincidir
con las normas de la industria ("Experiencia," "Publicaciones Seleccionadas,"
"Código Abierto") sin cirugía de plantilla.
En resumen: v0.6 hizo que YAMLResume se adaptara a tu narrativa, no al revés.
### v0.7: Modo dev, porque los currículums también merecen DX moderno
[v0.7](/es/blog/dev-mode) lanzó un flujo de desarrollo en modo watch que se
siente como recarga en caliente para currículums. Guarda tu YAML, y el PDF se
reconstruye automáticamente. Los cambios pequeños dejan de costar grandes
cambios de contexto.
Lo que se lanzó:
* [`yamlresume dev`](/es/docs/cli#dev): Un proceso persistente que observa tu
archivo de currículum y reconstruye al guardar. Úsalo junto con un visor PDF
lado a lado para retroalimentación instantánea.
* Internos de watch robustos: Adoptamos
[chokidar](https://github.com/paulmillr/chokidar) y agregamos [lógica de
coalescencia](https://github.com/yamlresume/coalescifn) para que nunca
sobrecarguemos las compilaciones en guardados sucesivos rápidos. Solo una
compilación a la vez; el estado más reciente siempre gana.
* Banderas prácticas en dev: `--no-pdf` cuando solo necesitas `.tex` para
depuración, `--no-validate` durante refactorizaciones grandes cuando la
velocidad importa más.
Por qué importa:
* Iteras más rápido y escribes mejor.
* La herramienta toma la monotonía, tú mantienes el flujo. Ese es el punto
de DX.
Si estás acostumbrado a `npm run dev`, te sentirás como en casa.
### YAMLResume con Homebrew
Por último, pero no menos importante, YAMLResume ahora está disponible en
[Homebrew](https://brew.sh):
```sh
brew install yamlresume
```
Hemos publicado una nueva entrada de blog para explicar cómo usarlo en detalle:
[YAMLResume llega a Homebrew](/es/blog/yamlresume-homebrew).
## Mirando hacia adelante
YAMLResume ha recorrido un largo camino desde el pequeño motor central de
[PPResume](https://ppresume.com) hasta un poderoso compilador de currículums
hoy. Pero todavía tenemos mucho trabajo por hacer para mejorar aún más las
capacidades de YAMLResume y convertirlo en la herramienta ideal para la
creación de currículums.
### Múltiples diseños
Actualmente YAMLResume solo admite salida LaTeX. Vamos a extender la
canalización de compilador a renderizador para admitir múltiples motores de
diseño y formatos de salida, comenzando con Markdown, luego HTML.
Aquí están las características que vamos a lanzar:
* [Salida Markdown](https://github.com/yamlresume/yamlresume/issues/110): Un
artefacto Markdown limpio y estructurado que refleja las secciones y el
contenido de tu currículum. Útil para READMEs, portales de trabajo que
aceptan Markdown, o transferencias a otros constructores de currículums que
aceptan markdown.
* [Salida HTML](https://github.com/yamlresume/yamlresume/issues/45): HTML es
el formato de salida más popular para currículums web. El día que YAMLResume
admita salida HTML, podrás alojar tu currículum en cualquier lugar,
compartirlo con cualquiera y abrirlo en cualquier dispositivo.
Un modelo de datos, muchas salidas. La validación del compilador sigue siendo
la columna vertebral; los renderizadores se convierten en complementos. Tú
eliges la(s) salida(s) por audiencia: PDF para envíos formales, HTML para
presencia web, Markdown para canales orientados a desarrolladores.
### GitHub Actions
Algunas personas adoptaron YAMLResume para [construir y alojar sus currículums
en GitHub](https://github.com/yamlresume/yamlresume/discussions/50), cada uno
de ellos tiene su propio flujo de trabajo para generar PDF.
Vamos a lanzar una acción oficial de GitHub YAMLResume para que las personas
puedan validar, construir, alojar y publicar su currículum, sin tener que
escribir su propio flujo de trabajo.
Con una GitHub Action dedicada, las actualizaciones se convierten en
push-and-done.
### Más idiomas
YAMLResume v0.7 ya admite
[Inglés](/es/docs/locale/english),
[Chino](/es/docs/locale/chinese),
[Noruego](/es/docs/locale/norwegian) y
[Español](/es/docs/locale/spanish), vamos a expandir la lista
para admitir más idiomas, haciendo YAMLResume aún más accesible para más
personas en todo el mundo.
Francés, Alemán y Japonés serán el primer lote de idiomas que vamos a admitir
en los próximos meses.
## Saludos
1000 estrellas no es un final sino otro comienzo. Vino de tu adopción temprana,
reportes de errores, contribuciones de idiomas y solicitudes reflexivas que
dieron forma a la hoja de ruta. Gracias por tu apoyo y contribuciones.
Aquí está cómo mantener el impulso:
* Prueba la última CLI: `npm install -g yamlresume@latest` o `brew install
yamlresume` en macOS.
* Usa el modo dev para tu próximo bucle de edición: `yamlresume dev
my-resume.yml`.
* Archiva issues e ideas: [https://github.com/yamlresume/yamlresume/issues](https://github.com/yamlresume/yamlresume/issues)
* Únete a las discusiones:
[https://github.com/yamlresume/yamlresume/discussions](https://github.com/yamlresume/yamlresume/discussions)
Seguiremos lanzando características pragmáticas que hacen que escribir
currículums sea más tranquilo, más rápido y mejor—mientras nos mantenemos
fieles a una única fuente de verdad validada. Adelante hacia el siguiente hito.
# 500 Estrellas
URL: (/es/blog/500-stars)
YAMLResume ha logrado un hito significativo—500 estrellas en GitHub en solo
aproximadamente un mes.
Aquí está la línea de tiempo:
* 29 de marzo: Decidí hacer código abierto del motor detrás de
[PPResume](https://ppresume.com)
* 2 de abril: Obtuve una [demo local de CLI](https://x.com/xiaohanyu1988/status/1907427362259771748)
* 10 de abril: Logré [100% de cobertura de pruebas](https://x.com/xiaohanyu1988/status/1910193021989368311)
* 25 de abril: Obtuve un [paquete npm local](https://x.com/PPResumeX/status/1915789536610967741)
* 8 de mayo: Oficialmente [hice código abierto de yamlresume](https://x.com/PPResumeX/status/1920294577497387493)
* 17 de mayo: Alcancé [200 estrellas](https://x.com/PPResumeX/status/1923635538046955662)
* 23 de mayo: Alcancé [300 estrellas](https://x.com/PPResumeX/status/1925834873723396131)
* 30 de mayo: Alcancé [400 estrellas](https://x.com/PPResumeX/status/1928347464693862635)
* 11 de junio: Alcancé [500 estrellas](https://x.com/PPResumeX/status/1932716523401150840)
Mientras tanto, recibimos nuestro primer [pull
request](https://github.com/yamlresume/yamlresume/pull/2), fusionamos [otro pull
request](https://github.com/yamlresume/yamlresume/pull/19), y abordamos nuestro
primer [reporte de error](https://github.com/yamlresume/yamlresume/issues/13).
¡Agradecimientos especiales a [@jizusun](https://github.com/jizusun),
[@koo6666](https://github.com/koo6666), y
[@luyuhuang](https://github.com/luyuhuang) por sus amables contribuciones!
## ¿Por Qué Código Abierto?
La primera línea de código de YAMLResume fue escrita en realidad en 2023.
Comenzó como el motor de composición central para
[PPResume](https://ppresume.com)—un generador de currículums comercial, perfecto
a nivel de píxel, basado en [LaTeX](https://www.latex-project.org/) que ya ha
ayudado a miles de personas a crear currículums bellamente compuestos.
Aunque no estoy listo para hacer código abierto de PPResume en sí, sí quiero dar
a los usuarios control total sobre sus currículums. En diciembre de 2024,
PPResume permitió a los usuarios descargar el código LaTeX generado para sus
currículums, asegurando nuestra promesa de [no bloqueo de
proveedores](https://blog.ppresume.com/posts/no-vendor-lock-in) y dando a los
usuarios propiedad completa de sus datos.
Además, el desarrollo de PPResume se ha beneficiado enormemente de la comunidad
de código abierto. Yo mismo he aprendido mucho de ella, y ahora es momento de
devolver.
Hay muy pocas herramientas de código abierto que usen YAML como formato de
currículum. [JSON Resume](https://jsonresume.org) es un buen intento—como todos
sabemos, YAML es un superconjunto de JSON. Sin embargo, JSON Resume no
proporciona una solución opinada para la composición, el diseño o la salida del
currículum, haciéndolo mucho menos práctico. YAML, por otro lado, es una [opción
mucho mejor que JSON](/docs/comparisons#json-resume) para el formato de
currículums.
Hacer código abierto de YAMLResume fue claramente la decisión correcta. Mira las
tendencias de descarga de YAMLResume en NPM:
## ¿Qué Sigue?
Aunque YAMLResume ha sido usado por un generador de currículums comercial
durante casi dos años, todavía está en las primeras etapas de desarrollo, y hay
mucho más por hacer.
[El soporte de Docker](./yamlresume-docker) fue una de las características más
solicitadas, y me complace decir que ahora está
[disponible](/es/docs/installation#docker-users).
Otra característica importante es la validación de datos. A diferencia de
PPResume, que proporciona un formulario cuidadosamente elaborado y diseñado para
que los usuarios completen y validen sus datos de currículum, YAMLResume acepta
entrada sin restricciones—cualquier archivo `.yaml`. Debemos proporcionar una
forma de [validar la
entrada](https://github.com/yamlresume/yamlresume/issues/10) para asegurar que
el programa maneje todas las formas de entrada con gracia.
En términos de características, planeamos soportar [alias de
secciones](https://github.com/yamlresume/yamlresume/issues/11) y [reordenamiento
de secciones](https://github.com/yamlresume/yamlresume/issues/12), haciendo la
salida PDF más adaptable y flexible.
Para la experiencia del desarrollador, nuestro objetivo es [soportar un
subcomando `dev`](https://github.com/yamlresume/yamlresume/issues/25) para que
los usuarios puedan modificar currículums y ver cambios en el PDF casi en tiempo
real.
Finalmente, algunos usuarios han expresado preocupaciones sobre la
compatibilidad con ATS. Estamos comprometidos a asegurar que la salida PDF sea
[compatible con ATS](https://github.com/yamlresume/yamlresume/issues/23).
¡Manténganse atentos!
# YAMLResume v0.7: Modo Dev
URL: (/es/blog/dev-mode)
Estoy súper emocionado de presentar [YAMLResume
v0.7](https://github.com/yamlresume/yamlresume/releases/tag/v0.7.0), una versión
enfocada en mejorar tu experiencia de desarrollador (DX). La pieza central de
esta actualización es el nuevo [modo `dev`](/docs/cli#dev)—una característica
que trae un flujo de trabajo de desarrollo fluido y en tiempo real a tu proceso
de creación de currículum.
Atrás quedaron los días del tedioso ciclo de editar-guardar-construir. Con el
modo `dev`, YAMLResume ahora vigila tu archivo de currículum en busca de cambios
y automáticamente reconstruye el PDF casi en tiempo real. Esta adición
aparentemente simple transforma la experiencia de crear un currículum en un
proceso fluido, interactivo y mucho más agradable.
## La Fricción del Antiguo Flujo de Trabajo
Antes de v0.7, crear un currículum con YAMLResume, aunque poderoso, involucraba
un proceso repetitivo y manual. Tú:
1. Abrías tu archivo `my-resume.yml` en tu editor de texto favorito.
2. Hacías un cambio—quizás actualizando una descripción de trabajo o agregando una nueva habilidad.
3. Guardabas el archivo.
4. Cambiabas a tu terminal.
5. Ejecutabas el comando `yamlresume build my-resume.yml`.
6. Esperabas a que el comando terminara.
7. Cambiabas a tu visor de PDF y lo actualizabas para ver el resultado.
8. Notabas un pequeño error tipográfico o un problema de formato.
9. Repetías todo el ciclo.
Este bucle, ilustrado a continuación, introducía una fricción significativa en
el proceso de creación del currículum. Cada cambio, sin importar cuán pequeño,
requería un cambio de contexto y una ejecución de comando manual. Esta
interrupción constante rompe el flujo creativo y ralentiza el proceso de refinar
tu currículum.
B{Guardar Archivo};
B --> C[Cambiar a Terminal];
C --> D[Ejecutar 'yamlresume build'];
D --> E{Esperar Construcción};
E --> F[Cambiar a Visor PDF];
F --> G{Actualizar PDF};
G --> H{Revisar Cambios};
H -- Se Necesita Corrección --> A;
H -- Se Ve Bien --> I[Listo];
subgraph Ciclo de Construcción Manual
A
B
C
D
E
F
G
H
end
`}
/>
En el mundo del desarrollo de software moderno, nos hemos acostumbrado a
herramientas que proporcionan retroalimentación instantánea. Los desarrolladores
web tienen
[hot-reloading](https://webpack.js.org/concepts/hot-module-replacement/), que
actualiza el navegador automáticamente mientras cambian el código. Este bucle de
retroalimentación ajustado es crucial para la productividad y es un principio
fundamental de una gran experiencia de desarrollador. Creíamos que crear tu
currículum como código no debería ser diferente.
## La Solución: Un Modo Dev Sin Interrupciones
El comando `yamlresume dev` elimina el ciclo de construcción manual por
completo. Lo inicias una vez, y funciona silenciosamente en segundo plano,
vigilando tus cambios y reconstruyendo el currículum automáticamente.
Para iniciar el modo de desarrollo, simplemente ejecuta:
```bash
yamlresume dev my-resume.yml
```
Ahora, puedes abrir tu archivo `my-resume.yml` y tu PDF lado a lado. Cada vez
que guardes un cambio en tu archivo YAML, YAMLResume lo detectará
automáticamente y activará una reconstrucción. Tu visor de PDF se actualizará
momentos después, mostrándote la última versión de tu currículum.
El nuevo flujo de trabajo es significativamente más simple y eficiente:
B[Editar my-resume.yml];
B --> C{Guardar Archivo};
C --> D{PDF Reconstruido Automáticamente};
D --> E{Revisar Cambios en PDF};
E -- Se Necesita Corrección --> B;
E -- Se Ve Bien --> F[Detener Modo Dev];
subgraph Flujo de Trabajo en Tiempo Real
B
C
D
E
end
`}
/>
Este bucle de retroalimentación instantánea te permite iterar rápidamente,
experimentar con diferentes frases y perfeccionar el diseño de tu currículum sin
el cambio constante de contexto. Hace que el proceso se sienta menos como una
tarea y más como un esfuerzo creativo.
Aquí hay una demostración en vivo del modo `dev` en acción:
Puedes ver la [demo de youtube](https://youtu.be/xytlzedEQ_w) para más detalles.
## Cómo Funciona: Una Mirada Bajo el Capó
Aunque el modo `dev` es simple de usar, hay tecnología interesante trabajando
detrás de escena para asegurar que sea robusto y eficiente.
### El Vigilante de Archivos: `chokidar`
En el corazón del modo `dev` hay un vigilante de archivos. Un enfoque ingenuo sería usar la API integrada [`fs.watch`](https://nodejs.org/docs/latest/api/fs.html#fswatchfilename-options-listener) de Node.js. Sin embargo, `fs.watch` tiene limitaciones conocidas e inconsistencias entre diferentes sistemas operativos. Más importante aún, tiene problemas con ciertos comportamientos de editores de texto.
Por ejemplo, editores como Vim usan una estrategia de "guardado atómico". Cuando guardas un archivo, Vim no escribe directamente en el archivo original. En cambio, escribe los cambios en un archivo temporal (el conocido archivo `.swp`), luego renombra ese archivo temporal para reemplazar el original. Este proceso puede confundir a los vigilantes de archivos básicos, que podrían perder el cambio por completo o activar múltiples eventos.
Para proporcionar una experiencia confiable, adoptamos **[chokidar](https://github.com/paulmillr/chokidar)**, una biblioteca de vigilancia de archivos popular y probada en batalla. Chokidar abstrae las inconsistencias multiplataforma y está específicamente diseñada para manejar estos comportamientos complicados de editores con gracia. La hemos configurado para esperar hasta que un archivo haya terminado de escribirse antes de activar una reconstrucción, asegurando que no intentemos construir un archivo parcialmente guardado.
### Prevención de Tormentas de Construcción: `coalescifn`
¿Qué pasa si guardas el archivo múltiples veces en rápida sucesión? Una implementación simple podría intentar iniciar una nueva construcción por cada evento de guardado. Esto podría llevar a una "tormenta de construcción", donde múltiples procesos de construcción se están ejecutando concurrentemente, consumiendo recursos innecesarios del sistema y potencialmente llevando a condiciones de carrera.
Para resolver esto, escribimos y liberamos como código abierto una pequeña utilidad inteligente llamada [coalescifn](https://github.com/yamlresume/coalescifn). Esta utilidad nos ayuda a **coalescer** múltiples llamadas en una. Así es como funciona en el contexto del modo `dev`:
1. Cuando se detecta el primer cambio de archivo, inmediatamente iniciamos una construcción.
2. Si se detectan más cambios *mientras esa construcción está en ejecución*, no iniciamos nuevas construcciones. Simplemente tomamos nota de que el archivo ha cambiado de nuevo.
3. Una vez que la construcción inicial está completa, verificamos si ocurrieron más cambios durante ese tiempo.
4. Si hubo cambios subsecuentes, ejecutamos exactamente *una* construcción más para asegurar que el PDF final refleje la última versión del archivo. Si no hubo nuevos cambios, no hacemos nada y esperamos el siguiente evento de guardado.
Esta estrategia asegura que solo haya una construcción ejecutándose a la vez, y garantiza que la construcción final siempre use la versión más reciente de tu archivo de currículum. Es un enfoque eficiente que mantiene el modo `dev` responsivo y ligero en recursos del sistema.
Aquí hay un diagrama que ilustra la lógica de coalescencia:
>Watcher: Guardar archivo (t=0s)
Watcher->>Coalesce: Activar construcción
Coalesce->>Builder: Iniciar Construcción #1
User->>Watcher: Guardar archivo (t=1s)
Watcher->>Coalesce: Activar construcción (ignorado, construcción en progreso)
User->>Watcher: Guardar archivo (t=2s)
Watcher->>Coalesce: Activar construcción (ignorado, construcción en progreso)
Builder-->>Coalesce: Terminar Construcción #1 (t=3s)
Coalesce->>Builder: Iniciar Construcción #2 (con último contenido del archivo)
Builder-->>Coalesce: Terminar Construcción #2 (t=6s)
`}
/>
## Control Avanzado
El comando `dev` también viene con opciones para darte más control sobre el proceso de construcción, reflejando las banderas disponibles en el comando `build`.
### Saltar Generación de PDF
A veces, podrías solo querer inspeccionar el archivo LaTeX (`.tex`) intermedio que YAMLResume genera. Esto puede ser útil para depuración o para aquellos que quieren ajustar manualmente el código LaTeX. Generar el PDF es la parte más consumidora de tiempo del proceso de construcción. Si no lo necesitas, puedes decirle al modo `dev` que lo omita:
```bash
yamlresume dev my-resume.yml --no-pdf
```
Con esta bandera, el modo `dev` seguirá vigilando cambios y regenerando el archivo `.tex` instantáneamente, pero no ejecutará el comando `xelatex`. Esto hace que el proceso de reconstrucción sea casi instantáneo.
### Deshabilitar Validación
A partir de [v0.5](/blog/yamlresume-compiler), YAMLResume incluye un poderoso paso de validación de esquema que detecta errores potenciales en tu currículum durante la construcción. Aunque esto es increíblemente útil para asegurar corrección, podría haber momentos en que quieras deshabilitarlo temporalmente. Por ejemplo, podrías estar en medio de una gran refactorización de la estructura de tu currículum y no quieres ser interrumpido por errores de validación.
Puedes deshabilitar la validación con la bandera `--no-validate`:
```bash
yamlresume dev my-resume.yml --no-validate
```
Esto te permite trabajar más libremente, con el entendimiento de que deberías reactivar la validación más tarde para asegurar que tu currículum esté bien formado.
## Una Nueva DX para "Currículum como Código"
La introducción del modo `dev` es más que solo una nueva característica; es un paso hacia cumplir la verdadera promesa de "Currículum como Código". Eleva la experiencia desde un proceso estático, impulsado por línea de comandos, a uno dinámico e interactivo que se siente mucho más como el desarrollo de software moderno.
¿Podrías estar acostumbrado a `npm run build` y `npm run dev` en el pasado? YAMLResume ahora tiene el mismo flujo de trabajo integrado.
Al cerrar el bucle de retroalimentación, estamos haciendo que sea más fácil y rápido para ti crear currículums hermosos y profesionales. Creemos que esto fomentará más experimentación y te permitirá enfocarte en lo que realmente importa: el contenido de tu currículum y cómo cuenta tu historia profesional.
Te invitamos a actualizar a YAMLResume v0.7 y experimentar el nuevo modo `dev` por ti mismo.
* **Instala o actualiza** a la última versión: `npm install -g yamlresume@latest`
* **Pruébalo** con tu currículum existente: `yamlresume dev my-resume.yml`
* **Únete a nuestra comunidad** en [GitHub](https://github.com/yamlresume/yamlresume/discussions) para compartir tus comentarios, hacer preguntas o contribuir al futuro de YAMLResume.
¡Estamos comprometidos a construir la mejor experiencia de desarrollador posible para la creación de currículums, y no podemos esperar a escuchar lo que piensas de esta nueva versión!
# Cómo ocultar iconos en moderncv
URL: (/es/blog/hide-moderncv-icons)
Cuando creas un PDF con [LaTeX](https://www.latex-project.org/), los pequeños
detalles visuales pesan mucho. La clase
[`moderncv`](https://ctan.org/pkg/moderncv) añade iconos junto a los campos de
contacto (teléfono, email, página personal, etc.), lo que queda muy bien, pero
no todo el mundo quiere iconos en su encabezado. Algunas personas prefieren un
estilo más limpio y minimalista, o necesitan ajustarse a una plantilla
corporativa que no permite pictogramas. En este post explicamos qué es
`moderncv`, qué biblioteca de iconos utiliza, cómo ocultarlos y cómo el macro
LaTeX `\renewcommand` lo hace posible.
## 1. ¿Qué es moderncv?
[`moderncv`](https://ctan.org/pkg/moderncv) es una clase de documento LaTeX
pensada específicamente para CVs y currículums. Ofrece un diseño consistente y
profesional, además de un conjunto de macros de alto nivel para formatear los
componentes habituales de un currículum: nombre, título, datos de contacto,
encabezados de sección y entradas de trabajo o educación. En comparación con un
LaTeX “en crudo”, `moderncv` te da un sistema de maquetación ya preparado con
varias variantes de estilo (como `banking`, `classic` o `casual`) y una jerarquía
visual que funciona muy bien en CVs de una página.
Un encabezado típico de `moderncv` podría verse así:
```latex
\name{}{Andy Dufresne}
\title{Software Engineer}
\phone[mobile]{+1 555 123 456}
\email{jane@example.com}
\homepage{https://example.com}
```
La clase toma estos comandos y los renderiza en un encabezado limpio. Por
defecto, `moderncv` también muestra iconos junto a cada elemento, lo que facilita
escaneo visual de la información de contacto.
## 2. ¿Qué biblioteca de iconos usa moderncv?
`moderncv` incluye soporte de iconos mediante el paquete
[`fontawesome5`](https://ctan.org/pkg/fontawesome5). [Font
Awesome](https://fontawesome.com/) es un set de iconos muy popular, y
`fontawesome5` lo expone en LaTeX con comandos como `\faEnvelope`,
`\faMobileAlt` y `\faGlobe`. En `moderncv`, esos iconos se conectan a macros de
“símbolo” como `\emailsymbol` y `\homepagesymbol`. Cuando llamas a
`\email{...}` o `\homepage{...}`, la clase antepone el macro de símbolo
correspondiente, que a su vez usa un glifo de Font Awesome.
Como los iconos están enrutados a través de estos macros, puedes reemplazarlos o
eliminarlos sin tocar el contenido real de contacto. Este diseño es importante:
separa contenido y decoración, así que puedes optar por un estilo más limpio con
unas pocas redefiniciones.
## 3. Cómo ocultar los iconos en moderncv
La forma más limpia de eliminar los iconos es redefinir los macros de símbolo a
cadenas vacías. En LaTeX, `\renewcommand` te permite reemplazar un macro
existente con un nuevo comportamiento. Si pones cada símbolo de `moderncv` a
nada, las etiquetas siguen ahí pero los iconos desaparecen.
Aquí tienes el fragmento mínimo que puedes poner en el preámbulo, después de
cargar `moderncv`:
```latex
% disable icons
\renewcommand*{\addresssymbol}{}
\renewcommand*{\mobilephonesymbol}{}
\renewcommand*{\fixedphonesymbol}{}
\renewcommand*{\faxphonesymbol}{}
\renewcommand*{\emailsymbol}{}
\renewcommand*{\homepagesymbol}{}
```
Este enfoque refleja lo que hace el renderer de `moderncv` en
[YAMLResume](https://yamlresume.dev/). En YAMLResume
[v0.10](/es/blog/v0.10), el preámbulo de LaTeX
[inserta opcionalmente](https://github.com/yamlresume/yamlresume/commit/b53f73d9b4b04bf04b90236ef01da56062f8ca1f)
exactamente estas líneas de `\renewcommand*` cuando una opción de layout dentro
de `advanced`, llamada `showIcons`, se establece en `false`. Eso significa que
la salida PDF puede alternar iconos sin tocar el contenido del currículum.
Aquí tienes el currículum moderncv sin iconos:
El bloque de LaTeX relevante se ve así:
Si usas YAMLResume, puedes controlar este comportamiento desde la configuración
de layout y dejar que el renderer inyecte esos overrides automáticamente. Si
escribes LaTeX a mano, puedes copiar el fragmento en tu preámbulo. En ambos
casos, el resultado es el mismo: el encabezado mantiene el texto pero pierde los
pictogramas.
### Por qué funciona
`moderncv` define un conjunto de macros para cada icono. Por ejemplo,
`\emailsymbol` se usa para mostrar el icono de email. Cuando redefinimos ese
macro a `{}`, LaTeX lo expande igualmente, pero no imprime nada. No estás
eliminando el email; solo estás anulando la decoración que lo precede.
### Consejo extra: ocultar iconos sociales
Si añades iconos manualmente en campos personalizados (por ejemplo, usando
`\faGithub` o `\faTwitter` en una línea custom), también puedes eliminarlos
simplemente dejando de llamar esos comandos. En el renderer de YAMLResume, esto
se maneja comprobando un flag `showIcons` antes de insertar los glifos de Font
Awesome para perfiles sociales. El patrón es el mismo: mantener el contenido del
`\href` y omitir el prefijo del icono.
## 4. ¿Qué es el macro \renewcommand?
LaTeX usa macros para definir cómo se comportan los comandos. El macro
`\newcommand` crea un nuevo comando, mientras que `\renewcommand` redefine uno
existente. Piénsalo como “sobrescribe este comando con una nueva
implementación”.
La sintaxis es:
```latex
\renewcommand{\commandname}{replacement}
```
La versión con asterisco `\renewcommand*` se comporta de forma similar, pero le
indica a LaTeX que no permita un salto de párrafo en el texto de reemplazo. Para
macros de símbolo cortos como `\emailsymbol`, el asterisco no cambia mucho, pero
es común en clases y plantillas.
En `moderncv`, los macros de icono ya están definidos, así que debes usar
`\renewcommand` en lugar de `\newcommand`. Si intentas redefinir un macro
existente con `\newcommand`, LaTeX lanzará un error. Por eso el patch usa:
```latex
\renewcommand*{\emailsymbol}{}
```
Esta línea dice: “Reemplaza la definición existente de `\emailsymbol` con una
cadena vacía”. El resto de la clase sigue funcionando, porque `\email{...}` aún
se expande correctamente; simplemente ya no antepone el icono.
## En resumen
* `moderncv` es una clase de LaTeX para CVs con macros estructurados y buenos
defaults.
* Usa el paquete `fontawesome5` para iconos, expuestos mediante macros como
`\emailsymbol` y `\homepagesymbol`.
* Puedes ocultar los iconos redefiniendo esos macros a cadenas vacías con
`\renewcommand*`.
* `\renewcommand` es el mecanismo de LaTeX para sobrescribir macros existentes.
Si quieres un encabezado minimalista solo con texto, esta técnica es la más
robusta. Además, es futura: si luego cambias de estilo o añades nuevos campos de
contacto, puedes mantener el mismo patrón redefiniendo los símbolos
correspondientes. Y por cierto, esta opción `advanced.showIcons` funciona tanto
para el motor [HTML](/es/docs/layouts/html) como para el motor
[LaTeX](/es/docs/layouts/latex).
# YAMLResume v0.9: Salida HTML
URL: (/es/blog/html-output)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
Nos complace anunciar el lanzamiento de
[YAMLResume v0.9](https://github.com/yamlresume/yamlresume/releases/tag/v0.9.0),
introduciendo soporte de primera clase para [salida HTML](/docs/layouts/html). Siguiendo
nuestro [lanzamiento v0.8](/blog/markdown-output) que trajo [salida
Markdown](/docs/layouts/markdown), ahora estamos dando otro paso importante
para hacer que los datos de tu currículum sean realmente versátiles y nativos de la web.
Con v0.9, ahora puedes compilar tu currículum YAML directamente en un archivo
HTML independiente y responsivo, perfecto para alojar en tu sitio web personal, GitHub Pages,
o cualquier plataforma de alojamiento estático. No más conversión de PDFs o mantenimiento manual de
versiones web separadas de tu currículum.
Por ahora solo proporcionamos una plantilla para el diseño HTML: la
plantilla [calm](/docs/layouts/html/templates/calm), que está inspirada en la
plantilla LaTeX moderncv. Presenta un diseño minimalista con separación clara de secciones
y un diseño elegante optimizado para visualización web. Aquí está la vista previa:
Una demostración rápida de cómo usar YAMLResume v0.9 para generar un currículum HTML:
[](https://asciinema.org/a/763505)
## ¿Por qué HTML?
Cuando introdujimos la [arquitectura de múltiples diseños](/docs/layouts) en v0.8,
imaginamos un mundo donde tu único `resume.yml` pudiera renderizarse en cualquier
formato que necesites. Comenzamos con [LaTeX/PDF](/docs/layouts/latex) para
aplicaciones profesionales y [Markdown](/docs/layouts/markdown) para
interoperabilidad y flujos de trabajo con LLM. Ahora, HTML completa la trinidad de formatos
esenciales de currículum.
HTML ofrece ventajas únicas:
**Nativo de la Web**: HTML es el lenguaje de la web. Tu currículum se convierte en un ciudadano de primera clase
en internet, no solo un documento que tienes que incrustar o convertir.
**Diseño Responsivo**: A diferencia de los PDFs que requieren pellizcar y hacer zoom en dispositivos
móviles, los currículums HTML se adaptan sin problemas a cualquier tamaño de pantalla, desde monitores de escritorio
hasta teléfonos inteligentes.
**Amigable con SEO**: Los motores de búsqueda pueden indexar tu currículum HTML, haciendo que tus habilidades
y experiencia sean descubribles. Esto es imposible con currículums solo en PDF.
**Interactivo**: HTML permite enlaces clicables, desplazamiento suave y otros
elementos interactivos que mejoran la experiencia del usuario más allá de documentos estáticos.
**Cero Dependencias**: La salida HTML es un archivo autocontenido con CSS en línea.
Colócalo en cualquier lugar—S3, Netlify, GitHub Pages—y simplemente funciona.
## Comenzando
Si tienes `yamlresume` instalado (versión 0.9.0 o superior), agregar salida HTML
a tu currículum es tan simple como actualizar tu configuración de diseños.
### Paso 1: Actualiza la Configuración de tu Currículum
Agrega el diseño HTML a tu `resume.yml`:
```yml lineNumbers
layouts:
- engine: latex
template: moderncv-banking
typography:
fontSize: 11pt
- engine: markdown
- engine: html #[! code highlight]
template: calm #[! code highlight]
typography: #[! code highlight]
fontSize: 16px #[! code highlight]
```
El motor HTML admite [tipografía](/docs/layouts/html#typography) personalizable
con tamaños de fuente que van desde 14px hasta 20px. La plantilla predeterminada `calm` está
inspirada en el popular paquete LaTeX `moderncv`, proporcionando un aspecto limpio y profesional.
### Paso 2: Construye tu Currículum
Ejecuta el comando de construcción:
```console
$ yamlresume build my-resume.yml
✔ Generated resume tex file successfully: my-resume.tex
◐ Generating resume pdf file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume pdf file successfully: my-resume.pdf
✔ Generated resume markdown file successfully: my-resume.md
✔ Generated resume html file successfully: my-resume.html
```
¡Eso es todo! Ahora tienes tres archivos de salida desde una única fuente de verdad.
## La Plantilla Calm
El lanzamiento inicial incluye la plantilla `calm`, un diseño cuidadosamente diseñado
que equilibra profesionalismo con legibilidad. La plantilla presenta:
* **Tipografía Limpia**: Tamaños de fuente y alturas de línea optimizados tanto para pantalla como para
impresión.
* **Diseño Responsivo**: Se adapta automáticamente desde pantallas de escritorio anchas hasta pantallas
móviles estrechas.
* **HTML Semántico**: Usa elementos semánticos HTML5 adecuados para mejor accesibilidad
y SEO.
* **Amigable para Impresión**: Aunque diseñado para la web, la plantilla incluye estilos de impresión
para que se vea genial cuando se guarda como PDF desde el navegador.
## Casos de Uso
### GitHub Pages
Despliega tu currículum HTML en GitHub Pages con configuración mínima:
```yml
# .github/workflows/deploy.yml
name: Deploy Resume
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm install -g yamlresume
- run: yamlresume build resume.yml
- uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public
```
### Portafolio Responsivo
Incrusta tu currículum directamente en tu portafolio. Dado que el HTML es
autocontenido, incluso puedes incrustarlo en un iframe o extraer los estilos para una integración más profunda.
### Compartir Rápidamente
Envía por correo electrónico el archivo HTML o compártelo vía Dropbox/Google Drive. Los destinatarios pueden abrirlo
en cualquier navegador sin necesitar lectores de PDF o software especial.
## Arquitectura Técnica
El [renderizador
HTML](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/renderer/html/renderer.ts)
está construido con los mismos rigurosos estándares de ingeniería que nuestro motor
LaTeX/Markdown. Internamente:
1. **Renderizado con Seguridad de Tipos**: El renderizador está escrito en TypeScript con seguridad total de tipos
a través de [esquemas Zod](/docs/compiler/schema/zod).
2. **Sistema de Plantillas**: Las plantillas son modulares y extensibles. Aunque enviamos con
`calm` inicialmente, la arquitectura admite múltiples plantillas. Las plantillas futuras
se pueden agregar fácilmente.
3. **Metodología CSS**: Usamos una combinación de CSS Reset (basado en modern-normalize)
y estilos de plantilla con alcance para garantizar un renderizado consistente en los navegadores.
4. **Manejo de Escape**: Todo el contenido está [correctamente
escapado en HTML](https://github.com/yamlresume/yamlresume/blob/v0.9.1/packages/core/src/utils/string.ts#L34-L44)
para prevenir vulnerabilidades de inyección y garantizar que los caracteres especiales se rendericen
correctamente.
5. **Pruebas Exhaustivas**: El renderizador HTML incluye más de 1,000 líneas de
[casos de
prueba](https://github.com/yamlresume/yamlresume/blob/v0.9.1/packages/core/src/renderer/html/renderer.test.ts)
que logran 100% de cobertura de pruebas y garantizan que el renderizador funcione como
se espera.
## Comparación: LaTeX vs Markdown vs HTML
Veamos cómo se comparan los tres motores:
| Característica | LaTeX (PDF) | Markdown | HTML |
| ------------------- | -------------- | ------------------ | ---------------- |
| **Caso de Uso** | Aplicaciones | AI/LLMs, contenido | Alojamiento web |
| **Formato** | Píxel perfecto | Mínimo | Responsivo |
| **Portabilidad** | Universal | Universal | Nativo de la web |
| **Personalización** | Extensiva | Limitada | Creciente |
| **Tamaño Archivo** | \~50-200 KB | \~5-20 KB | \~20-50 KB |
| **Dependencias** | Cadena LaTeX | Ninguna | Ninguna |
| **Interactivo** | No | No | Sí |
| **SEO** | No | Cuando se publica | Sí |
| **Responsivo** | No | Depende del render | Sí |
Cada motor sobresale en su dominio. La belleza de la arquitectura de YAMLResume es que
no tienes que elegir: genera los tres desde el mismo archivo fuente y usa
cada uno donde mejor se adapte.
## ¿Qué Sigue?
El motor HTML v0.9 ha establecido una base sólida, pero tenemos planes ambiciosos para
mejoras futuras:
### Más Plantillas
Agregaremos plantillas adicionales con diferentes estéticas de diseño: minimalista,
creativo, corporativo, etc. ¿Quieres contribuir una plantilla? Consulta nuestra
[guía de contribución](/docs/contributing).
### Personalización Extendida
Los lanzamientos futuros expandirán las opciones de tipografía para incluir familias de fuentes, esquemas
de colores y controles de espaciado, dándote más control sobre la presentación
visual.
### Modo Oscuro
Soporte integrado de modo oscuro usando variables CSS y consultas de medios `prefers-color-scheme`.
### Mejoras de Accesibilidad
Aunque la implementación actual usa HTML semántico, planeamos agregar
etiquetas ARIA completas y soporte de navegación por teclado para hacer que los currículums sean accesibles para todos
los usuarios.
## Conclusión
YAMLResume v0.9 trae soporte de diseño HTML, completando la trilogía de formatos de salida principales.
Ahora, desde un único archivo `resume.yml`, puedes generar:
* Un PDF profesional vía LaTeX para aplicaciones de trabajo
* Un archivo Markdown limpio para LLMs y flujos de trabajo de contenido
* Una página HTML responsiva para alojamiento web y portafolios en línea
Este lanzamiento refuerza nuestro compromiso con la filosofía "Currículum como Código": escribe
una vez, renderiza en cualquier lugar. Los datos de tu currículum permanecen como la única fuente de verdad, y
las salidas son solo diferentes vistas optimizadas para diferentes contextos.
Te invitamos a actualizar a v0.9 y experimentar la flexibilidad de los
currículums nativos de la web:
```console
$ npm install -g yamlresume@latest
$ pnpm install -g yamlresume@latest
$ yarn global add yamlresume@latest
$ bun add -g yamlresume@latest
$ brew install yamlresume
```
¿Tienes comentarios o ideas para nuevas plantillas? Únete a la discusión en
[GitHub](https://github.com/yamlresume/yamlresume/discussions) o contáctanos en
[X/Twitter](https://x.com/xiaohanyu1988). ¡Estamos ansiosos por ver cómo usas los diseños
HTML en tu flujo de trabajo!
# Presentando YAMLResume
URL: (/es/blog/introducing-yamlresume)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
Todo desarrollador necesita un currículum a menos que seas un profesional
mundialmente famoso. Escribir un currículum puede no ser difícil, pero
definitivamente no es divertido y es tedioso. Muchos pasan días elaborando sus
currículums, persiguiendo currículums 100% libres de errores tipográficos, con
gramática revisada y con diseño y tipografía profesional.
[YAMLResume](https://yamlresume.dev) te permite crear y versionar tus
currículums usando [YAML](https://yaml.org/) y generar PDFs de aspecto
profesional con hermosa tipografía en un instante.
Comenzó como el motor de composición central para
[PPResume](https://ppresume.com)—un generador de currículums comercial, perfecto
a nivel de píxel, basado en [LaTeX](https://www.latex-project.org/)—que ya ayuda
a miles de personas a crear currículums bellamente compuestos. Sin mucha
vacilación, decidimos hacerlo de código abierto para que las personas siempre
tengan el derecho de decir [no al bloqueo de
proveedores](https://blog.ppresume.com/posts/no-vendor-lock-in).
## Inicio Rápido
YAMLResume proporciona una [herramienta CLI](https://www.npmjs.com/package/yamlresume),
además, tiene una dependencia obligatoria en un motor de composición para
generar PDF. En otras palabras, debes [instalar un motor de composición](/docs/installation#typesetting-engine) primero si quieres generar
PDF.
Instalar `yamlresume` CLI es pan comido. Puedes instalarlo usando tu
administrador de paquetes de Node.js favorito:
<>
```console
npm install -g yamlresume
```
```console
pnpm add -g yamlresume
```
```console
yarn global add yamlresume
```
```console
bun add -g yamlresume
```
>
Verifica que `yamlresume` esté instalado correctamente:
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build build a resume to LaTeX and PDF
languages i18n and l10n support
templates manage resume templates
help [command] display help for command
```
También recomendamos que instales la fuente [Linux
Libertine](http://yamlresume.dev/docs/installation#linux-libertine) para
obtener los PDFs de mejor aspecto.
Por último pero no menos importante, si quieres crear un currículum CJK, también recomendamos que
instales [fuentes Google Noto](https://fonts.google.com/noto/) para la [mejor
cobertura unicode](https://github.com/ppresume/community/issues/63).
### Crear un Nuevo Currículum
Puedes crear un nuevo currículum con una sola línea:
```console
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
Bajo el capó `yamlresume new` clonará un currículum de muestra desde
[aquí](https://github.com/yamlresume/yamlresume/blob/main/packages/cli/resources/resume.yml).
Luego puedes obtener un PDF con una sola línea nuevamente:
```console
$ yamlresume build my-resume.yml
◐ Generating resume PDF with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume PDF successfully.
```
¡Listo! Revisa el PDF de currículum generado:
Puedes revisar la [Galería de PPResume](https://ppresume.com/gallery) para más ejemplos
impulsados por YAMLResume como motor de composición.
### Solución de Problemas
YAMLResume CLI proporciona una bandera verbose `-v`/`--verbose` para mostrar información de registro más detallada. Si tienes problemas para construir un currículum, puedes intentar ejecutar
los comandos nuevamente con esta bandera verbose y pegar la salida en [problemas de github](https://github.com/yamlresume/yamlresume/issues), lo revisaré y
te responderé.
## ¿Cómo Funciona?
Bajo el capó, YAMLResume funciona como un mini compilador, es decir, toma una entrada,
la analiza en un [AST](https://en.wikipedia.org/wiki/Abstract_syntax_tree) y
luego genera una salida.
El principio de diseño central de YAMLResume es la [separación de
preocupaciones](https://en.wikipedia.org/wiki/Separation_of_concerns). Uno de los
ejemplos más famosos que sigue este principio es HTML & CSS, que son la
base de la web moderna—HTML se usa para organizar el contenido en una página web,
CSS se usa para definir el estilo de presentación del contenido.
Siguiendo el principio central, YAMLResume está diseñado basándose en los siguientes
requisitos:
* el contenido del currículum debe escribirse en texto plano, lo cual es amigable con el control de versiones
* el texto plano debe usar un formato totalmente estructurado, lo que nos da más
control y flexibilidad
* YAML es mejor que JSON porque es más legible y escribible para humanos
* el texto plano YAML se renderiza luego en un PDF con un motor de composición
conectable
* se debe proporcionar un diseño opinado de fábrica, mientras se permite
a las personas ajustar opciones en consecuencia como tamaños de fuente, márgenes de página, etc.
## ¿Por Qué YAML?
[JSON Resume](https://jsonresume.org/) es otro proyecto que permite a las personas
crear currículums en un formato estructurado. Sin embargo, la mayoría de los desarrolladores estarían de acuerdo en que
YAML es mejor que JSON con respecto a la legibilidad y escritura humana. Por
ejemplo, es bastante inconveniente representar cadenas de múltiples líneas en JSON, mientras que
YAML tiene soporte nativo para ello.
Compara un fragmento de currículum en JSON y YAML:
```json
{
"content": {
"basics": {
"name": "Andy Dufresne",
"headline": "Headed for the Pacific",
"phone": "(213) 555-9876",
"email": "hi@ppresume.com",
"url": "https://ppresume.com/gallery",
"summary": "- Computer Science major with strong foundation in data structures, algorithms, and software development\n- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites\n- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)\n- Team player, with detail-oriented mindset and a keen eye for design and user experiences"
}
}
}
```
```yml lineNumbers
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@ppresume.com
url: https://ppresume.com/gallery
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
```
¿Cuál es más legible y escribible? La respuesta es obvia.
JSON Resume no tiene preocupación sobre el diseño del currículum. En el mundo real,
¿no puedes simplemente enviar un archivo JSON a los reclutadores, verdad? El formato de currículum estructurado
necesita ser convertido a un formato de documento legible por humanos como docx, PDF,
etc. YAMLResume ofrece una configuración de diseño opinada, y garantiza
salida PDF perfecta a nivel de píxel.
Al momento de escribir, el diseño opinado de YAMLResume soporta:
* idiomas locales
* Inglés
* Chino Simplificado
* Chino Tradicional
* Español
* márgenes
* superior
* izquierdo
* derecho
* inferior
* números de página
* plantilla
* tipografía
* tamaño de fuente
Aquí hay un fragmento de código de muestra para la configuración de diseño en YAMLResume:
```yml lineNumbers
layout:
locale:
language: en
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
page:
showPageNumbers: true
template: moderncv-banking
typography:
fontSize: 11pt
```
## ¿Por Qué No Markdown?
[Markdown](https://en.wikipedia.org/wiki/Markdown) es otra opción popular
para escribir currículums, también hay algunos generadores de currículums que adoptan markdown como
el formato de entrada principal. Sin embargo, markdown es un lenguaje de marcado de propósito general
para crear texto formateado, mientras que los currículums solo usan un conjunto muy limitado de
características de markdown.
Por ejemplo, la siguiente sintaxis de markdown es muy poco probable que se use en un
currículum:
* blockquote
* bloques de código
* reglas horizontales
* imágenes
* tablas
* marcado html
* etc.
Segundo, markdown es demasiado flexible, a menudo dando a los usuarios más libertad de la que
necesitan para crear un currículum. Sería bastante difícil analizar de manera confiable un
documento markdown genérico como un currículum.
Tercero, características como cambio de plantillas, control preciso de diseño (como `\hfill`
y `\hspace` en LaTeX) es muy difícil de implementar en markdown.
En conclusión, usar un formato totalmente estructurado como YAML/JSON nos da más
control y confiabilidad sobre el formato y diseño de los currículums.
## ¿Por Qué Todavía LaTeX?
[LaTeX](https://www.latex-project.org/) es un motor de composición muy maduro y estable
que puede producir PDFs de extremadamente alta calidad. Sin embargo, muchos usuarios de LaTeX,
incluso entusiastas de LaTeX, estarían de acuerdo en que el lenguaje LaTeX está algo
desactualizado—sus mensajes de error son a menudo bastante confusos, y la dependencia de
variables globales a menudo lleva a conflictos entre paquetes, la velocidad de compilación
es lenta para documentos grandes y a menudo bastante complicada, y produce
archivos intermedios feos (`.aux`, `.log`, etc.).
Algunos sugieren reemplazar LaTeX con [typst](https://github.com/typst/typst),
que es un motor de composición moderno, con mucho mejor DX y compilación mucho más rápida.
Sin embargo, después de una cuidadosa evaluación, decidí quedarme con LaTeX.
El factor decisivo aquí es que, YAMLResume está diseñado para soportar múltiples idiomas
con la mejor calidad de composición posible, sin embargo, el [soporte CJK](https://blog.ppresume.com/posts/on-typesetting-engines#cjk-3) de typst todavía es
inestable y carente.
Más adelante podría agregar un nuevo
backend de [renderizador](https://github.com/yamlresume/yamlresume/blob/main/packages/core/src/renderer/base.ts)
para soportar typst.
## Soporte de Texto Enriquecido
Aunque hemos decidido no usar markdown como el formato de entrada del currículum, sí
soportamos un conjunto limitado de sintaxis de texto enriquecido markdown para el campo `summary` en
varias secciones.
Por ahora, soportamos la siguiente sintaxis de markdown:
* `**negrita**`
* `*cursiva*`
* `[enlace](https://www.google.com)`
* lista ordenada
* lista desordenada
* lista anidada
* párrafos
Por ejemplo, este es un fragmento de muestra para el campo `content.basics.summary`:
```yml lineNumbers
---
content:
basics:
# ...
summary: |
This is a sample YAML resume that support limited set of markdown rich text syntax (bold, italics, links, lists):
- Computer Science major with **strong foundation** in data structures, *algorithms*, and software development
1. Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
2. Experiened in databases (SQL, NoSQL), familiar with server-side technologies ([Node.js](https://nodejs.org/en), Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
```
Y este es el PDF generado:
Puedes ver que la sintaxis de texto enriquecido se renderiza correctamente con negrita, cursiva,
enlaces, listas, bastante sólido, ¿verdad?
## Hoja de Ruta
En general, el proyecto todavía está en una etapa muy temprana, tenemos un largo camino por recorrer.
Ya he planeado una lista de características por hacer en el futuro cercano:
1. más idiomas, Japonés, Alemán, Francés, etc
2. más plantillas
3. [alias de sección](https://github.com/yamlresume/yamlresume/issues/11)
4. [reordenamiento de sección](https://github.com/yamlresume/yamlresume/issues/12)
5. [validación de esquema](https://github.com/yamlresume/yamlresume/issues/10)
Para cualquier problema, puedes:
* abrir un [issue](https://github.com/yamlresume/yamlresume/issues/)
* abrir una [discusión](https://github.com/yamlresume/yamlresume/discussions)
* dejar un [mensaje](https://discord.gg/9SyT7mVV4K)
¡Manténganse atentos!
# YAMLResume v0.8: Salida en Markdown
URL: (/es/blog/markdown-output)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
Estamos encantados de anunciar el lanzamiento de
[YAMLResume v0.8](https://github.com/yamlresume/yamlresume/releases/tag/v0.8.0),
un hito significativo en nuestro viaje para hacer de "Resume as Code" el
estándar para desarrolladores y profesionales de todo el mundo.
Desde sus inicios, YAMLResume se ha centrado en una misión principal: permitirle
crear currículums en un formato YAML limpio y controlado por versiones y
compilarlos en PDFs perfectamente maquetados y pixel perfect. Si bien el PDF
sigue siendo el estándar de oro para las solicitudes de empleo, nos dimos cuenta
de que nuestros usuarios a menudo necesitan sus datos de currículum en otros
formatos: para sus sitios web personales, para pegar en sistemas de seguimiento
de candidatos (ATS), o incluso para alimentar Modelos de Lenguaje Grande (LLMs)
para optimización.
Con la v0.8, presentamos una nueva y poderosa arquitectura:
[múltiples diseños](/es/docs/layouts), y con ella, soporte de primera clase para
[salida en Markdown](/es/docs/layouts/markdown).
TL;DR, una demostración rápida:
[](https://asciinema.org/a/759578)
## YAMLResume con Diseños
En versiones anteriores de YAMLResume, el proceso de compilación era lineal y
singular. Proporcionabas un archivo YAML y el motor generaba un PDF. Si querías
una [plantilla](/es/docs/layouts/latex#templates) diferente, cambiabas el campo
`layout.template`. Si querías un tamaño de fuente diferente, ajustabas la
configuración de [tipografía](/es/docs/layouts/latex#typography). Pero en última
instancia, el destino siempre era un archivo PDF generado a través del motor
[LaTeX](/es/docs/layouts/latex).
Esto funcionaba bien, pero era limitante. ¿Qué pasaba si querías generar un PDF
para enviar por correo electrónico a los reclutadores, pero también una versión
en texto plano para un formulario heredado? ¿Qué pasaba si querías una versión
en [Markdown](/es/docs/layouts/markdown) para publicar en tu blog de
[Hugo](https://gohugo.io/) o [Next.js](https://nextjs.org/)?
En la v0.8, hemos rediseñado completamente el
[esquema de diseños](/es/docs/compiler/schema/zod#layoutsschema) para soportar
[múltiples diseños](/es/docs/layouts). En lugar de un único conjunto de
configuraciones de salida, ahora puedes definir una lista de diseños en el
archivo YAML de tu currículum. Cada diseño especifica un `engine` (como `latex`
o `markdown`) y sus propias opciones de configuración específicas.
Esto significa que un solo comando [`yamlresume build`](/es/docs/cli#build)
ahora puede producir múltiples artefactos: un PDF, un archivo Markdown, y en el
futuro, HTML o archivos docx, simultáneamente. Esto se adhiere al principio de
"Fuente de la Verdad": tu `resume.yml` sigue siendo la única fuente de verdad,
mientras que las salidas son solo representaciones derivadas adaptadas para
diferentes canales de entrega.
Así es como se ve la nueva configuración en tu archivo YAML:
```yml lineNumbers
# Multiple output layouts configuration
layouts:
- engine: latex
page:
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
showPageNumbers: true
template: moderncv-banking
typography:
fontSize: 11pt
- engine: markdown
```
Como puedes ver, hemos definido dos diseños aquí. El primero utiliza el motor
[`latex`](/es/docs/layouts/latex) (nuestro generador de PDF clásico) con
plantilla específica, márgenes de página y configuración de tipografía, etc. El
segundo utiliza el nuevo motor [`markdown`](/es/docs/layouts/markdown). La
belleza de este enfoque es que puedes agregar o eliminar diseños según sea
necesario sin tocar el contenido real de tu currículum.
## Markdown como la Nueva Salida
¿Por qué markdown? Markdown se ha convertido en la lengua franca del mundo de
los desarrolladores. Es ligero, legible y universalmente soportado. Al agregar
Markdown como un objetivo de salida, YAMLResume cierra la brecha entre un
documento de currículum formal y el mundo flexible y web-first.
Veámoslo en acción. Si tienes `yamlresume` instalado (versión 0.8.0 o superior),
puedes generar un nuevo currículum y construirlo con solo dos comandos.
### Paso 1: Crear un Nuevo Currículum
Primero, generemos un currículum de ejemplo usando la [CLI](/es/docs/cli):
```console
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
Esto crea un archivo `my-resume.yml` con la configuración predeterminada, que
ahora incluye diseños de [LaTeX](/es/docs/layouts/latex) y
[Markdown](/es/docs/layouts/markdown) por defecto.
Aquí está el contenido de un archivo de currículum de ejemplo `my-resume.yml`:
puedes ignorar el `content` y mirar la última línea para ver la configuración
del diseño `markdown`:
```yml lineNumbers
---
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@ppresume.com
url: https://ppresume.com/gallery
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
city: Sacramento
region: California
country: United States
postalCode: "95814"
profiles:
- network: Line
url: https://line.com/PPResumeX
username: PPResumeX
- network: Twitter
url: https://twitter.com/PPResumeX
username: PPResumeX
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
startDate: Sep 1, 2016
endDate: Jul 1, 2020
courses:
- Discrete Methods in Computer Science
- Programming Language Concepts
- Data Structures and Object-Oriented Design
- Operating Systems
- Computer Architecture
- Database Systems
- Computer Networking
- Introduction to the Theory of Computing
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
work:
- name: PPResume
url: https://ppresume.com
startDate: Dec 1, 2022
endDate:
position: Senior Software Engineer
summary: |
- Developed and implemented efficient and scalable code, ensuring high-quality and maintainable web applications
- Collaborated with cross-functional teams to gather project requirements and translate them into technical solutions
- Conducted thorough testing and debugging to identify and resolve any issues or bugs in the software
- Actively participated in code reviews, providing valuable feedback to improve code quality and adherence to best practices
- Mentored and guided junior developers, fostering a collaborative and growth-oriented team environment
keywords:
- Scalability
- Growth
- Quality
- Mentorship
- name: PPResume
url: https://ppresume.com
startDate: Sep 1, 2020
endDate: Dec 1, 2022
position: Software Engineer
summary: |
- Created reusable React components to ensure code efficiency and maintainability
- Integrated with RESTful APIs to fetch and display dynamic data on the frontend
- Implemented client-side routing using React Router for smooth navigation between pages
- Actively participated in Agile development methodologies, attending daily stand-up meetings and sprint planning sessions
keywords:
- RESTful
- React
- Agile
languages:
- language: English
fluency: Native or Bilingual Proficiency
keywords:
- TOEFL 110
- IELTS 7.5
- language: Chinese
fluency: Elementary Proficiency
keywords: []
skills:
- name: Web Development
level: Expert
keywords:
- Python
- Ruby
- CSS
- React
- JavaScript
- name: DevOps
level: Intermediate
keywords:
- Python
- Kubernetes
- Docker
- Shell
- Ansible
- name: Design
level: Intermediate
keywords:
- Sketch
- Figma
- Photoshop
awards:
- title: Dean's List
awarder: University of Southern California
date: Oct 2016
summary: |
Awarded to students who achieve a high academic standing by maintaining a specified grade point average (GPA) during a semester.
certificates:
- name: AWS Certified Developer - Associate
url: https://aws.amazon.com/certification/
issuer: AWS
date: Mar 2021
publications:
- publisher: ACM Transactions on Interactive Intelligent Systems
url: https://dl.acm.org/journal/tiis
name: Enhancing Human-Computer Interaction through Augmented Reality
releaseDate: Dec 2017
summary: |
- Explores the potential of augmented reality (AR) in improving interaction between humans and computers
- Highlights benefits of AR in various areas such as gaming, education, healthcare, and design
- Discusses challenges and future directions of AR technology in enhancing user experience
references:
- name: Dr. Amanda Reynolds
phone: "(555) 123-4567"
relationship: Computer Science Professor
email: amanda.reynolds@usc.edu
summary: |
Andy Dufresne shows exceptional problem-solving skills and a solid understanding of programming concepts, he would bring immense value to any team or organization he becomes a part of.
projects:
- name: EduWeb
url: https://www.eduweb.xyz/
description: A web-based educational platform for interactive learning
startDate: Sep 2016
endDate: Dec 2016
summary: |
- Designed to enhance online learning experiences
- Facilitates students' engagement and collaboration through interactive features and user-friendly interface
- Offers a wide range of courses across various subjects
- Aims to improve the way students learn through the power of the web
keywords:
- Education
- Online Learning
- HCI
interests:
- name: Sports
keywords:
- Soccer
- Swimming
- Bicycling
- Hiking
- name: Music
keywords:
- Piano
- Guitar
volunteer:
- organization: USC Computer Science and Engineering Society
url: https://www.usccsesociety.org/
position: Tech Mentor
startDate: Sep 2015
endDate: Jul 2023
summary: |
- Volunteered as a Tech Mentor at USC Computer Science and Engineering Society
- Provided guidance and assistance to fellow students in their technical projects and coursework
- Assisted in organizing workshops, coding competitions, and networking events for the society members
- Contributed to fostering a collaborative and supportive environment within the student community
locale:
language: en
layouts:
- engine: latex
page:
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
showPageNumbers: true
template: moderncv-banking
typography:
fontSize: 11pt
- engine: markdown #[!code highlight]
```
### Paso 2: Construir el Currículum
Ahora, ejecuta el comando de construcción:
```console lineNumbers
$ yamlresume build my-resume.yml
✔ Generated resume tex file successfully: my-resume.tex
◐ Generating resume pdf file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume pdf file successfully: my-resume.pdf
✔ Generated resume markdown file successfully: my-resume.md
```
Observa la última línea:
`✔ Generated resume markdown file successfully: my-resume.md`. La CLI ha
detectado automáticamente el diseño [`markdown`](/es/docs/layouts/markdown) en
tu configuración YAML y ha generado el archivo `.md` correspondiente junto con
el PDF.
### El Markdown Resultante
Veamos el `my-resume.md` generado. El motor transforma inteligentemente tus
datos YAML estructurados en un documento Markdown limpio y bien formateado
utilizando encabezados de sintaxis estándar, listas y enlaces.
```markdown lineNumbers
# Andy Dufresne
Headline: Headed for the Pacific
- Email: hi@ppresume.com
- Phone: (213) 555-9876
- URL: https://ppresume.com/gallery
Location: 123 Main Street, Sacramento, California, United States, 95814
Profiles:
- Line: [@PPResumeX](https://line.com/PPResumeX)
- Twitter: [@PPResumeX](https://twitter.com/PPResumeX)
## Basics
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
## Education
### University of Southern California
Bachelor, Computer Engineering and Computer Science, Score: 3.8, Sep 2016–Jul 2020
URL: https://www.cs.usc.edu/
Courses: Discrete Methods in Computer Science, Programming Language Concepts, Data Structures and Object-Oriented Design, Operating Systems, Computer Architecture, Database Systems, Computer Networking, Introduction to the Theory of Computing
Summary:
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
## Work
### Senior Software Engineer
PPResume, Dec 2022–Present
URL: https://ppresume.com
Keywords: Scalability, Growth, Quality, Mentorship
Summary:
- Developed and implemented efficient and scalable code, ensuring high-quality and maintainable web applications
- Collaborated with cross-functional teams to gather project requirements and translate them into technical solutions
- Conducted thorough testing and debugging to identify and resolve any issues or bugs in the software
- Actively participated in code reviews, providing valuable feedback to improve code quality and adherence to best practices
- Mentored and guided junior developers, fostering a collaborative and growth-oriented team environment
### Software Engineer
PPResume, Sep 2020–Dec 2022
URL: https://ppresume.com
Keywords: RESTful, React, Agile
Summary:
- Created reusable React components to ensure code efficiency and maintainability
- Integrated with RESTful APIs to fetch and display dynamic data on the frontend
- Implemented client-side routing using React Router for smooth navigation between pages
- Actively participated in Agile development methodologies, attending daily stand-up meetings and sprint planning sessions
## Languages
- English: Native or Bilingual Proficiency, Keywords: TOEFL 110, IELTS 7.5
- Chinese: Elementary Proficiency
## Skills
- Web Development: Expert, Keywords: Python, Ruby, CSS, React, JavaScript
- DevOps: Intermediate, Keywords: Python, Kubernetes, Docker, Shell, Ansible
- Design: Intermediate, Keywords: Sketch, Figma, Photoshop
## Awards
### Dean's List
University of Southern California, Oct 2016
Summary:
Awarded to students who achieve a high academic standing by maintaining a specified grade point average (GPA) during a semester.
## Certificates
### AWS Certified Developer - Associate
AWS, Mar 2021
URL: https://aws.amazon.com/certification/
## Publications
### Enhancing Human-Computer Interaction through Augmented Reality
ACM Transactions on Interactive Intelligent Systems, Dec 2017
URL: https://dl.acm.org/journal/tiis
Summary:
- Explores the potential of augmented reality (AR) in improving interaction between humans and computers
- Highlights benefits of AR in various areas such as gaming, education, healthcare, and design
- Discusses challenges and future directions of AR technology in enhancing user experience
## References
### Dr. Amanda Reynolds
Computer Science Professor, amanda.reynolds@usc.edu, (555) 123-4567
Summary:
Andy Dufresne shows exceptional problem-solving skills and a solid understanding of programming concepts, he would bring immense value to any team or organization he becomes a part of.
## Projects
### EduWeb
A web-based educational platform for interactive learning, Sep 2016–Dec 2016
URL: https://www.eduweb.xyz/
Keywords: Education, Online Learning, HCI
Summary:
- Designed to enhance online learning experiences
- Facilitates students' engagement and collaboration through interactive features and user-friendly interface
- Offers a wide range of courses across various subjects
- Aims to improve the way students learn through the power of the web
## Interests
- Sports: Soccer, Swimming, Bicycling, Hiking
- Music: Piano, Guitar
## Volunteer
### USC Computer Science and Engineering Society
Tech Mentor, Sep 2015–Jul 2023
URL: https://www.usccsesociety.org/
Summary:
- Volunteered as a Tech Mentor at USC Computer Science and Engineering Society
- Provided guidance and assistance to fellow students in their technical projects and coursework
- Assisted in organizing workshops, coding competitions, and networking events for the society members
- Contributed to fostering a collaborative and supportive environment within the student community
```
## Beneficios de Markdown
Te estarás preguntando, "Ya tengo un buen PDF, ¿por qué necesito una versión en
Markdown?" Los beneficios de tener una representación estructurada y en texto
plano de tu currículum son inmensos, especialmente en el mundo moderno impulsado
por la IA.
### 1. Amigable con LLM
Esta es quizás la ventaja más significativa hoy en día. Vivimos en la era de los
Modelos de Lenguaje Grande (LLMs). Herramientas como ChatGPT, Claude y Gemini
son increíblemente buenas analizando texto, pero pueden tener dificultades con
archivos binarios PDF o código fuente LaTeX complejo.
Al generar una versión limpia en Markdown de tu currículum, tienes la entrada
perfecta para un LLM. Puedes copiar y pegar tu `resume.md` en ChatGPT y pedirle
que:
* "Adapte mi currículum para esta Descripción de Trabajo..."
* "Critique mi sección de resumen y sugiera mejoras..."
* "Extraiga mis habilidades clave y las formatee para una carta de
presentación..."
Debido a que Markdown está estructurado semánticamente (encabezados, listas,
texto en negrita), los LLMs pueden "entender" la jerarquía y el contenido de tu
currículum mucho mejor que con texto sin formato o conversiones de PDF.
### 2. Interoperabilidad y Publicación Web
Markdown es el formato de contenido nativo para la web. Si tienes un portafolio
personal o blog construido con Next.js, Hugo, Jekyll o Gatsby, puedes soltar tu
`resume.md` directamente en tu carpeta de contenido.
Con la nueva salida en Markdown, puedes automatizar tu flujo de trabajo de marca
personal:
1. Actualiza tu `resume.yml` con tu último trabajo o proyecto.
2. Ejecuta `yamlresume build`.
3. El `resume.pdf` generado va a tu enlace de descarga.
4. El `resume.md` generado actualiza tu página "Sobre Mí" en tu sitio web.
No más copiar y pegar manualmente o mantener dos versiones separadas de tu
currículum.
### 3. Legibilidad Humana y Diferencias en Git
Mientras que YAML es legible, Markdown lo es aún más para textos largos. Sirve
como un gran formato intermedio para revisar tu contenido sin el "ruido" de la
sintaxis YAML o los comandos LaTeX.
Además, debido a que la salida es texto plano determinista, puedes rastrear
cambios fácilmente en Git. Si cambias una descripción de trabajo, la diferencia
en `resume.md` mostrará claramente el cambio de texto, lo cual es mucho más
amigable para revisiones por pares (por ejemplo, en una Solicitud de Extracción
de GitHub) que intentar ver las diferencias en un PDF binario.
### 4. Portabilidad Universal
Markdown se puede convertir fácilmente a casi cualquier otro formato de
documento utilizando herramientas como [Pandoc](https://pandoc.org/). ¿Necesitas
un archivo `.docx` para un reclutador que insiste en Word?
`pandoc resume.md -f gfm -o resume.docx`. ¿Necesitas un fragmento HTML?
`pandoc resume.md -f gfm -o resume.html`. La salida en Markdown actúa como un
formato "pivote" versátil que desbloquea la compatibilidad con todo el
ecosistema de documentos.
## Lo Siguiente: Diseño HTML
La introducción del sistema de diseño y el motor Markdown es solo el comienzo.
Estamos trabajando activamente en un
[motor de diseño HTML](https://github.com/yamlresume/yamlresume/issues/45).
Imagina ejecutar `yamlresume build` y obtener un archivo HTML totalmente
receptivo, optimizado para SEO y autónomo que se ve tan bien como tu PDF pero es
nativo del navegador. Esto te permitirá alojar tu currículum como una página
estática simple en GitHub Pages, Vercel o Netlify sin gastos generales.
El diseño HTML soportará:
* Diseño responsivo para visualización móvil (no más pellizcar y hacer zoom en
PDFs en teléfonos).
* Metadatos SEO generados automáticamente a partir del contenido de tu
currículum.
* Soporte de temas a través de variables CSS.
* Elementos interactivos (por ejemplo, enlaces de proyectos clicables, secciones
plegables).
Creemos que tus datos de currículum te pertenecen, y deberías poder
renderizarlos en cualquier formato que mejor se adapte a tus necesidades, ya sea
un PDF pixel perfect para imprimir, un archivo Markdown limpio para IA, o una
página HTML receptiva para la web.
## Conclusión
YAMLResume v0.8 es un gran paso adelante en flexibilidad. Al desacoplar el
contenido (YAML) de la presentación (diseños), estamos empoderando a los
desarrolladores para usar sus datos de currículum de formas nuevas y creativas.
Te invitamos a actualizar a la v0.8, agregar el motor `markdown` a tus diseños,
y experimentar la libertad de tener tu currículum disponible en el formato que
necesitas, cuando lo necesitas.
Pruébalo:
```console lineNumbers
$ npm install -g yamlresume@latest
$ pnpm install -g yamlresume@latest
$ yarn global add yamlresume@latest
$ bun add -g yamlresume@latest
$ brew install yamlresume
```
# YAMLResume v0.6: Personalización de Secciones
URL: (/es/blog/section-customization)
YAMLResume [v0.6](https://github.com/yamlresume/yamlresume/releases/tag/v0.6.0)
está aquí, y trae dos potentes características para personalizar la estructura
de tu currículum: [alias de secciones](/docs/layouts/sections/aliases) y
[reordenamiento de secciones](/docs/layouts/sections/reorder). Estas
características te permiten renombrar títulos de secciones y controlar su
secuencia en el PDF final, dándote mayor flexibilidad para adaptar tu
currículum.
Profundicemos en cómo funcionan.
## Alias de Secciones
Los títulos de sección predeterminados en YAMLResume (por ejemplo, `education`,
`work`) se [traducen](/docs/layouts/sections/docs/locale)
automáticamente según tu [idioma local](/docs/layouts#locale) elegido. Sin
embargo, podrías preferir un título diferente. Por ejemplo, podrías querer
cambiar "Work" a "Professional Experience" para la sección `work`.
Para definir alias, usa el mapa `layout.sections.aliases` en tu `resume.yml`.
```yml lineNumbers title="resume.yml"
---
content:
# ...
layout: # [!code focus]
sections: # [!code focus]
aliases: # [!code focus]
work: Professional Experience # [!code focus]
education: Academic Background # [!code focus]
skills: Technical Skills # [!code focus]
```
## Reordenamiento de Secciones
Por defecto, las secciones se renderizan en un [orden
estándar](/docs/layouts/sections/reorder#default-section-order). La
característica `layout.sections.order` te permite cambiar esta secuencia para
destacar tu información más importante primero.
Por ejemplo, para colocar tus secciones de "Skills" y "Projects" antes de tu
experiencia "Work", puedes definir el orden así:
```yml lineNumbers title="resume.yml"
---
content:
# ...
layout: #[!code focus]
sections: #[!code focus]
order: #[!code focus]
- skills #[!code focus]
- projects #[!code focus]
- work #[!code focus]
```
Las secciones en la lista `order` aparecerán primero, seguidas de las secciones
restantes en su orden predeterminado.
## Juntándolo Todo: Un Ejemplo Completo
Creemos un currículum de una página que use ambas características. Usaremos
alias y reordenaremos algunas secciones al mismo tiempo.
```yml lineNumbers title="resume.yml"
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
---
layout:
sections: # [!code highlight]
aliases: # [!code highlight]
work: Professional Experience # [!code highlight]
education: Academic Background # [!code highlight]
skills: Technical Skills # [!code highlight]
order: # [!code highlight]
- basics # [!code highlight]
- work # [!code highlight]
- education # [!code highlight]
- skills # [!code highlight]
template: moderncv-banking
typography:
fontSize: 11pt
content:
basics:
name: Jane Doe
headline: Senior Software Engineer
email: jane.doe@example.com
phone: "555-123-4567"
summary: |
A passionate and experienced software engineer with a proven track record
of designing, developing, and deploying robust web applications. Skilled
in both front-end and back-end development, with a keen eye for detail and
a dedication to writing clean, efficient code.
education:
- institution: Tech University
area: Software Engineering
degree: Master
startDate: 2018-09-01
endDate: 2020-06-01
summary: Specialized in distributed systems and cloud computing.
- institution: State University
area: Computer Science
degree: Bachelor
startDate: 2014-09-01
endDate: 2018-06-01
summary: |
- Graduated with honors.
- Focused on algorithms, data structures, and distributed systems.
courses:
- Data Structures & Algorithms
- Operating Systems
- Computer Networks
- Database Systems
work:
- name: Tech Solutions Inc.
position: Senior Software Engineer
startDate: 2020-07-01
summary: |
- Led the development of a new microservices-based architecture, improving system scalability and reliability.
- Mentored junior engineers, providing guidance on best practices and code quality.
- Optimized application performance, reducing API response times by 30%.
- name: Innovate Corp.
position: Software Engineer
startDate: 2018-07-01
endDate: 2020-06-30
summary: |
- Developed and maintained features for a large-scale e-commerce platform using React and Node.js.
- Collaborated with product managers and designers to deliver high-quality user experiences.
- Participated in on-call rotation to ensure application stability.
- name: Data Systems LLC
position: Software Engineer Intern
startDate: 2017-06-01
endDate: 2017-08-31
summary: |
- Assisted in the development of a data processing pipeline.
- Wrote unit tests to ensure code quality.
- Gained experience with Agile development methodologies.
skills:
- name: Programming Languages
level: Expert
keywords:
- JavaScript (ES6+)
- TypeScript
- Python
- Go
- name: Technologies & Frameworks
level: Advanced
keywords:
- React
- Node.js
- Express
- Docker
- Kubernetes
- PostgreSQL
- name: Developer Tools
level: Advanced
keywords:
- Git & GitHub
- Webpack
- Jest
- CircleCI
languages:
- language: English
fluency: Native or Bilingual Proficiency
- language: Spanish
fluency: Limited Working Proficiency
```
Aquí usamos alias para las secciones `work`, `education` y `skills`, y
reordenamos las secciones asignando mayor prioridad a `work` que a `education`,
seguida de la sección `skills`:
Ahora, construyamos el currículum:
```bash
yamlresume build resume.yml
```
Obtendrás un archivo PDF con el siguiente contenido—resalté las secciones con
personalizaciones:
¡Genial, funciona como se esperaba! ¿No es esto genial?
## En Resumen
Con alias de secciones y reordenamiento, ahora tienes control detallado sobre la
estructura de tu currículum. Esperamos que estas características te ayuden a
crear currículums aún más personalizados y efectivos.
La mejor parte de la personalización de secciones es que siempre puedes extender
[las capacidades i18n de YAMLResume para soportar más
idiomas](/docs/layouts/sections/reorder#default-section-order) por tu cuenta. Por
defecto, los títulos de sección predeterminados se traducirán al idioma local
objetivo (establecido vía `layout.locale.language`) automáticamente. Sin
embargo, siempre hay casos donde YAMLResume [aún no ha soportado tu idioma
objetivo](https://github.com/yamlresume/yamlresume/discussions/36), por lo que
puedes sobrescribir los títulos de sección predeterminados con los tuyos
propios.
Mientras tanto, las personas con diferentes antecedentes tienen diferentes
preferencias para el orden de secciones. Por ejemplo, los candidatos que buscan
un trabajo en la industria pueden ordenar `work` antes de `education`, mientras
que los investigadores postdoctorales que buscan una posición académica
ordenarían `education` antes de `work`.
¡Esperamos que disfrutes estas nuevas características!
# YAMLResume v0.10: Plantilla de VS Code y Soporte para Holandés
URL: (/es/blog/v0.10)
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
Estamos encantados de anunciar el lanzamiento de
[YAMLResume v0.10](https://github.com/yamlresume/yamlresume/releases/tag/v0.10.0).
Esta versión se centra en expandir nuestro ecosistema de diseños con un tema
favorito de los desarrolladores, ampliar nuestro soporte internacional y añadir
un control preciso sobre el formato del documento.
## Nueva Plantilla HTML: VS Code
Para los desarrolladores, su editor de código es su hogar. Ahora su currículum
puede sentirse igual de familiar. Hemos introducido una nueva [plantilla de VS
Code](/docs/layouts/html/templates/vscode) para el motor HTML, con un tema
oscuro inspirado en el esquema de colores "Dark+" de Visual Studio Code.
Presenta una estética de resaltado de sintaxis, tratando su nombre como una
clase, sus habilidades como objetos y su experiencia como funciones. Para
usarla, simplemente actualice su configuración de diseño:
```yml lineNumbers
layouts:
- engine: html
template: vscode #[!code highlight]
```
Esta plantilla es perfecta para ingenieros de software, profesionales de devops
y cualquiera que quiera señalar sus raíces técnicas de inmediato.
## Soporte para el Idioma Holandés
YAMLResume sigue creciendo globalmente. Gracias a la contribución de
[MattiaPun](https://github.com/MattiaPun), ¡ahora soportamos [holandés
(nl)](/docs/locale/dutch)!
Esto eleva nuestro número de idiomas soportados a seis:
* [Inglés (en)](/docs/locale/english)
* [Chino (zh)](/docs/locale/chinese)
* [Español (es)](/docs/locale/spanish)
* [Francés (fr)](/docs/locale/french)
* [Noruego (no)](/docs/locale/norwegian)
* [Holandés (nl)](/docs/locale/dutch)
Para generar su currículum en holandés, configure el idioma en su `resume.yml`:
```yml lineNumbers
locale:
language: nl
```
Esto traducirá automáticamente los encabezados de las secciones (por ejemplo,
"Werkervaring", "Opleidingen"), los formatos de fecha y los nombres de los
países.
## Soporte de Tamaño de Papel para LaTeX
Hemos añadido un control explícito sobre los tamaños de papel para el motor
LaTeX/PDF. Mientras que el A4 es el estándar en muchas partes del mundo, el US
Letter es esencial para América del Norte.
Ahora puede especificar su tamaño de papel preferido directamente en la
configuración:
```yml lineNumbers
layouts:
- engine: latex
page:
# Opciones: 'a4' (predeterminado) o 'letter'
paperSize: letter #[!code highlight]
```
Esto asegura que su currículum en PDF se imprima perfectamente sin importar su
región. ¡Un agradecimiento especial a [djryanj](https://github.com/djryanj) por
impulsar esta función!
## Alternar Iconos
A veces, menos es más. Aunque los iconos añaden un toque visual, ciertos
contextos formales o enfocados en ATS podrían requerir una presentación más
estricta de solo texto.
Hemos introducido una opción `showIcons` bajo los ajustes `advanced` tanto para
el motor HTML como para el LaTeX. Esto le da la flexibilidad de activar o
desactivar los iconos para los detalles de contacto y los perfiles sociales.
```yml lineNumbers
layouts:
- engine: html
advanced:
showIcons: false #[!code highlight]
- engine: latex
advanced:
showIcons: false #[!code highlight]
```
## Conclusión
YAMLResume v0.10 se trata de darle más opciones, desde cómo se ve su currículum
hasta cómo se adapta a sus estándares locales.
Actualice hoy para explorar las nuevas funciones:
```console
$ npm install -g yamlresume@latest
# o
$ brew upgrade yamlresume
```
Como siempre, agradecemos sus comentarios y contribuciones en
[GitHub](https://github.com/yamlresume/yamlresume). ¡Feliz creación!
# YAMLResume v0.5: El Compilador de Currículums
URL: (/es/blog/yamlresume-compiler)
Estamos emocionados de anunciar el lanzamiento de [YAMLResume
v0.5](https://github.com/yamlresume/yamlresume/releases/tag/v0.8.1), un hito
significativo que transforma YAMLResume de una herramienta simple en un
**compilador de currículums** completo. Esta versión introduce una arquitectura
\*robusta, poderosa validación de esquema y un CLI mejorado para hacer tu
proceso de creación de currículums más confiable, eficiente y libre de errores.
## El Problema con la Escritura Manual de Currículums
Redactar un currículum es a menudo un proceso tedioso y propenso a errores. Ya
sea que estés usando un procesador de texto o un lenguaje de marcado simple, es
fácil cometer errores:
* Un error tipográfico en un campo clave como `degree` o `fluency`.
* Una dirección de correo electrónico o URL formateada incorrectamente.
* Formatos de fecha inconsistentes.
* Olvidar un campo requerido para una solicitud de empleo.
Estos pequeños errores pueden llevar a un ciclo frustrante de edición,
generación y corrección. El problema central es la falta de un sistema para
imponer estructura y validar datos *antes* de que se genere el documento final.
## La Solución: Un Compilador de Currículums
Inspirado por los compiladores de lenguajes de programación, [YAMLResume
v0.5](https://github.com/yamlresume/yamlresume/releases/tag/v0.8.1) introduce
una nueva arquitectura de compilador que trata el archivo fuente de tu
currículum (en YAML) como código. Este "código" luego se procesa a través de una
tubería para producir un PDF profesional y pulido.
Esta nueva arquitectura define dos componentes centrales:
1. Un [formato de datos estándar](/docs/compiler/types) para un currículum,
junto con un [esquema](/docs/compiler/schema) para validar los datos.
2. Un [compilador](/docs/compiler) de referencia que implementa el formato de
datos y la validación de esquema.
Este enfoque trae varias ventajas clave:
* **Separación de Preocupaciones**: Te enfocas únicamente en el **contenido** de
tu currículum. El compilador maneja la **presentación**—diseño, tipografía y
formato.
* **Detección Temprana de Errores**: El compilador valida tu currículum contra
un esquema predefinido, detectando errores instantáneamente con
retroalimentación clara y accionable.
* **Consistencia y Confiabilidad**: Al imponer una estructura estándar, el
compilador asegura que los datos de tu currículum sean siempre consistentes y
listos para cualquier plantilla.
### Véalo en Acción
Por ejemplo, considera el siguiente currículum con varios errores comunes:
```yml lineNumbers title="invalid-resume.yml"
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
---
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@pp # [!code highlight]
url: https//ppresume.com/gallery # [!code highlight]
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
region: California
city: S # [!code highlight]
country: United States
postalCode: "95814"
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
startDate: Sep 1, 2016
endDate:
courses:
- D # [!code highlight]
- Programming Language Concepts
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
layout:
typography:
fontSize: 13pt # [!code highlight]
```
Tenemos varios problemas:
1. `email: hi@pp` - el formato es inválido
2. `url: https//ppresume.com/gallery` - falta `:` en la parte del protocolo
3. `city: S` - demasiado corto, debe tener 2 caracteres o más, ¿hay alguna
ciudad en el mundo cuyo nombre tenga solo 1 carácter?
4. `- D` - el primer curso es simplemente demasiado corto, debe tener 2
caracteres o más
5. `fontSize: 13pt` - debe ser 10pt, 11pt o 12pt, 13pt es demasiado grande y
tiene poco sentido en el escenario de redacción de currículums
Estos errores, que podrían haber pasado desapercibidos anteriormente, ahora se
detectan instantáneamente. Puedes ejecutar `yamlresume validate my-resume.yml` o
simplemente `yamlresume build my-resume.yml`. YAMLResume reportará todos los
problemas en el ampliamente adoptado [formato de error estilo
clang](https://clang.llvm.org/diagnostics.html), permitiéndote corregirlos antes
de que se genere el PDF final.
## En el Corazón del Compilador: El Esquema
La piedra angular de esta nueva versión es el **[Esquema de
YAMLResume](/docs/compiler/schema)**. Proporcionamos un esquema completo que
define la estructura y reglas para cada pieza de datos en tu currículum.
Usamos dos poderosas tecnologías para esto:
* **[Zod](https://zod.dev)**: Para validación en tiempo de ejecución dentro del
compilador, proporcionando una red de seguridad robusta y mensajes de error
detallados.
* **[JSON Schema](https://json-schema.org)**: Para integración con editores e
IDEs. Al agregar una sola línea a tu archivo YAML, desbloqueas autocompletado,
documentación de propiedades en línea al pasar el cursor, y validación de
formato en tiempo real directamente en tu editor.
Si tienes un currículum creado antes de v0.5, aún puedes aprovechar la
validación de esquema. Solo agrega la siguiente línea a tu archivo de currículum
e instala el [Servidor de Lenguaje
YAML](https://github.com/redhat-developer/yaml-language-server) para tu editor.
```yml lineNumbers
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
```
Esta integración proporciona un conjunto de beneficios que mejoran
dramáticamente la experiencia de escritura de currículums:
### Autocompletado
Pasa menos tiempo buscando nombres de campos. Tu editor sugerirá propiedades
válidas mientras escribes, asegurando que uses los campos correctos cada vez.
### Validación de Formato en Tiempo Real
Detecta errores a medida que ocurren. La validación de esquema proporciona
retroalimentación instantánea sobre todo, desde errores tipográficos simples
hasta formatos de correo electrónico incorrectos o campos requeridos faltantes.
Si falta una clave requerida, la advertencia se escala a su objeto padre,
facilitando su detección y corrección.
### Documentación de Propiedades en Línea
No más adivinanzas sobre lo que hace un campo. Pasa el cursor sobre cualquier
propiedad para obtener documentación instantánea que explica su propósito,
formato esperado y valores permitidos.
## El CLI Mejorado
El [CLI](/docs/cli) de `yamlresume` ahora es más poderoso que nunca. El comando
[build](/docs/cli#build) ejecuta toda la tubería del compilador, desde
validación hasta generación de PDF, mientras que el nuevo comando
[validate](/docs/cli#validate) te permite verificar tu currículum sin
construirlo.
[](https://asciinema.org/a/728098)
Este flujo de trabajo sin interrupciones transforma tu proceso de creación de
currículums, haciéndolo más eficiente y confiable mientras minimiza errores.
## Qué Significa Esto Para Ti
Con [YAMLResume
v0.5](https://github.com/yamlresume/yamlresume/releases/tag/v0.8.1), puedes:
* **Escribir con Confianza**: Saber que la estructura de tu currículum es sólida
y tus datos son válidos.
* **Ahorrar Tiempo**: Detectar errores temprano y eliminar el tedioso ciclo de
corrección.
* **Mantener la Flexibilidad**: Intercambiar entre diferentes plantillas de
currículum sin esfuerzo.
* **Disfrutar de una Mejor Experiencia de Edición**: Obtener retroalimentación
en tiempo real y autocompletado en tu editor favorito.
Te invitamos a experimentar el poder y la simplicidad del nuevo compilador
YAMLResume:
* **Instala o actualiza** a la última versión: `npm install -g
yamlresume@latest`
* **Lee la nueva [Documentación del Compilador](/docs/compiler)** para aprender
más sobre la arquitectura y el esquema.
* **Únete a nuestra comunidad** en
[GitHub](https://github.com/yamlresume/yamlresume/discussions) para hacer
preguntas, reportar problemas o contribuir.
Creemos que esta versión marca una nueva era para la creación de currículums,
trayendo el poder y la confiabilidad de los compiladores a todos. ¡No podemos
esperar a ver los increíbles currículums que construirás!
Y no olvides, puedes probar el nuevo compilador con nuestra [imagen
Docker](/blog/yamlresume-docker):
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
```
# YAMLResume en Docker
URL: (/es/blog/yamlresume-docker)
Estoy súper emocionado de anunciar que YAMLResume ahora tiene una [imagen de
docker](https://hub.docker.com/r/yamlresume/yamlresume), y puedes [ejecutar
YAMLResume instantáneamente con docker](https://asciinema.org/a/722057).
## ¿Por Qué Docker?
YAMLResume es una herramienta CLI de Node.js y una
[biblioteca](https://www.npmjs.com/package/@yamlresume/core). Instalar
YAMLResume en sí no es difícil ya que solo requiere Node.js. De hecho, podemos
incluso compilarlo a un binario y ejecutarlo directamente sin instalar Node.js.
Sin embargo, YAMLResume tiene una dependencia obligatoria de LaTeX, lo que trae
algunos nuevos problemas:
* Instalar LaTeX toma tiempo; usualmente toma alrededor de 5–10 minutos descargar una
distribución LaTeX adecuada y configurarla.
* LaTeX no es un programa binario único; es una colección de programas. Algunos
usuarios [no les gusta instalar muchos programas en sus
máquinas](https://github.com/yamlresume/yamlresume/issues/6#issuecomment-2916479009).
Aunque ya proporcionamos una [guía de instalación](/docs/installation) muy
completa que cubre macOS, Windows, Ubuntu y RHEL, incluso con instrucciones
sobre cómo instalar YAMLResume y LaTeX y hacerlos funcionar juntos, el proceso
todavía puede ser doloroso para algunos usuarios.
Docker es una gran solución a estos problemas: puede empaquetar todo en una sola
imagen, facilitando la instalación y configuración.
## Cómo Usarlo
Una imagen vale más que mil palabras. Aquí hay una captura de pantalla que
muestra cómo usarlo:
Nuestra [imagen de docker](https://hub.docker.com/r/yamlresume/yamlresume) tiene
todo preempaquetado, incluyendo:
* [Node.js](/docs/installation#nodejs)
* [yamlresume CLI](/docs/installation#yamlresume)
* [XeTeX](/docs/installation#xetex)
* [algunas fuentes recomendadas](/docs/installation#font)
Puedes crear un nuevo currículum instantáneamente con el siguiente comando:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
```
Edita `my-resume.yml` en consecuencia y luego construye el currículum de YAML a
PDF:
```sh
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
```
#### Bajo el Capó
Si estás familiarizado con docker, probablemente ya sepas cómo funciona esto. Si
no, aquí hay una explicación rápida:
1. `docker run ... yamlresume/yamlresume` - ejecuta un nuevo contenedor desde la
imagen `yamlresume/yamlresume`. Si esta imagen no existe en tu máquina local,
la descargará desde el [docker
Hub](https://hub.docker.com/r/yamlresume/yamlresume).
2. `--rm` - elimina automáticamente el contenedor cuando sale.
3. `-v $(pwd):/home/yamlresume` - monta el directorio actual (`$(pwd)`) en el
contenedor en `/home/yamlresume`, permitiendo que el contenedor acceda a
archivos locales.
4. `new my-resume.yml` o `build my-resume.yml` - ejecuta el subcomando de CLI de
yamlresume [new](/docs/cli#new) o [build](/docs/cli#build) para crear o
construir un currículum con el nombre de archivo `my-resume.yml`.
Básicamente, puedes llamar a todos los [subcomandos CLI](/cli) de `yamlresume`
de esta manera—solo agrega el subcomando después de `yamlresume/yamlresume` y
luego sigue la guía de uso correspondiente.
La bandera `-v` es bastante importante porque monta el directorio actual
(`$(pwd)`) en el contenedor en `/home/yamlresume`, permitiendo la sincronización
bidireccional de archivos entre el directorio local y el contenedor. Sin esta
bandera, el artefacto de salida de construcción se perderá después de que el
contenedor salga.
## Ingeniería
Construir una imagen de docker no es difícil si conoces un poco de docker. Sin
embargo, envolver YAMLResume en docker no es tan fácil como suena. Aquí hay
algunos de los desafíos.
### La Configuración de LaTeX es Tediosa
Instalar una distribución LaTeX funcional toma tiempo; usualmente toma alrededor
de 5–10 minutos descargar y configurar una distribución LaTeX adecuada. En los
ejecutores de GitHub Action, este proceso es [aún más largo—hasta más de 20
minutos](https://github.com/yamlresume/yamlresume/actions/runs/15438395862/job/43450134447).
```docker
RUN apt update && \
apt install -y \
texlive-xetex \
texlive-fonts-extra \
texlive-lang-all \
fonts-noto-cjk \
fonts-noto-cjk-extra \
```
Lo convertimos en un proceso de 3 pasos para construir [la imagen de docker de
yamlresume](https://hub.docker.com/r/yamlresume/yamlresume):
1. Comenzar desde una imagen de Node.js como base.
2. Instalar y configurar una distribución LaTeX.
3. Instalar el CLI de yamlresume.
Como se mencionó, el paso 2 es la parte que consume más tiempo. Si tuviéramos
que empezar desde cero cada vez que necesitáramos actualizar la imagen de
docker, tomaría 30 minutos construir la imagen de docker en un ejecutor de
acción de github.
Para evitar esto, usamos una construcción multi-etapa para cachear la
distribución LaTeX, por lo que no necesitamos instalarla desde cero cada vez que
actualizamos la imagen de docker.
Por lo tanto, creamos una nueva
[yamlresume/yamlresume-base](https://hub.docker.com/r/yamlresume/yamlresume-base),
que es una imagen base que tiene Node.js y una distribución LaTeX instaladas.
Esta imagen base es estable y no se actualizará con demasiada frecuencia, y
nuestra imagen `yamlresume/yamlresume` está construida sobre esta imagen base.
Solo toma 3 minutos descargar la imagen `yamlresume/yamlresume-base` e instalar
el CLI de yamlresume en ella, lo que reduce drásticamente el tiempo de
iteración.
### Soporte Multi-Plataforma
Otro desafío es soportar [construcciones
multi-plataforma](https://docs.docker.com/build/building/multi-platform/). Como
sabemos, macOS M1 y posteriores son máquinas basadas en ARM. Aunque pueden
ejecutar imágenes de docker con arquitectura AMD64 mediante emulación, el
rendimiento es 10 veces peor.
Por lo tanto, tenemos que soportar imágenes multi-plataforma para
`yamlresume/yamlresume`. Afortunadamente, docker proporciona oficialmente una
guía detallada sobre cómo [construir imágenes multi-plataforma en acciones de
github](https://docs.docker.com/build/ci/github-actions/multi-platform/).
La imagen de docker de YAMLResume soporta [dos
plataformas](https://hub.docker.com/r/yamlresume/yamlresume/tags): `linux/amd64`
y `linux/arm64`, que deberían ser suficientes para cubrir la mayoría de las
máquinas de escritorio y servidor.
¡Disfruta YAMLResume con docker!
# YAMLResume llega a Homebrew
URL: (/es/blog/yamlresume-homebrew)
YAMLResume acaba de ser [aceptado](https://github.com/Homebrew/homebrew-core/pull/246949) por
[Homebrew](https://brew.sh) (el gestor de paquetes más popular en macOS). Esto
significa que ahora los usuarios de macOS pueden instalar y mantener YAMLResume
actualizado con un único comando confiable—sin instalaciones globales manuales
de [Node.js](https://nodejs.org), sin malabares de rutas. Esta entrada muestra
una configuración paso a paso más detallada de YAMLResume con Homebrew y un
motor de composición para obtener la mejor salida PDF.
## Por qué Importa
Anteriormente, el camino típico para obtener el CLI de YAMLResume en macOS era:
1. [instalar Node.js](/es/docs/installation#nodejs),
2. [instalar el CLI `yamlresume`](/es/docs/installation#yamlresume) con gestores
de paquetes de Node.js (npm/pnpm/yarn/bun)
3. [instalar un motor de composición](/es/docs/installation#typesetting-engine)
para generar PDF
Una [formula de Homebrew](https://formulae.brew.sh/formula/yamlresume) puede
unir los pasos 1 y 2 en uno solo, ya que Homebrew puede gestionar la
dependencia de Node.js por ti. Esto reduce problemas de configuración de
entornos y simplifica las actualizaciones (`brew upgrade yamlresume`).
## Instalación Rápida
```sh
brew install yamlresume
```
Homebrew instalará Node.js como dependencia si todavía no lo tienes.
Luego verifica:
```console
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build [options] build a resume to LaTeX and PDF
dev [options] build a resume on file changes (watch mode)
languages i18n and l10n support
templates manage resume templates
validate validate a resume against the YAMLResume schema
help [command] display help for command
```
Si ves la salida de ayuda, el binario del CLI está disponible en tu `PATH`.
YAMLResume depende de un motor de composición para generar PDF; puedes instalar
[MacTeX](/es/docs/installation#xetex) o [Tectonic](/es/docs/installation#tectonic) con Homebrew.
### Opción A: TeX Live Completo (XeTeX)
Instala mediante el cask de MacTeX (incluye XeTeX):
```sh
# install the full mactex
brew install mactex
# or if you want to save some disk space
brew install mactex-no-gui
```
Tras la instalación, asegúrate de que los binarios de TeX estén en el `PATH`
(Homebrew normalmente crea enlaces simbólicos bajo `/Library/TeX/texbin`).
Prueba:
```console
$ xelatex --version
XeTeX 3.141592653-2.6-0.999994 (TeX Live 2022)
kpathsea version 6.3.4
Copyright 2022 SIL International, Jonathan Kew and Khaled Hosny.
There is NO warranty. Redistribution of this software is
covered by the terms of both the XeTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the XeTeX source.
Primary author of XeTeX: Jonathan Kew.
Compiled with ICU version 70.1; using 70.1
Compiled with zlib version 1.2.11; using 1.2.11
Compiled with FreeType2 version 2.11.1; using 2.11.1
Compiled with Graphite2 version 1.3.14; using 1.3.14
Compiled with HarfBuzz version 3.4.0; using 3.4.0
Compiled with libpng version 1.6.37; using 1.6.37
Compiled with pplib version v2.05 less toxic i hope
Using Mac OS X Core Text and Cocoa frameworks
```
### Opción B: Tectonic (Ligero)
```console
$ brew install tectonic
$ tectonic --version
```
¿Qué elegir?
| Motor | Ventajas | Desventajas |
| -------- | ------------------------------------------------------- | ----------------------------------------------- |
| XeTeX | compatibilidad máxima; ecosistema maduro | descarga grande (4–6 GB) |
| Tectonic | huella inicial mínima; obtiene automáticamente paquetes | brechas ocasionales de compatibilidad con XeTeX |
Si encuentras problemas inexplicables de paquetes LaTeX o casos avanzados de
manejo de fuentes, vuelve a XeTeX.
## Crear y Construir un Currículum
Crea un currículum YAML inicial:
```console
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.
```
Edita `my-resume.yml` en tu editor y luego compila a PDF:
```console
$ yamlresume build my-resume.yml
◐ Generating resume PDF with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume PDF successfully.
```
Internamente YAMLResume:
1. transforma `my-resume.yml` a LaTeX (`my-resume.tex`).
2. invoca tu motor de composición (`xelatex` o `tectonic`).
3. produce `my-resume.pdf`.
## Actualizar
Mantente al día (nuevas plantillas, correcciones, mejoras i18n):
```console
$ brew update
$ brew upgrade yamlresume
```
## Desinstalar
```console
$ brew uninstall yamlresume
```
Elimina dependencias opcionales solo si ya no las necesitas (fuentes, motor TeX, etc.).
## Solución de Problemas
El modo detallado ayuda a diagnosticar problemas de compilación:
```console
$ yamlresume build --verbose my-resume.yml
```
Soluciones comunes:
* falta el motor de composición: instala MacTeX o usa Tectonic.
* permiso denegado al escribir archivos: asegúrate de estar en un directorio con permisos de escritura (evita rutas del sistema).
* errores extraños de LaTeX con Tectonic: vuelve a XeTeX (`brew install mactex`).
## Notas Finales
Estar incluido en Homebrew reduce la barrera de entrada y señala madurez del
proyecto. Si encuentras algún caso límite, abre un
[issue](https://github.com/yamlresume/yamlresume/issues/) o
[discussion](https://github.com/yamlresume/yamlresume/discussions)—iteramos
rápido. ¡Feliz hacking y que tus currículums sean siempre pixel perfect!
Por último, crédito nuevamente a [@chenrui333](https://github.com/chenrui333) por su
[PR inicial](https://github.com/Homebrew/homebrew-core/pull/246949) para incluir
YAMLResume en Homebrew.