Units
Translation components API.
See the Weblate's Web API documentation for detailed description of the API.
GET /api/translations/postgis-workshop/history_tracking/en/units/?format=api
{ "count": 42, "next": null, "previous": null, "results": [ { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "Tracking Edit History using Triggers" ], "previous_source": "", "target": [ "Tracking Edit History using Triggers" ], "id_hash": 5690758178696242100, "content_hash": 5690758178696242100, "location": "../../en/history_tracking.rst:4", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 1, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 5, "source_unit": "https://weblate.osgeo.org/api/units/99438/?format=api", "priority": 100, "id": 99438, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=cef9a2699fd6a3b4", "url": "https://weblate.osgeo.org/api/units/99438/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.291505Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "A common requirement for production databases is the ability to track history: how has the data changed between two dates, who made the changes, and where did they occur? Some GIS systems track changes by including change management in the client interface, but that adds a lot of **complexity** to editing tools." ], "previous_source": "", "target": [ "A common requirement for production databases is the ability to track history: how has the data changed between two dates, who made the changes, and where did they occur? Some GIS systems track changes by including change management in the client interface, but that adds a lot of **complexity** to editing tools." ], "id_hash": 67817232071333675, "content_hash": 67817232071333675, "location": "../../en/history_tracking.rst:6", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 2, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 52, "source_unit": "https://weblate.osgeo.org/api/units/99441/?format=api", "priority": 100, "id": 99441, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=80f0ef69cb43172b", "url": "https://weblate.osgeo.org/api/units/99441/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.325928Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "Using the database and the trigger system, it's possible to add history tracking to any table, while maintaining simple \"direct edit\" access to the primary table." ], "previous_source": "", "target": [ "Using the database and the trigger system, it's possible to add history tracking to any table, while maintaining simple \"direct edit\" access to the primary table." ], "id_hash": 3277948936797084043, "content_hash": 3277948936797084043, "location": "../../en/history_tracking.rst:8", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 3, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 26, "source_unit": "https://weblate.osgeo.org/api/units/99442/?format=api", "priority": 100, "id": 99442, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=ad7d9d30d1a8d98b", "url": "https://weblate.osgeo.org/api/units/99442/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.349931Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "History tracking works by keeping a history table that records, for every edit:" ], "previous_source": "", "target": [ "History tracking works by keeping a history table that records, for every edit:" ], "id_hash": 5422255094758375648, "content_hash": 5422255094758375648, "location": "../../en/history_tracking.rst:10", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 4, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 13, "source_unit": "https://weblate.osgeo.org/api/units/99444/?format=api", "priority": 100, "id": 99444, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=cb3fb847c4a000e0", "url": "https://weblate.osgeo.org/api/units/99444/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.372517Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "If a record was created, when it was added and by whom." ], "previous_source": "", "target": [ "If a record was created, when it was added and by whom." ], "id_hash": -3980220349852171073, "content_hash": -3980220349852171073, "location": "../../en/history_tracking.rst:12", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 5, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 12, "source_unit": "https://weblate.osgeo.org/api/units/99446/?format=api", "priority": 100, "id": 99446, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=48c36aae0f47c4bf", "url": "https://weblate.osgeo.org/api/units/99446/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.395658Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "If a record was deleted, when it was deleted and by whom." ], "previous_source": "", "target": [ "If a record was deleted, when it was deleted and by whom." ], "id_hash": -5906041695828907289, "content_hash": -5906041695828907289, "location": "../../en/history_tracking.rst:13", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 6, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 12, "source_unit": "https://weblate.osgeo.org/api/units/99448/?format=api", "priority": 100, "id": 99448, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=2e09865e8378eae7", "url": "https://weblate.osgeo.org/api/units/99448/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.418750Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "If a record was updated, adding a deletion record (for the old state) and a creation record (for the new state)." ], "previous_source": "", "target": [ "If a record was updated, adding a deletion record (for the old state) and a creation record (for the new state)." ], "id_hash": -1407296951003070977, "content_hash": -1407296951003070977, "location": "../../en/history_tracking.rst:14", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 7, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 21, "source_unit": "https://weblate.osgeo.org/api/units/99451/?format=api", "priority": 100, "id": 99451, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=6c7846e115f8bdff", "url": "https://weblate.osgeo.org/api/units/99451/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.441492Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "Using TSTZRANGE" ], "previous_source": "", "target": [ "Using TSTZRANGE" ], "id_hash": 613487485910771775, "content_hash": 613487485910771775, "location": "../../en/history_tracking.rst:17", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 8, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://weblate.osgeo.org/api/units/99456/?format=api", "priority": 100, "id": 99456, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=88838b9e37dbe83f", "url": "https://weblate.osgeo.org/api/units/99456/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.465072Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "The history table uses a PostgreSQL-specific feature--the \"`timestamp range <https://www.postgresql.org/docs/current/rangetypes.html>`_\" type--to store the time range that a history record was the \"live\" record. All the timestamp ranges in the history table for a particular feature can be expected to be non-overlapping but adjacent." ], "previous_source": "", "target": [ "The history table uses a PostgreSQL-specific feature--the \"`timestamp range <https://www.postgresql.org/docs/current/rangetypes.html>`_\" type--to store the time range that a history record was the \"live\" record. All the timestamp ranges in the history table for a particular feature can be expected to be non-overlapping but adjacent." ], "id_hash": 781611825440962157, "content_hash": 781611825440962157, "location": "../../en/history_tracking.rst:19", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 9, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 43, "source_unit": "https://weblate.osgeo.org/api/units/99472/?format=api", "priority": 100, "id": 99472, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=8ad8d7d067a7366d", "url": "https://weblate.osgeo.org/api/units/99472/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.487460Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "The range for a new record will start at ``now()`` and have an open end point, so that the range covers all time from the current time into the future." ], "previous_source": "", "target": [ "The range for a new record will start at ``now()`` and have an open end point, so that the range covers all time from the current time into the future." ], "id_hash": -6863056693136024427, "content_hash": -6863056693136024427, "location": "../../en/history_tracking.rst:21", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 10, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 30, "source_unit": "https://weblate.osgeo.org/api/units/99487/?format=api", "priority": 100, "id": 99487, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=20c1864cb4429c95", "url": "https://weblate.osgeo.org/api/units/99487/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.510343Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "Similarly, the time range for a deleted record will be updated to include the current time as the end point of the time range." ], "previous_source": "", "target": [ "Similarly, the time range for a deleted record will be updated to include the current time as the end point of the time range." ], "id_hash": -5166395099312833980, "content_hash": -5166395099312833980, "location": "../../en/history_tracking.rst:34", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 11, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 24, "source_unit": "https://weblate.osgeo.org/api/units/99497/?format=api", "priority": 100, "id": 99497, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=384d4707a823ba44", "url": "https://weblate.osgeo.org/api/units/99497/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.533826Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "Searching time ranges is much simpler than searching a pair of timestamps, because of the way an open time range encompasses all time from the start point to infinity. The \"contains\" operator ``@>`` for ranges is the one we will use." ], "previous_source": "", "target": [ "Searching time ranges is much simpler than searching a pair of timestamps, because of the way an open time range encompasses all time from the start point to infinity. The \"contains\" operator ``@>`` for ranges is the one we will use." ], "id_hash": 2954662350568904071, "content_hash": 2954662350568904071, "location": "../../en/history_tracking.rst:36", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 12, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 41, "source_unit": "https://weblate.osgeo.org/api/units/99511/?format=api", "priority": 100, "id": 99511, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=a90111c0dce15587", "url": "https://weblate.osgeo.org/api/units/99511/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.556640Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "Ranges can be very efficiently indexed using a GIST index, just like spatial data, as we will show below. This makes history queries very efficient." ], "previous_source": "", "target": [ "Ranges can be very efficiently indexed using a GIST index, just like spatial data, as we will show below. This makes history queries very efficient." ], "id_hash": -6001471762778117320, "content_hash": -6001471762778117320, "location": "../../en/history_tracking.rst:47", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 13, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 25, "source_unit": "https://weblate.osgeo.org/api/units/99523/?format=api", "priority": 100, "id": 99523, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=2cb67d3a9a12ab38", "url": "https://weblate.osgeo.org/api/units/99523/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.578742Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "Building the History Table" ], "previous_source": "", "target": [ "Building the History Table" ], "id_hash": 5225385886701309198, "content_hash": 5225385886701309198, "location": "../../en/history_tracking.rst:51", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 14, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 4, "source_unit": "https://weblate.osgeo.org/api/units/99524/?format=api", "priority": 100, "id": 99524, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=c8844cc7572bcd0e", "url": "https://weblate.osgeo.org/api/units/99524/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.601535Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "Using this information it is possible to reconstruct the state of the edit table at any point in time. In this example, we will add history tracking to our **nyc_streets** table." ], "previous_source": "", "target": [ "Using this information it is possible to reconstruct the state of the edit table at any point in time. In this example, we will add history tracking to our **nyc_streets** table." ], "id_hash": -1653520731004376642, "content_hash": -1653520731004376642, "location": "../../en/history_tracking.rst:53", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 15, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 31, "source_unit": "https://weblate.osgeo.org/api/units/99525/?format=api", "priority": 100, "id": 99525, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=690d83a7e7bd69be", "url": "https://weblate.osgeo.org/api/units/99525/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.625432Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "First, add a new **nyc_streets_history** table. This is the table we will use to store all the historical edit information. In addition to all the fields from **nyc_streets**, we add five more fields." ], "previous_source": "", "target": [ "First, add a new **nyc_streets_history** table. This is the table we will use to store all the historical edit information. In addition to all the fields from **nyc_streets**, we add five more fields." ], "id_hash": 1983035241856385147, "content_hash": 1983035241856385147, "location": "../../en/history_tracking.rst:55", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 16, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 33, "source_unit": "https://weblate.osgeo.org/api/units/99528/?format=api", "priority": 100, "id": 99528, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=9b85280bbfee407b", "url": "https://weblate.osgeo.org/api/units/99528/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.648529Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "**hid** the primary key for the history table" ], "previous_source": "", "target": [ "**hid** the primary key for the history table" ], "id_hash": 4201226219677377310, "content_hash": 4201226219677377310, "location": "../../en/history_tracking.rst:57", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 17, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 8, "source_unit": "https://weblate.osgeo.org/api/units/99530/?format=api", "priority": 100, "id": 99530, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=ba4dc0fcdced631e", "url": "https://weblate.osgeo.org/api/units/99530/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.674131Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "**created_by** the database user that caused the record to be created" ], "previous_source": "", "target": [ "**created_by** the database user that caused the record to be created" ], "id_hash": -5275007743974515982, "content_hash": -5275007743974515982, "location": "../../en/history_tracking.rst:58", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 18, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 11, "source_unit": "https://weblate.osgeo.org/api/units/99531/?format=api", "priority": 100, "id": 99531, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=36cb6867b0f6daf2", "url": "https://weblate.osgeo.org/api/units/99531/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.702836Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "**deleted_by** the database user that caused the record to be marked as deleted" ], "previous_source": "", "target": [ "**deleted_by** the database user that caused the record to be marked as deleted" ], "id_hash": 8680082759444319756, "content_hash": 8680082759444319756, "location": "../../en/history_tracking.rst:59", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 19, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 13, "source_unit": "https://weblate.osgeo.org/api/units/99532/?format=api", "priority": 100, "id": 99532, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=f875d947d9abce0c", "url": "https://weblate.osgeo.org/api/units/99532/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.726428Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "**valid_range** the time range within which the record was \"live\"" ], "previous_source": "", "target": [ "**valid_range** the time range within which the record was \"live\"" ], "id_hash": 3177826083446737478, "content_hash": 3177826083446737478, "location": "../../en/history_tracking.rst:60", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 20, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 10, "source_unit": "https://weblate.osgeo.org/api/units/99539/?format=api", "priority": 100, "id": 99539, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=ac19e7fc6dd04a46", "url": "https://weblate.osgeo.org/api/units/99539/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.753687Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "Note that we don't actually delete any records in the history table, we just mark the time they ceased to be part of the current state of the edit table." ], "previous_source": "", "target": [ "Note that we don't actually delete any records in the history table, we just mark the time they ceased to be part of the current state of the edit table." ], "id_hash": -1674038317885694157, "content_hash": -1674038317885694157, "location": "../../en/history_tracking.rst:62", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 21, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 30, "source_unit": "https://weblate.osgeo.org/api/units/99555/?format=api", "priority": 100, "id": 99555, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=68c49f04f207df33", "url": "https://weblate.osgeo.org/api/units/99555/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.780202Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "Next, we import the current state of the active table, **nyc_streets** into the history table, so we have a starting point to trace history from. Note that we fill in the creation time and creation user, but leave the end of the time range and the deleted by information NULL." ], "previous_source": "", "target": [ "Next, we import the current state of the active table, **nyc_streets** into the history table, so we have a starting point to trace history from. Note that we fill in the creation time and creation user, but leave the end of the time range and the deleted by information NULL." ], "id_hash": -3184707304484040276, "content_hash": -3184707304484040276, "location": "../../en/history_tracking.rst:87", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 22, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 50, "source_unit": "https://weblate.osgeo.org/api/units/99570/?format=api", "priority": 100, "id": 99570, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=53cda59472a311ac", "url": "https://weblate.osgeo.org/api/units/99570/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.807446Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "Now we need three triggers on the active table, for INSERT, DELETE and UPDATE actions. First we create the trigger functions, then bind them to the table as triggers." ], "previous_source": "", "target": [ "Now we need three triggers on the active table, for INSERT, DELETE and UPDATE actions. First we create the trigger functions, then bind them to the table as triggers." ], "id_hash": 4333009123168395863, "content_hash": 4333009123168395863, "location": "../../en/history_tracking.rst:98", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 23, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 29, "source_unit": "https://weblate.osgeo.org/api/units/99586/?format=api", "priority": 100, "id": 99586, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=bc21f0d71afaa257", "url": "https://weblate.osgeo.org/api/units/99586/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.830317Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "For an insert, we just add a new record into the history table with the creation time/user." ], "previous_source": "", "target": [ "For an insert, we just add a new record into the history table with the creation time/user." ], "id_hash": -6177389075934070839, "content_hash": -6177389075934070839, "location": "../../en/history_tracking.rst:100", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 24, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 17, "source_unit": "https://weblate.osgeo.org/api/units/99601/?format=api", "priority": 100, "id": 99601, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=2a45815d599237c9", "url": "https://weblate.osgeo.org/api/units/99601/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.854816Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "For a deletion, we just mark the currently active history record (the one with a NULL deletion time) as deleted." ], "previous_source": "", "target": [ "For a deletion, we just mark the currently active history record (the one with a NULL deletion time) as deleted." ], "id_hash": -2080990306767701603, "content_hash": -2080990306767701603, "location": "../../en/history_tracking.rst:123", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 25, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 20, "source_unit": "https://weblate.osgeo.org/api/units/99602/?format=api", "priority": 100, "id": 99602, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=631ed6577014799d", "url": "https://weblate.osgeo.org/api/units/99602/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.879344Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "For an update, we first mark the active history record as deleted, then insert a new record for the updated state." ], "previous_source": "", "target": [ "For an update, we first mark the active history record as deleted, then insert a new record for the updated state." ], "id_hash": 2337654751142788674, "content_hash": 2337654751142788674, "location": "../../en/history_tracking.rst:145", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 26, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 21, "source_unit": "https://weblate.osgeo.org/api/units/99603/?format=api", "priority": 100, "id": 99603, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=a071049c595ebe42", "url": "https://weblate.osgeo.org/api/units/99603/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.904209Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "Editing the Table" ], "previous_source": "", "target": [ "Editing the Table" ], "id_hash": -1930081114826969869, "content_hash": -1930081114826969869, "location": "../../en/history_tracking.rst:176", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 27, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 3, "source_unit": "https://weblate.osgeo.org/api/units/99608/?format=api", "priority": 100, "id": 99608, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=6536f973bb0c6cf3", "url": "https://weblate.osgeo.org/api/units/99608/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.929001Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "Now that the history table is enabled, we can make edits on the main table and watch the log entries appear in the history table." ], "previous_source": "", "target": [ "Now that the history table is enabled, we can make edits on the main table and watch the log entries appear in the history table." ], "id_hash": 3015382927679155589, "content_hash": 3015382927679155589, "location": "../../en/history_tracking.rst:178", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 28, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 25, "source_unit": "https://weblate.osgeo.org/api/units/99624/?format=api", "priority": 100, "id": 99624, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=a9d8cacbea17ed85", "url": "https://weblate.osgeo.org/api/units/99624/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.953703Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "Note the power of this database-backed approach to history: **no matter what tool is used to make the edits, whether the SQL command line, a web-based JDBC tool, or a desktop tool like QGIS, the history is consistently tracked.**" ], "previous_source": "", "target": [ "Note the power of this database-backed approach to history: **no matter what tool is used to make the edits, whether the SQL command line, a web-based JDBC tool, or a desktop tool like QGIS, the history is consistently tracked.**" ], "id_hash": 2534176021362743212, "content_hash": 2534176021362743212, "location": "../../en/history_tracking.rst:180", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 29, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 39, "source_unit": "https://weblate.osgeo.org/api/units/99640/?format=api", "priority": 100, "id": 99640, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=a32b33aa2fa397ac", "url": "https://weblate.osgeo.org/api/units/99640/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:42.978250Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "SQL Edits" ], "previous_source": "", "target": [ "SQL Edits" ], "id_hash": -3109673315133534373, "content_hash": -3109673315133534373, "location": "../../en/history_tracking.rst:183", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 30, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://weblate.osgeo.org/api/units/99655/?format=api", "priority": 100, "id": 99655, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=54d838987bf44f5b", "url": "https://weblate.osgeo.org/api/units/99655/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:43.002532Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "Let's turn the two streets named \"Cumberland Walk\" to the more stylish \"Cumberland Wynde\":" ], "previous_source": "", "target": [ "Let's turn the two streets named \"Cumberland Walk\" to the more stylish \"Cumberland Wynde\":" ], "id_hash": -3145234302721976424, "content_hash": -3145234302721976424, "location": "../../en/history_tracking.rst:185", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 31, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 14, "source_unit": "https://weblate.osgeo.org/api/units/99673/?format=api", "priority": 100, "id": 99673, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=5459e210dae21798", "url": "https://weblate.osgeo.org/api/units/99673/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:43.025190Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "Updating the two streets will cause the original streets to be marked as deleted in the history table, with a deletion time of now, and two new streets with the new name added, with an addition time of now. You can inspect the historical records:" ], "previous_source": "", "target": [ "Updating the two streets will cause the original streets to be marked as deleted in the history table, with a deletion time of now, and two new streets with the new name added, with an addition time of now. You can inspect the historical records:" ], "id_hash": -5853489926591572694, "content_hash": -5853489926591572694, "location": "../../en/history_tracking.rst:193", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 32, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 45, "source_unit": "https://weblate.osgeo.org/api/units/99684/?format=api", "priority": 100, "id": 99684, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=2ec439ecc52e952a", "url": "https://weblate.osgeo.org/api/units/99684/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:43.051440Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "Querying the History Table" ], "previous_source": "", "target": [ "Querying the History Table" ], "id_hash": 8276733893375933279, "content_hash": 8276733893375933279, "location": "../../en/history_tracking.rst:202", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 33, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 4, "source_unit": "https://weblate.osgeo.org/api/units/99685/?format=api", "priority": 100, "id": 99685, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=f2dcdd9fbf1bbb5f", "url": "https://weblate.osgeo.org/api/units/99685/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:43.080364Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "Now that we have a history table, what use is it? It's useful for time travel! To travel to a particular time **T**, you need to construct a query that includes:" ], "previous_source": "", "target": [ "Now that we have a history table, what use is it? It's useful for time travel! To travel to a particular time **T**, you need to construct a query that includes:" ], "id_hash": -5386821702896506882, "content_hash": -5386821702896506882, "location": "../../en/history_tracking.rst:204", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 34, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 31, "source_unit": "https://weblate.osgeo.org/api/units/99686/?format=api", "priority": 100, "id": 99686, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=353e2a33aa7d27fe", "url": "https://weblate.osgeo.org/api/units/99686/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:43.109137Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "All records created before T, and not yet deleted; and also" ], "previous_source": "", "target": [ "All records created before T, and not yet deleted; and also" ], "id_hash": -2288432232345737348, "content_hash": -2288432232345737348, "location": "../../en/history_tracking.rst:206", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 35, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 11, "source_unit": "https://weblate.osgeo.org/api/units/99690/?format=api", "priority": 100, "id": 99690, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=603ddb02627a677c", "url": "https://weblate.osgeo.org/api/units/99690/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:43.134498Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "All records created before T, but deleted **after** T." ], "previous_source": "", "target": [ "All records created before T, but deleted **after** T." ], "id_hash": 2225610918354429564, "content_hash": 2225610918354429564, "location": "../../en/history_tracking.rst:207", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 36, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 9, "source_unit": "https://weblate.osgeo.org/api/units/99704/?format=api", "priority": 100, "id": 99704, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=9ee2f556a4bf267c", "url": "https://weblate.osgeo.org/api/units/99704/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:43.158443Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "We can use this logic to create a query, or a view, of the state of the data in the past. Since presumably all your test edits have happened in the past couple minutes, let's create a view of the history table that shows the state of the table 10 minutes ago, **before you started editing** (so, the original data)." ], "previous_source": "", "target": [ "We can use this logic to create a query, or a view, of the state of the data in the past. Since presumably all your test edits have happened in the past couple minutes, let's create a view of the history table that shows the state of the table 10 minutes ago, **before you started editing** (so, the original data)." ], "id_hash": -2449449936950320304, "content_hash": -2449449936950320304, "location": "../../en/history_tracking.rst:209", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 37, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 60, "source_unit": "https://weblate.osgeo.org/api/units/99719/?format=api", "priority": 100, "id": 99719, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=5e01ce4294f92350", "url": "https://weblate.osgeo.org/api/units/99719/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:43.181632Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "We can also create views that show just what a particular used has added, for example:" ], "previous_source": "", "target": [ "We can also create views that show just what a particular used has added, for example:" ], "id_hash": -1261846746290649226, "content_hash": -1261846746290649226, "location": "../../en/history_tracking.rst:221", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 38, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 16, "source_unit": "https://weblate.osgeo.org/api/units/99741/?format=api", "priority": 100, "id": 99741, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=6e7d0511de5d0776", "url": "https://weblate.osgeo.org/api/units/99741/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:43.204644Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "See Also" ], "previous_source": "", "target": [ "See Also" ], "id_hash": -8414559777013448322, "content_hash": -8414559777013448322, "location": "../../en/history_tracking.rst:231", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 39, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://weblate.osgeo.org/api/units/99766/?format=api", "priority": 100, "id": 99766, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=0b397a770dd2c17e", "url": "https://weblate.osgeo.org/api/units/99766/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:43.232769Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "`QGIS open source GIS <http://qgis.org>`_" ], "previous_source": "", "target": [ "`QGIS open source GIS <http://qgis.org>`_" ], "id_hash": 7685895214861813879, "content_hash": 7685895214861813879, "location": "../../en/history_tracking.rst:233", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 40, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 5, "source_unit": "https://weblate.osgeo.org/api/units/99785/?format=api", "priority": 100, "id": 99785, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=eaa9c8f9eeb68877", "url": "https://weblate.osgeo.org/api/units/99785/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:43.255880Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "`PostgreSQL Triggers <http://www.postgresql.org/docs/current/static/plpgsql-trigger.html>`_" ], "previous_source": "", "target": [ "`PostgreSQL Triggers <http://www.postgresql.org/docs/current/static/plpgsql-trigger.html>`_" ], "id_hash": -6867597276157913796, "content_hash": -6867597276157913796, "location": "../../en/history_tracking.rst:234", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 41, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 3, "source_unit": "https://weblate.osgeo.org/api/units/99798/?format=api", "priority": 100, "id": 99798, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=20b164a9d62ad53c", "url": "https://weblate.osgeo.org/api/units/99798/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:43.278962Z" }, { "translation": "https://weblate.osgeo.org/api/translations/postgis-workshop/history_tracking/en/?format=api", "source": [ "`PostgreSQL Range Types <https://www.postgresql.org/docs/current/rangetypes.html>`_" ], "previous_source": "", "target": [ "`PostgreSQL Range Types <https://www.postgresql.org/docs/current/rangetypes.html>`_" ], "id_hash": -723265147258186180, "content_hash": -723265147258186180, "location": "../../en/history_tracking.rst:235", "context": "", "note": "", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 42, "has_suggestion": false, "has_comment": false, "has_failing_check": true, "num_words": 4, "source_unit": "https://weblate.osgeo.org/api/units/99814/?format=api", "priority": 100, "id": 99814, "web_url": "https://weblate.osgeo.org/translate/postgis-workshop/history_tracking/en/?checksum=75f6722e3b41563c", "url": "https://weblate.osgeo.org/api/units/99814/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2021-11-14T01:14:43.302170Z" } ] }