Merge branch 'develop' of github.com:photoprism/photoprism into develop

This commit is contained in:
Weblate 2022-05-27 14:31:54 +02:00
commit bba1e81308
31 changed files with 585 additions and 557 deletions

View file

@ -20,7 +20,7 @@ The following non-exhaustive list provides specific guidelines and examples:
(a) Be respectful, be responsible, be kind, avoid asking for [deadlines](https://docs.photoprism.app/developer-guide/code-quality/#go-slow-before-you-go-fast).
(b) Do not feel entitled to free software, support, or advice if you are **not** a [contributor](https://docs.photoprism.app/developer-guide/), [sponsor](https://docs.photoprism.app/funding/), or paying customer.
(b) Do not feel entitled to free software, support, or advice if you are **not** a [contributor](https://docs.photoprism.app/developer-guide/), [sponsor](https://photoprism.app/membership), or paying customer.
(c) [Read the docs](https://docs.photoprism.app) and [determine the cause of your problem](https://docs.photoprism.app/getting-started/troubleshooting/) before opening invalid bug reports, starting a public "shitstorm" or insulting other community members in our chat rooms. Aside from being annoying for everyone, it also keeps our team from working on features and improvements that users like you are waiting for.

View file

@ -19,7 +19,7 @@ To get a first impression, you are welcome to play with our [public demo](https:
## Feature Overview ##
**Our mission is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible.** PhotoPrism was designed from the ground up to run wherever you need it, with no compromise on freedom, privacy, or functionality:
**Our mission is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible.** PhotoPrism was designed from the ground up to run wherever you need it, without compromising freedom, privacy, or functionality:
* Browse [all your photos](https://docs.photoprism.app/user-guide/organize/browse/) and [videos](https://try.photoprism.app/videos) without worrying about [RAW conversion, duplicates or video formats](https://docs.photoprism.app/user-guide/settings/library/)
* Easily find specific pictures using [powerful search filters](https://try.photoprism.app/browse?view=cards&q=flower%20color%3Ared)
@ -54,22 +54,23 @@ after going through a short list of [requirements](https://docs.photoprism.app/g
Existing users are advised to update their `docker-compose.yml` config based on our examples
available at [dl.photoprism.app/docker](https://dl.photoprism.app/docker/).
## Support Our Mission ##
## Support Our Mission 💎 ##
Back us on [Patreon](https://link.photoprism.app/patreon) or [GitHub Sponsors](https://link.photoprism.app/sponsor), help us fulfill our mission and enjoy our [member benefits](https://photoprism.app/membership)! 💎
**We encourage all of our users to [become a sponsor](https://photoprism.app/membership), as this allows us to make more features available to the public and remain independent.**
- Your continued support helps us provide regular updates and remain independent, so we can fulfill our mission and protect your privacy
- Sustained funding is also key to releasing new features requested by you and other community members
- Being **100% self-funded and independent**, we can personally promise you that we will never sell your data and that we will always be transparent about our software and services
We currently have the following sponsorship options:
Sponsors enjoy additional features, including access to [interactive world maps](https://demo.photoprism.app/places), and can join our private chat room to connect with [our team](https://photoprism.app/team) and other sponsors. We currently have the following sponsorship options:
- [GitHub Sponsors](https://link.photoprism.app/sponsor) is priced in USD and also offers [one-time donations](https://link.photoprism.app/donate)
- [Patreon](https://link.photoprism.app/patreon) is priced in Euro and also offers yearly payments
- Stripe will be available in 2022, so you can sign up directly in the app without having a Patreon or GitHub account
- You are welcome to [contact us](https://photoprism.app/contact) for [crypto donations](https://photoprism.app/crypto-donations), bank account details, and business partnerships
- Stripe will be available in 2022, so you can sign up directly in the app
Also, please [leave a star](https://github.com/photoprism/photoprism/stargazers) on GitHub if you like this project.
You are welcome to [contact us](https://photoprism.app/contact) for [crypto donations](https://photoprism.app/crypto-donations), bank account details, and business partnerships. Why your support matters:
- Your continued support helps us provide regular updates and remain independent, so we can fulfill our mission and protect your privacy
- Sustained funding is key to releasing new features requested by you and other community members in a timely manner
- Being **100% self-funded and independent**, we can personally promise you that we will never sell your data and that we will always be transparent about our software and services
Visit [photoprism.app/membership](https://photoprism.app/membership) to learn more. Also, please [leave a star](https://github.com/photoprism/photoprism/stargazers) on GitHub if you like this project.
It provides additional motivation to keep going.
## Getting Support ##
@ -80,13 +81,11 @@ Common problems can be quickly diagnosed and solved using the [Troubleshooting C
## Upcoming Features and Improvements ##
Our [Project Roadmap](https://link.photoprism.app/roadmap) shows what tasks are in progress, what needs testing, and which features are going to be implemented next. Please give ideas you like a thumbs-up 👍 , so that we know what is most popular.
Our [Project Roadmap](https://link.photoprism.app/roadmap) shows what tasks are in progress and what features will be implemented next. You are invited to give ideas you like a thumbs-up, so we know what's most popular.
We have a zero-bug policy and do our best to help users when they need support or have other questions. This comes at a price as we can't give exact deadlines for new features.
Be aware that we have a zero-bug policy and do our best to help users when they need support or have other questions. This comes at a price though, as we can't give exact release dates for new features. Our team receives many more requests than can be implemented, so we want to emphasize that we are in no way obligated to implement the features, improvements, or other changes you request. We do, however, appreciate your feedback and carefully consider all requests.
Since our team receives many more requests than can be implemented, and for the avoidance of doubt, we also want to emphasize that we are in no way obligated to implement the features, improvements, or other changes you request. We do, however, appreciate your feedback and carefully consider all requests.
**Because sustained funding is key to releasing new features, we encourage all users to [sign up as a sponsor](https://link.photoprism.app/sponsor). Ultimately, that's what's best for the product and the community.**
**Because sustained funding is key to releasing new features in a timely manner, we encourage you to support our mission by [signing up as a sponsor](https://link.photoprism.app/sponsor) or purchasing a commercial license. Ultimately, that's what's best for the product and the community.**
## GitHub Issues ⚠️ ##

View file

@ -1,17 +1,14 @@
# A Big Thank You to All Our Sponsors! 💎 #
PhotoPrism is 100% self-funded and independent. Your continued support helps us provide [regular updates](https://docs.photoprism.app/release-notes/)
and services like [world maps](https://try.photoprism.app/places).
We currently have the following sponsorship options:
**PhotoPrism is 100% self-funded and independent.** Your [continued support](https://photoprism.app/membership) helps us provide [regular updates](https://docs.photoprism.app/release-notes/) and remain independent.
- [GitHub Sponsors](https://link.photoprism.app/sponsor) is priced in USD and also
offers [one-time donations](https://link.photoprism.app/donate)
Sponsors enjoy additional features, including access to [interactive world maps](https://try.photoprism.app/places), and can join our private chat room to connect with [our team](https://photoprism.app/team) and other sponsors. We currently have the following sponsorship options:
- [GitHub Sponsors](https://link.photoprism.app/sponsor) is priced in USD and also offers [one-time donations](https://link.photoprism.app/donate)
- [Patreon](https://link.photoprism.app/patreon) is priced in Euro and also offers yearly payments
- Stripe will be available in early 2022, so you can sign up directly in the app without having a Patreon or GitHub
account
- You are welcome to [contact us](https://photoprism.app/contact) for [crypto donations](https://photoprism.app/crypto-donations), bank account details, and business partnerships
- Stripe will be available in 2022, so you can sign up directly in the app
Visit [docs.photoprism.app/funding](https://docs.photoprism.app/funding/) to learn more.
You are welcome to [contact us](https://photoprism.app/contact) for [crypto donations](https://photoprism.app/crypto-donations), bank account details, and business partnerships. Visit [photoprism.app/membership](https://photoprism.app/membership) to learn more.
## Platinum Sponsors ##

View file

@ -1,7 +1,7 @@
<div id="photoprism" class="container{{if .config.SiteCaption}} theme-{{ .config.Settings.UI.Theme }}{{end}}">
<div id="photoprism" class="splash-screen container{{if .config.SiteCaption}} theme-{{ .config.Settings.UI.Theme }}{{end}}">
<noscript>
<div id="noscript-info" class="splash-info">
<a href="https://enable-javascript.com/" target="_blank">Need help enabling JavaScript?</a>
<a href="https://enable-javascript.com/" target="_blank">Please enable JavaScript in your browser.</a>
</div>
</noscript>
<div id="splash-info" class="has-js splash-info">
@ -9,13 +9,13 @@
{{if .config.ImprintUrl}}<a href="{{ .config.ImprintUrl }}" target="_blank" class="imprint">{{ .config.Imprint }}</a>
{{else}}<span class="imprint">{{ .config.Imprint }}</span>{{end}}
{{else}}
<span class="quote-0">One picture is worth a thousand words...</span>
<span class="quote-1">It's not the camera, but who's behind the camera...</span>
<span class="quote-2">The pictures you want tomorrow, you have to take today...</span>
<span class="quote-3">A camera captures light, our mind captures images...</span>
<span class="quote-4">If you can shoot on the street you can shoot anything. &ndash; Mary Ellen Mark</span>
<span class="quote-5">When asked what equipment you use, say it's your eyes...</span>
<span class="quote-6">Photography is the only language that can be understood anywhere in the world. &ndash; Bruno Barbey</span>
<span class="quote-0">One picture is worth a thousand words.</span>
<span class="quote-1">It's not the camera, but who's behind the camera.</span>
<span class="quote-2">The pictures you want tomorrow, you have to take today.</span>
<span class="quote-3">A camera captures light, our mind captures images.</span>
<span class="quote-4">If you can shoot on the street you can shoot anything.</span>
<span class="quote-5">When asked what equipment you use, say it's your eyes.</span>
<span class="quote-6">Photography is the only language that can be understood anywhere in the world.</span>
{{end}}
</div>
<script>
@ -23,7 +23,10 @@
el.classList.add("day-" + new Date().getDay());
el.style.setProperty("display", "block");
</script>
<div class="loading-logo elevation-3">
<div class="loading-animation">
<div class="loading-circle"></div>
</div>
<div class="loading-logo">
{{if eq .config.AppIcon "crisp"}}
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 264 264"><defs><linearGradient id="a" x1="45.04" y1="231.72" x2="231.72" y2="45.04" gradientUnits="userSpaceOnUse" gradientTransform="translate(-6.38 -6.38)"><stop offset="0" stop-color="#fff"/><stop offset="0" stop-color="#9afbfe"/><stop offset="1" stop-color="#ffb3e0"/></linearGradient></defs><circle cx="132" cy="132" r="132" style="fill:url(#a)"/><path d="m223.19 175.51-4 24.19M40.91 176.5l14.81 14m95.76-137.65L55.62 190.31a.09.09 0 0 0 .07.15l163.41 9.37a.09.09 0 0 0 .09-.13L151.62 52.87a.1.1 0 0 0-.14-.02zm-19.74-13.29L40.8 176.31a.13.13 0 0 0 .11.19l182.18-.8a.12.12 0 0 0 .1-.19L131.95 39.56a.12.12 0 0 0-.21 0zm.11-.16 19.77 13.32" style="fill:none;stroke:#1d1d1b;stroke-width:5px;stroke-miterlimit:10"/></svg>
{{else if eq .config.AppIcon "mint"}}
@ -34,9 +37,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 264 264"><defs><linearGradient id="a" x1="45.04" y1="231.72" x2="231.72" y2="45.04" gradientUnits="userSpaceOnUse" gradientTransform="translate(-6.38 -6.38)"><stop offset="0" stop-color="#fff"/><stop offset="0" stop-color="#b8edff"/><stop offset="1" stop-color="#d4b8ff"/></linearGradient></defs><circle cx="132" cy="132" r="132" style="fill:url(#a)"/><path data-name="Logo Pfad" d="m223.19 175.51-4 24.19M40.91 176.5l14.81 14m95.76-137.65L55.62 190.31a.09.09 0 0 0 .07.15l163.41 9.37a.09.09 0 0 0 .09-.13L151.62 52.87a.1.1 0 0 0-.14-.02zm-19.74-13.29L40.8 176.31a.13.13 0 0 0 .11.19l182.18-.8a.12.12 0 0 0 .1-.19L131.95 39.56a.12.12 0 0 0-.21 0zm.11-.16 19.77 13.32" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10;stroke-width:6px;shape-rendering:geometricPrecision"/></svg>
{{end}}
</div>
<div class="loading-dots">
<span class="dots-animation dot one">.</span><span class="dots-animation dot two">.</span><span class="dots-animation dot three">.</span>
</div>
</div>
<div id="busy-overlay"></div>

View file

@ -60,4 +60,4 @@ applications like PhotoPrism. It also effectively helps avoid "works for me" mom
An [unofficial port](https://docs.photoprism.app/getting-started/freebsd/) is available for FreeBSD / FreeNAS users.
You are invited to contribute by [building and testing standalone packages](https://docs.photoprism.app/developer-guide/) for Linux distributions and other operating systems.
Updates are [released several times a month](https://docs.photoprism.app/release-notes/), so maintaining the long list of dependencies for additional environments would currently consume too many of [our resources](https://docs.photoprism.app/funding/).
Updates are [released several times a month](https://docs.photoprism.app/release-notes/), so maintaining the long list of dependencies for additional environments would currently consume too many of [our resources](https://photoprism.app/membership).

File diff suppressed because it is too large Load diff

View file

@ -23,7 +23,7 @@
</v-btn>
</template>
<v-list class="nav-menu navigation dark elevation-2">
<v-list dark class="nav-menu navigation elevation-2">
<v-list-tile to="/browse" class="clickable nav-menu-browse">
<v-list-tile-content>
<v-list-tile-title>
@ -100,8 +100,8 @@
<img :src="appIcon" :alt="appName" :class="{'animate-hue': indexing}">
</v-list-tile-avatar>
<v-list-tile-content>
<v-list-tile-title class="title tm">
<strong>Photo</strong>Prism<span v-if="appName === 'PhotoPrism+'" class="plus">+</span><span v-else-if="appNameSuffix !== ''"> {{ appNameSuffix }}</span>
<v-list-tile-title class="title">
{{ appName }}
</v-list-tile-title>
</v-list-tile-content>
<v-list-tile-action class="hidden-sm-and-down" :title="$gettext('Minimize')">
@ -656,7 +656,7 @@ export default {
return user.PrimaryEmail ? user.PrimaryEmail : this.$gettext("Account");
},
showNavMenu() {
return (this.isDemo || this.session.auth || this.isTest);
return (this.session.auth || this.isDemo || this.isTest);
},
},
created() {

View file

@ -119,33 +119,6 @@ footer {
line-height: 1.8em;
}
#photoprism .tm {
letter-spacing: normal;
font-weight: 600;
}
#photoprism .tm strong {
font-weight: 600;
}
#photoprism .tm sup,
#photoprism .tm span {
letter-spacing: normal;
}
#photoprism .tm sup {
font-size: 9px;
font-weight: 600;
top: -9px;
}
#photoprism .tm sup.plus {
font-size: 17px;
font-weight: 500;
left: -1px;
top: -8px;
}
main {
padding: 0;
margin: 0;

View file

@ -8,7 +8,7 @@ nav .v-list__tile__title.title {
#p-navigation .nav-title {
text-align: left;
font-weight: bold;
/* font-weight: bold; */
font-size: 18px;
-webkit-box-flex: 1!important;
-ms-flex-positive: 1!important;
@ -150,8 +150,21 @@ nav .v-list__tile__title.title {
}
#photoprism .nav-menu {
padding: 0;
padding: 8px 0;
background-color: #181818;
border: 1px solid hsla(0,0%,9%,.8);
border-radius: 8px;
}
#photoprism .nav-menu a {
color: white;
font-size: 14px;
font-weight: 500;
}
#photoprism .nav-menu .v-list__tile .v-icon {
font-size: 22px;
line-height: 1;
}
#p-navigation .nav-menu-trigger {
@ -163,8 +176,8 @@ nav .v-list__tile__title.title {
}
#photoprism .nav-menu .v-list__tile {
padding: 0 24px 0 24px;
height: 54px;
padding: 0 16px 0 16px;
height: 42px;
}
#photoprism .nav-menu .v-list__tile .v-list__tile__title {
@ -177,7 +190,7 @@ nav .v-list__tile__title.title {
}
#photoprism .nav-menu .v-list__tile__content {
min-width: 146px;
min-width: 104px;
}
/*
@ -195,4 +208,4 @@ nav .v-list__tile__title.title {
#photoprism .sidenav-visible .nav-small .v-toolbar__content {
opacity: 0.48;
}
*/
*/

View file

@ -9,7 +9,10 @@
right: 0;
margin: 0;
padding: 0;
background-image: linear-gradient(160deg, #ffffff 0%, #e2daf1 100%);
}
#photoprism.container.splash-screen {
background: #131313;
}
#photoprism div.logo-large {
@ -40,12 +43,19 @@
display: block;
}
#photoprism div.loading-animation,
#photoprism div.loading-logo,
#photoprism div.loading-logo svg {
width: 35vh;
height: 35vh;
max-width: 65vw;
max-height: 65vw;
width: 33vh;
height: 33vh;
max-width: 60vw;
max-height: 60vw;
}
#photoprism div.loading-logo svg {
-webkit-animation: hue 4s infinite linear;
-moz-animation: hue 4s infinite linear;
animation: hue 4s infinite linear;
}
#photoprism .loading-dots {
@ -77,8 +87,6 @@
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 264px;
height: 264px;
z-index: 2;
margin: 0;
padding: 0;
@ -98,15 +106,15 @@
right: 0;
z-index: 0;
overflow: hidden;
border-top: 6px #d48af4 solid;
border-right: 6px #a990ec solid;
border-bottom: 6px #86c8ed solid;
border-left: 6px #a3ddf4 solid;
border-top: 5px #7e29ff solid;
border-right: 5px #6d02ff solid;
border-bottom: 5px #5812fa solid;
border-left: 5px #7C4DFF solid;
border-radius: 50%;
-webkit-transform-origin: center center;
transform-origin: center center;
-webkit-animation: circle-animation 1s infinite linear;
animation: circle-animation 1s infinite linear;
-webkit-animation: circle-animation 1.5s infinite linear;
animation: circle-animation 1.5s infinite linear;
}
#photoprism div.loading-animation .loading-overlay {
@ -149,24 +157,16 @@
#loading-info,
#photoprism .splash-info {
position: fixed;
padding: 10px 10px;
border-radius: 10px;
min-width: 280px;
width: auto;
padding: 24px;
height: auto;
left: 50%;
transform: translateX(-50%);
background-color: rgba(239, 239, 235, 0.56);
text-align: center;
}
#photoprism .splash-info {
border-top-right-radius: 0;
border-top-left-radius: 0;
top: 0;
left: 50%;
right: auto;
width: auto;
bottom: 0;
left: 0;
right: 0;
}
#splash-info > span {
@ -189,12 +189,7 @@
#splash-info {
display: none;
font-weight: bold;
}
#noscript-info {
display: block;
font-weight: bold;
font-weight: 400;
}
#loading-info {
@ -204,13 +199,31 @@
#loading-info span,
#loading-info a,
#photoprism .splash-info span,
#photoprism .splash-info a {
text-align: center;
.splash-info span,
.splash-info a {
text-decoration: none;
font-size: 15px;
color: #101010;
width: auto;
padding: 0;
margin: 0;
}
#splash-info {
text-align: center;
color: #7c7c78;
}
#noscript-info {
display: block;
text-align: center;
}
#noscript-info a {
color: #bbbbb5;
}
#noscript-info.splash-info,
#noscript-info.splash-info a {
font-weight: 500;
font-size: 16px;
}

View file

@ -70,7 +70,7 @@ export default {
this.$emit('close');
},
signUp() {
window.open("https://link.photoprism.app/patreon", "_blank");
window.open("https://photoprism.app/membership", "_blank");
this.$emit('close');
},
},

View file

@ -1719,7 +1719,7 @@ msgid "Other"
msgstr ""
#: src/pages/about/about.vue:15
msgid "Our vision is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible."
msgid "Our mission is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible."
msgstr ""
#: src/options/options.js:286

View file

@ -1774,7 +1774,7 @@ msgid "Other"
msgstr ""
#: src/pages/about/about.vue:15
msgid "Our vision is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible."
msgid "Our mission is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible."
msgstr ""
#: src/options/options.js:298

View file

@ -1597,7 +1597,7 @@ msgstr "هی تر"
#: src/pages/about/about.vue:15
msgid ""
"Our vision is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible."
"Our mission is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible."
msgstr ""
"دنیا بینیمان ئەوەیە کە زۆرترین چارەسەری بەکارهێنەر بۆ گەڕان و ڕێکخستن و "
"هاوبەشکردنی کۆکراوەی فۆتۆ دابین بکەین."

View file

@ -1735,7 +1735,7 @@ msgid "Other"
msgstr ""
#: src/pages/about/about.vue:15
msgid "Our vision is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible."
msgid "Our mission is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible."
msgstr ""
#: src/options/options.js:286

View file

@ -1785,7 +1785,7 @@ msgid "Other"
msgstr ""
#: src/pages/about/about.vue:15
msgid "Our vision is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible."
msgid "Our mission is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible."
msgstr ""
#: src/options/options.js:307

View file

@ -1763,7 +1763,7 @@ msgid "Other"
msgstr "Altele"
#: src/pages/about/about.vue:15
msgid "Our vision is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible."
msgid "Our mission is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible."
msgstr ""
"Viziunea noastră este să oferim cea mai prietenoasă soluție pentru "
"utilizator și confidențialitate pentru a vă păstra fotografiile organizate "

View file

@ -1587,7 +1587,7 @@ msgstr "Ostatné"
#: src/pages/about/about.vue:15
msgid ""
"Our vision is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible."
"Our mission is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible."
msgstr ""
"Našou víziou je poskytnúť používateľsky najprívetivejšie riešenie na "
"prehliadanie, organizovanie a zdieľanie vašej zbierky fotografií."

View file

@ -1748,7 +1748,7 @@ msgid "Other"
msgstr ""
#: src/pages/about/about.vue:15
msgid "Our vision is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible."
msgid "Our mission is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible."
msgstr ""
#: src/options/options.js:286

View file

@ -1,14 +1,9 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: ci@photoprism.app\n"
"PO-Revision-Date: 2022-05-27 12:17+0000\n"
"Last-Translator: ppnplus <djbestppntube@icloud.com>\n"
"Language: th\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.12.2\n"
"Generated-By: easygettext\n"
#: src/dialog/photo/labels.vue:164
@ -18,25 +13,25 @@ msgstr ""
#: src/pages/albums.vue:386
#: src/share/albums.vue:305
msgid "%{n} albums found"
msgstr "พบ %{n} อัลบั้ม"
msgstr ""
#: src/dialog/share/upload.vue:76
msgid "%{n} files uploaded"
msgstr "อัปโหลดแล้ว %{n} ไฟล์"
msgstr ""
#: src/pages/library/files.vue:303
msgid "%{n} folders found"
msgstr "พบ %{n} โฟลเดอร์"
msgstr ""
#: src/pages/labels.vue:381
msgid "%{n} labels found"
msgstr "พบ %{n} ป้ายกำกับ"
msgstr ""
#: src/pages/people/faces.vue:286
#: src/pages/people/faces.vue:372
#: src/pages/people/subjects.vue:470
msgid "%{n} people found"
msgstr "พบ %{n} บุคคล"
msgstr ""
#: src/pages/album/photos.vue:194
#: src/pages/album/photos.vue:346
@ -45,23 +40,23 @@ msgstr "พบ %{n} บุคคล"
#: src/share/photos.vue:209
#: src/share/photos.vue:354
msgid "%{n} pictures found"
msgstr "พบ %{n} รูปภาพ"
msgstr ""
#: src/options/options.js:392
msgid "1 hour"
msgstr "1 ชั่วโมง"
msgstr ""
#: src/options/options.js:394
msgid "12 hours"
msgstr "12 ชั่วโมง"
msgstr ""
#: src/options/options.js:393
msgid "4 hours"
msgstr "4 ชั่วโมง"
msgstr ""
#: src/dialog/share.vue:73
msgid "A click will copy it to your clipboard."
msgstr "การคลิกครั้งเดียวจะเป็นการคัดลอกไปยังคลิปบอร์ด"
msgstr ""
#: src/component/navigation.vue:457
#: src/component/navigation.vue:27
@ -69,7 +64,7 @@ msgstr "การคลิกครั้งเดียวจะเป็นก
#: src/pages/about/about.vue:179
#: src/pages/help.vue:45
msgid "About"
msgstr "เกี่ยวกับ"
msgstr ""
#: src/options/options.js:225
msgid "Abyss"
@ -80,25 +75,25 @@ msgstr ""
#: src/model/account.js:98
#: src/pages/settings.vue:74
msgid "Account"
msgstr "บัญชี"
msgstr ""
#: src/dialog/photo/info.vue:159
msgid "Accuracy"
msgstr "ความแม่นยำ"
msgstr ""
#: src/dialog/photo/labels.vue:23
msgid "Action"
msgstr "การกระทำ"
msgstr ""
#: src/dialog/photo/files.vue:28
#: src/dialog/photo/files.vue:25
msgid "Actions"
msgstr "การกระทำ"
msgstr ""
#: src/pages/albums.vue:122
#: src/pages/albums.vue:178
msgid "Add Album"
msgstr "เพิ่มอัลบั้ม"
msgstr ""
#: src/pages/settings/general.vue:141
msgid "Add files to your library via Web Upload."
@ -106,7 +101,7 @@ msgstr ""
#: src/dialog/share.vue:91
msgid "Add Link"
msgstr "เพิ่มลิงก์"
msgstr ""
#: src/pages/albums.vue:96
msgid "Add pictures from search results by selecting them."
@ -115,7 +110,7 @@ msgstr ""
#: src/dialog/account/add.vue:6
#: src/pages/settings/sync.vue:47
msgid "Add Server"
msgstr "เพิ่มเซิร์ฟเวอร์"
msgstr ""
#: src/component/album/clipboard.vue:136
#: src/component/file/clipboard.vue:89
@ -124,36 +119,36 @@ msgstr "เพิ่มเซิร์ฟเวอร์"
#: src/component/subject/clipboard.vue:89
#: src/dialog/photo/album.vue:20
msgid "Add to album"
msgstr "เพิ่มไปยังอัลบั้ม"
msgstr ""
#: src/dialog/photo/files.vue:189
#: src/dialog/photo/files.vue:186
msgid "Added"
msgstr "เพิ่มแล้ว"
msgstr ""
#: src/pages/settings.vue:52
msgid "Advanced"
msgstr "ขั้นสูง"
msgstr ""
#: src/options/options.js:402
msgid "After 1 day"
msgstr "หลังจาก 1 วัน"
msgstr ""
#: src/options/options.js:403
msgid "After 3 days"
msgstr "หลังจาก 3 วัน"
msgstr ""
#: src/options/options.js:404
msgid "After 7 days"
msgstr "หลังจาก 7 วัน"
msgstr ""
#: src/options/options.js:406
msgid "After one month"
msgstr "หลังจากหนึ่งเดือน"
msgstr ""
#: src/options/options.js:408
msgid "After one year"
msgstr "หลังจากหนึ่งปี"
msgstr ""
#: src/pages/albums.vue:40
#: src/pages/albums.vue:1
@ -162,20 +157,20 @@ msgstr ""
#: src/options/options.js:407
msgid "After two months"
msgstr "หลังจากสองเดือน"
msgstr ""
#: src/options/options.js:405
msgid "After two weeks"
msgstr "หลังจากสองสัปดาห์"
msgstr ""
#: src/model/album.js:229
msgid "Album"
msgstr "อัลบั้ม"
msgstr ""
#: src/dialog/photo/album.vue:71
#: src/dialog/photo/album.vue:79
msgid "Album Name"
msgstr "ชื่ออัลบั้ม"
msgstr ""
#: src/app/routes.js:128
#: src/app/routes.js:135
@ -185,11 +180,11 @@ msgstr "ชื่ออัลบั้ม"
#: src/component/navigation.vue:812
#: src/share/albums.vue:4
msgid "Albums"
msgstr "อัลบั้ม"
msgstr ""
#: src/component/album/clipboard.vue:77
msgid "Albums deleted"
msgstr "ลบอัลบั้มแล้ว"
msgstr ""
#: src/pages/albums.vue:263
#: src/share/albums.vue:220
@ -207,7 +202,7 @@ msgstr ""
#: src/component/album/toolbar.vue:36
#: src/component/photo/toolbar.vue:36
msgid "All Cameras"
msgstr "กล้องทั้งหมด"
msgstr ""
#: src/component/photo/toolbar.vue:39
#: src/pages/albums.vue:29
@ -215,40 +210,40 @@ msgstr "กล้องทั้งหมด"
#: src/share/albums.vue:27
#: src/share/albums.vue:410
msgid "All Categories"
msgstr "หมวดหมู่ทั้งหมด"
msgstr ""
#: src/component/photo/toolbar.vue:38
msgid "All Colors"
msgstr "สีทั้งหมด"
msgstr ""
#: src/component/album/toolbar.vue:40
#: src/component/photo/toolbar.vue:35
msgid "All Countries"
msgstr "ประเทศทั้งหมด"
msgstr ""
#: src/pages/about/feedback.vue:31
msgid "All fields are required"
msgstr "ต้องกรอกให้ครบทุกช่อง"
msgstr ""
#: src/pages/library/import.vue:12
msgid "All files from import folder"
msgstr "ทุกไฟล์จากโฟลเดอร์นำเข้า"
msgstr ""
#: src/component/photo/toolbar.vue:37
msgid "All Lenses"
msgstr "เลนส์ทั้งหมด"
msgstr ""
#: src/component/photo/toolbar.vue:40
msgid "All Months"
msgstr "เดือนทั้งหมด"
msgstr ""
#: src/pages/library/index.vue:12
msgid "All originals"
msgstr "ต้นฉบับทั้งหมด"
msgstr ""
#: src/component/photo/toolbar.vue:41
msgid "All Years"
msgstr "ปีทั้งหมด"
msgstr ""
#: src/pages/about/about.vue:34
msgid "Also, please leave a star on GitHub if you like this project. It provides additional motivation to keep going."
@ -268,7 +263,7 @@ msgstr ""
#: src/common/api.js:100
msgid "An error occurred - are you offline?"
msgstr "เกิดข้อผิดพลาด คุณออฟไลน์อยู่หรือเปล่า?"
msgstr ""
#: src/component/navigation.vue:149
#: src/component/photo/cards.vue:228
@ -282,29 +277,29 @@ msgstr "เกิดข้อผิดพลาด คุณออฟไลน
#: src/share/photo/list.vue:176
#: src/share/photo/mosaic.vue:182
msgid "Animated"
msgstr "เคลื่อนไหว"
msgstr ""
#: src/pages/settings/general.vue:533
msgid "Animation"
msgstr "แอนิเมชัน"
msgstr ""
#: src/dialog/share.vue:74
msgid "Any private photos and videos remain private and won't be shared."
msgstr "รูปภาพและวิดีโอส่วนตัวทั้งหมดจะยังคงเป็นส่วนตัว และจะไม่แชร์กับผู้อื่น"
msgstr ""
#: src/dialog/account/edit.vue:477
msgid "API Key"
msgstr "กุญแจ API"
msgstr ""
#: src/dialog/photo/details.vue:117
msgid "Apply"
msgstr "ปรับใช้"
msgstr ""
#: src/component/photo/cards.vue:458
#: src/component/photo/clipboard.vue:100
#: src/dialog/photo/details.vue:116
msgid "Approve"
msgstr "อนุมัติ"
msgstr ""
#: src/app/routes.js:209
#: src/component/navigation.vue:182
@ -344,32 +339,30 @@ msgstr ""
#: src/dialog/confirm.vue:10
msgid "Are you sure?"
msgstr "คุณแน่ใจหรือไม่?"
msgstr ""
#: src/dialog/photo/details.vue:497
msgid "Artist"
msgstr "ศิลปิน"
msgstr ""
#: src/dialog/photo/files.vue:149
#: src/dialog/photo/files.vue:146
msgid "Aspect Ratio"
msgstr "อัตราส่วน"
msgstr ""
#: src/pages/settings/library.vue:114
msgid "Automatically create JPEGs for other file types so that they can be displayed in a browser."
msgstr ""
"สร้างไฟล์ JPEG สำหรับไฟล์ประเภทอื่น ๆ "
"โดยอัตโนมัติเพื่อให้สามารถแสดงผลในเบราว์เซอร์"
#: src/pages/settings/general.vue:361
msgid "Automatically creates albums of special moments, trips, and places."
msgstr "สร้างอัลบั้มของช่วงเวลาพิเศษ การเดินทาง และสถานที่ต่าง ๆ โดยอัตโนมัติ"
msgstr ""
#: src/dialog/sponsor.vue:7
#: src/pages/about/about.vue:23
#: src/pages/auth/login.vue:44
msgid "Become a sponsor"
msgstr "มาเป็นผู้สนับสนุน"
msgstr ""
#: src/pages/about/about.vue:42
msgid "Before submitting a support request, please use our Troubleshooting Checklists to determine the cause of your problem."
@ -377,11 +370,11 @@ msgstr ""
#: src/pages/people/subjects.vue:433
msgid "Bio"
msgstr "ไปโอ"
msgstr ""
#: src/options/options.js:427
msgid "Black"
msgstr "สีดำ"
msgstr ""
#: src/options/options.js:440
msgid "Blackman: Lanczos Modification, Less Ringing Artifacts"
@ -389,11 +382,11 @@ msgstr ""
#: src/options/options.js:423
msgid "Blue"
msgstr "สีฟ้า"
msgstr ""
#: src/options/options.js:424
msgid "Brown"
msgstr "สีน้ำตาล"
msgstr ""
#: src/pages/settings/general.vue:383
msgid "Browse and edit image classification labels."
@ -416,7 +409,7 @@ msgstr ""
#: src/component/navigation.vue:301
#: src/component/navigation.vue:1174
msgid "Calendar"
msgstr "ปฏิทิน"
msgstr ""
#: src/component/photo/cards.vue:557
#: src/component/photo/list.vue:57
@ -425,7 +418,7 @@ msgstr "ปฏิทิน"
#: src/share/photo/cards.vue:388
#: src/share/photo/list.vue:53
msgid "Camera"
msgstr "กล้อง"
msgstr ""
#: src/dialog/photo/info.vue:79
msgid "Camera Serial"
@ -470,23 +463,23 @@ msgstr ""
#: src/pages/library/import.vue:34
#: src/pages/library/index.vue:27
msgid "Cancel"
msgstr "ยกเลิก"
msgstr ""
#: src/component/album/toolbar.vue:51
#: src/component/photo/toolbar.vue:46
msgid "Cards"
msgstr "การ์ด"
msgstr ""
#: src/component/photo/toolbar.vue:343
#: src/dialog/album/edit.vue:162
#: src/pages/about/feedback.vue:108
#: src/pages/albums.vue:129
msgid "Category"
msgstr "หมวดหมู่"
msgstr ""
#: src/pages/settings/account.vue:26
msgid "Change"
msgstr "เปลี่ยน"
msgstr ""
#: src/pages/settings/general.vue:185
msgid "Change photo titles, locations, and other metadata."
@ -510,7 +503,7 @@ msgstr ""
#: src/dialog/share.vue:87
#: src/pages/library/errors.vue:60
msgid "Close"
msgstr "ปิด"
msgstr ""
#: src/dialog/photo/files.vue:95
#: src/dialog/photo/files.vue:92
@ -519,16 +512,16 @@ msgstr ""
#: src/component/photo/toolbar.vue:320
msgid "Color"
msgstr "สี"
msgstr ""
#: src/dialog/photo/files.vue:163
#: src/dialog/photo/files.vue:160
msgid "Color Profile"
msgstr "โปรไฟล์สี"
msgstr ""
#: src/pages/discover.vue:4
msgid "Colors"
msgstr "สี"
msgstr ""
#: src/pages/library/index.vue:123
msgid "Complete Rescan"
@ -536,20 +529,20 @@ msgstr ""
#: src/dialog/photo/labels.vue:22
msgid "Confidence"
msgstr "ค่าความมั่นใจ"
msgstr ""
#: src/dialog/account/add.vue:18
msgid "Connect"
msgstr "เชื่อมต่อ"
msgstr ""
#: src/dialog/webdav.vue:4
#: src/pages/settings/sync.vue:43
msgid "Connect via WebDAV"
msgstr "เชื่อมต่อผ่าน WebDAV"
msgstr ""
#: src/pages/about/feedback.vue:7
msgid "Contact Us"
msgstr "ติดต่อเรา"
msgstr ""
#: src/pages/albums.vue:93
#: src/pages/labels.vue:74
@ -565,11 +558,11 @@ msgstr ""
#: src/pages/settings/library.vue:113
msgid "Convert to JPEG"
msgstr "แปลงเป็น JPEG"
msgstr ""
#: src/pages/library/index.vue:163
msgid "Converting"
msgstr "กำลังแปลง"
msgstr ""
#: src/dialog/share.vue:58
#: src/dialog/webdav.vue:36
@ -578,25 +571,25 @@ msgstr ""
#: src/dialog/photo/details.vue:520
msgid "Copyright"
msgstr "ลิขสิทธิ์"
msgstr ""
#: src/component/photo/list.vue:38
#: src/share/photo/list.vue:38
msgid "Couldn't find anything."
msgstr "ไม่พบอะไรเลย"
msgstr ""
#: src/component/photo/toolbar.vue:184
#: src/dialog/photo/details.vue:240
msgid "Country"
msgstr "ประเทศ"
msgstr ""
#: src/dialog/photo/album.vue:21
msgid "Create album"
msgstr "สร้างอัลบั้ม"
msgstr ""
#: src/dialog/photo/info.vue:167
msgid "Created"
msgstr "สร้างเมื่อ"
msgstr ""
#: src/pages/library/index.vue:169
msgid "Creating thumbnails for"
@ -1783,7 +1776,7 @@ msgid "Other"
msgstr ""
#: src/pages/about/about.vue:15
msgid "Our vision is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible."
msgid "Our mission is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible."
msgstr ""
#: src/options/options.js:315

View file

@ -1754,7 +1754,7 @@ msgid "Other"
msgstr ""
#: src/pages/about/about.vue:15
msgid "Our vision is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible."
msgid "Our mission is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible."
msgstr ""
#: src/options/options.js:286

File diff suppressed because one or more lines are too long

View file

@ -176,7 +176,7 @@ msgstr ""
#: src/component/navigation.vue:195
#: src/component/navigation.vue:205
#: src/component/navigation.vue:4
#: src/component/navigation.vue:812
#: src/component/navigation.vue:802
#: src/share/albums.vue:4
msgid "Albums"
msgstr ""
@ -406,7 +406,7 @@ msgstr ""
#: src/app/routes.js:141
#: src/app/routes.js:148
#: src/component/navigation.vue:301
#: src/component/navigation.vue:1174
#: src/component/navigation.vue:1164
msgid "Calendar"
msgstr ""
@ -469,7 +469,7 @@ msgstr ""
msgid "Cards"
msgstr ""
#: src/component/photo/toolbar.vue:343
#: src/component/photo/toolbar.vue:344
#: src/dialog/album/edit.vue:162
#: src/pages/about/feedback.vue:108
#: src/pages/albums.vue:129
@ -509,7 +509,7 @@ msgstr ""
msgid "Codec"
msgstr ""
#: src/component/photo/toolbar.vue:320
#: src/component/photo/toolbar.vue:321
msgid "Color"
msgstr ""
@ -645,7 +645,7 @@ msgstr ""
#: src/dialog/photo/delete.vue:18
#: src/dialog/photo/files.vue:41
#: src/dialog/photo/files.vue:38
#: src/dialog/share.vue:234
#: src/dialog/share.vue:235
#: src/pages/library/errors.vue:94
#: src/pages/settings/general.vue:206
msgid "Delete"
@ -903,7 +903,7 @@ msgstr ""
msgid "Exclude hidden"
msgstr ""
#: src/component/navigation.vue:491
#: src/component/navigation.vue:481
msgid "Expand"
msgstr ""
@ -963,7 +963,7 @@ msgstr ""
#: src/app/routes.js:174
#: src/component/navigation.vue:275
#: src/component/navigation.vue:1086
#: src/component/navigation.vue:1076
msgid "Favorites"
msgstr ""
@ -1027,7 +1027,7 @@ msgstr ""
#: src/app/routes.js:154
#: src/app/routes.js:161
#: src/component/navigation.vue:361
#: src/component/navigation.vue:1382
#: src/component/navigation.vue:1372
msgid "Folders"
msgstr ""
@ -1261,7 +1261,7 @@ msgstr ""
#: src/app/routes.js:260
#: src/component/navigation.vue:348
#: src/component/navigation.vue:1337
#: src/component/navigation.vue:1327
#: src/dialog/photo/edit.vue:39
#: src/dialog/photo/edit.vue:6
#: src/dialog/photo/edit.vue:215
@ -1304,7 +1304,7 @@ msgstr ""
#: src/component/navigation.vue:387
#: src/component/navigation.vue:397
#: src/component/navigation.vue:4
#: src/component/navigation.vue:1474
#: src/component/navigation.vue:1464
#: src/pages/settings.vue:41
#: src/pages/settings/general.vue:404
msgid "Library"
@ -1377,15 +1377,15 @@ msgid "Log messages appear here whenever PhotoPrism comes across broken files, o
msgstr ""
#: src/component/navigation.vue:487
#: src/component/navigation.vue:1810
#: src/component/navigation.vue:1800
msgid "Login"
msgstr ""
#: src/component/navigation.vue:55
#: src/component/navigation.vue:534
#: src/component/navigation.vue:53
#: src/component/navigation.vue:1920
#: src/component/navigation.vue:1951
#: src/component/navigation.vue:1910
#: src/component/navigation.vue:1941
msgid "Logout"
msgstr ""
@ -1436,7 +1436,7 @@ msgstr ""
msgid "Message sent"
msgstr ""
#: src/component/navigation.vue:444
#: src/component/navigation.vue:434
msgid "Minimize"
msgstr ""
@ -1448,7 +1448,7 @@ msgstr ""
#: src/app/routes.js:115
#: src/app/routes.js:122
#: src/component/navigation.vue:288
#: src/component/navigation.vue:1129
#: src/component/navigation.vue:1119
#: src/pages/settings/general.vue:360
msgid "Moments"
msgstr ""
@ -1679,7 +1679,7 @@ msgid "Nothing to see here yet. Be patient."
msgstr ""
#: src/component/navigation.vue:503
#: src/component/navigation.vue:1855
#: src/component/navigation.vue:1845
#: src/options/options.js:296
msgid "Offline"
msgstr ""
@ -1775,7 +1775,7 @@ msgid "Other"
msgstr ""
#: src/pages/about/about.vue:15
msgid "Our vision is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible."
msgid "Our mission is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible."
msgstr ""
#: src/options/options.js:315
@ -1805,7 +1805,7 @@ msgstr ""
#: src/app/routes.js:266
#: src/app/routes.js:286
#: src/component/navigation.vue:262
#: src/component/navigation.vue:1041
#: src/component/navigation.vue:1031
#: src/dialog/photo/edit.vue:52
#: src/dialog/photo/edit.vue:6
#: src/dialog/photo/edit.vue:266
@ -1856,7 +1856,7 @@ msgstr ""
#: src/component/navigation.vue:314
#: src/component/navigation.vue:324
#: src/component/navigation.vue:4
#: src/component/navigation.vue:1219
#: src/component/navigation.vue:1209
#: src/pages/settings/general.vue:108
#: src/pages/settings/general.vue:450
msgid "Places"
@ -1918,7 +1918,7 @@ msgstr ""
#: src/app/routes.js:202
#: src/component/navigation.vue:374
#: src/component/navigation.vue:1427
#: src/component/navigation.vue:1417
#: src/dialog/photo/info.vue:102
#: src/pages/settings/general.vue:272
msgid "Private"
@ -2094,8 +2094,8 @@ msgstr ""
#: src/component/navigation.vue:123
#: src/component/navigation.vue:19
#: src/component/navigation.vue:4
#: src/component/navigation.vue:207
#: src/component/navigation.vue:523
#: src/component/navigation.vue:203
#: src/component/navigation.vue:513
#: src/component/photo/toolbar.vue:50
#: src/pages/albums.vue:114
#: src/pages/labels.vue:81
@ -2171,8 +2171,8 @@ msgstr ""
#: src/component/navigation.vue:8
#: src/component/navigation.vue:18
#: src/component/navigation.vue:4
#: src/component/navigation.vue:287
#: src/component/navigation.vue:1648
#: src/component/navigation.vue:283
#: src/component/navigation.vue:1638
msgid "Settings"
msgstr ""
@ -2643,7 +2643,7 @@ msgstr ""
#: src/component/navigation.vue:228
#: src/component/navigation.vue:238
#: src/component/navigation.vue:4
#: src/component/navigation.vue:925
#: src/component/navigation.vue:915
msgid "Videos"
msgstr ""

View file

@ -13,7 +13,7 @@
</v-toolbar>
<v-container fluid class="px-4 pt-4 pb-1">
<p class="body-2 lh-17">
<translate>Our vision is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible.</translate>
<translate>Our mission is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible.</translate>
<a href="https://link.photoprism.app/roadmap" target="_blank">
<translate>The roadmap shows what tasks are in progress, what needs testing, and which feature requests are going to be implemented next.</translate>
</a>
@ -21,7 +21,7 @@
<p v-if="!sponsor" class="text-xs-center my-4">
<v-btn
href="https://link.photoprism.app/patreon"
href="https://photoprism.app/membership"
target="_blank"
color="primary-button"
class="white--text px-3 py-2 action-sponsor"

View file

@ -76,7 +76,7 @@
</v-flex>
<v-flex xs12 sm6 class="pa-0 body-2 text-xs-center text-sm-right white--text">
<v-btn
href="https://link.photoprism.app/patreon"
href="https://photoprism.app/membership"
target="_blank"
color="transparent"
class="white--text px-3 py-2 ma-0 action-sponsor"

View file

@ -11,7 +11,7 @@ test.meta("testID", "about-001")("About page is displayed with all links", async
await t
.expect(Selector('a[href="https://photoprism.app/"]').visible)
.ok()
.expect(Selector('a[href="https://link.photoprism.app/patreon"]').visible)
.expect(Selector('a[href="https://photoprism.app/membership"]').visible)
.ok();
});

View file

@ -11,7 +11,7 @@ const StaticUri = "/static"
// MsgSponsor and MsgSignUp provide sponsorship info messages;
// SignUpURL a signup link.
const MsgSponsor = "PhotoPrism® needs your support!"
const SignUpURL = "https://docs.photoprism.app/funding/"
const SignUpURL = "https://photoprism.app/membership"
const MsgSignUp = "Visit " + SignUpURL + " to learn more."
const MsgSponsorCommand = "Since running this command puts additional load on our infrastructure," +
" we unfortunately can only offer it to sponsors."

View file

@ -15,7 +15,7 @@ const (
// Data represents image metadata.
type Data struct {
FileName string `meta:"FileName"`
DocumentID string `meta:"BurstUUID,MediaGroupUUID,ImageUniqueID,OriginalDocumentID,DocumentID"`
DocumentID string `meta:"BurstUUID,MediaGroupUUID,ImageUniqueID,OriginalDocumentID,DocumentID,DigitalImageGUID"`
InstanceID string `meta:"InstanceID,DocumentID"`
TakenAt time.Time `meta:"SubSecDateTimeOriginal,SubSecCreateDate,DateTimeOriginal,CreationDate,CreateDate,MediaCreateDate,ContentCreateDate,DateTimeDigitized,DateTime" xmp:"DateCreated"`
TakenAtLocal time.Time `meta:"SubSecDateTimeOriginal,SubSecCreateDate,DateTimeOriginal,CreationDate,CreateDate,MediaCreateDate,ContentCreateDate,DateTimeDigitized,DateTime"`
@ -26,13 +26,13 @@ type Data struct {
FPS float64 `meta:"VideoFrameRate,VideoAvgFrameRate"`
Frames int `meta:"FrameCount"`
Codec string `meta:"CompressorID,FileType"`
Title string `meta:"Title" xmp:"dc:title" dc:"title,title.Alt"`
Title string `meta:"Headline,Title" xmp:"dc:title" dc:"title,title.Alt"`
Subject string `meta:"Subject,PersonInImage,ObjectName,HierarchicalSubject,CatalogSets" xmp:"Subject"`
Keywords Keywords `meta:"Keywords"`
Notes string `meta:"Comment"`
Artist string `meta:"Artist,Creator,OwnerName,Owner" xmp:"Creator"`
Description string `meta:"Description" xmp:"Description,Description.Alt"`
Copyright string `meta:"Rights,Copyright,WebStatement" xmp:"Rights,Rights.Alt"`
Artist string `meta:"Artist,Creator,By-line,OwnerName,Owner" xmp:"Creator"`
Description string `meta:"Description,Caption-Abstract" xmp:"Description,Description.Alt"`
Copyright string `meta:"Rights,Copyright,CopyrightNotice,WebStatement" xmp:"Rights,Rights.Alt"`
License string `meta:"UsageTerms,License"`
Projection string `meta:"ProjectionType"`
ColorProfile string `meta:"ICCProfileName,ProfileDescription"`

View file

@ -1049,4 +1049,20 @@ func TestJSON(t *testing.T) {
assert.Equal(t, "", data.Projection)
assert.Equal(t, "", data.ColorProfile)
})
t.Run("iptc-fields-500", func(t *testing.T) {
data, err := JSON("testdata/iptc-fields-500.json", "")
if err != nil {
t.Fatal(err)
}
//t.Logf("all: %+v", data.exif)
assert.Equal(t, "creator A, creator B", data.Artist)
assert.Equal(t, "my image headline", data.Title)
assert.Equal(t, "my iptc description", data.Description)
assert.Equal(t, "my iptc copyright", data.Copyright)
//TODO
//assert.Equal(t, "zqdtcxt1q9wrxnur", data.DocumentID)
})
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

View file

@ -0,0 +1,30 @@
[{
"SourceFile": "iptc-fields-500.jpg",
"ExifToolVersion": 12.41,
"FileName": "iptc-fields-500.jpg",
"Directory": ".",
"FileSize": "72 KiB",
"FileModifyDate": "2022:05:25 13:39:29+00:00",
"FileAccessDate": "2022:05:25 13:58:00+00:00",
"FileInodeChangeDate": "2022:05:25 13:58:00+00:00",
"FilePermissions": "-rw-rw-r--",
"FileType": "JPEG",
"FileTypeExtension": "jpg",
"MIMEType": "image/jpeg",
"CurrentIPTCDigest": "faf6f79bac264b4c90595a44051b1318",
"Headline": "my image headline",
"ApplicationRecordVersion": 4,
"CopyrightNotice": "my iptc copyright",
"Caption-Abstract": "my iptc description",
"By-line": ["creator A","creator B"],
"XMPToolkit": "Image::ExifTool 12.16",
"DigitalImageGUID": "zqdtcxt1q9wrxnur",
"ImageWidth": 500,
"ImageHeight": 375,
"EncodingProcess": "Baseline DCT, Huffman coding",
"BitsPerSample": 8,
"ColorComponents": 3,
"YCbCrSubSampling": "YCbCr4:2:0 (2 2)",
"ImageSize": "500x375",
"Megapixels": 0.188
}]